顯示具有 AutoLISP 標籤的文章。 顯示所有文章
顯示具有 AutoLISP 標籤的文章。 顯示所有文章

2012年9月27日 星期四

autolisp 建立一個 AddressArea 圖層

前言:使用AutoCAD autolisp建立一個 AddressArea 圖層,並且如果圖層已經建立即將 AddressArea 設定為目前圖層,程式如下:

(if (null (tblsearch "LAYER" "AddressArea"))
(command "LAYER" "N" "AddressArea" "C" "1" "1" "LTYPE" "CONTINUOUS" "AddressArea" "")
(setvar "clayer" "AddressArea"))



延伸閱讀: 使用word開啟網頁資料,可以將網頁下載存成WORD檔.

2011年12月18日 星期日

AutoLISP insert 插入圖塊

前言:使用AutoLISP insert 插入圖塊的一段程式碼,(X,Y)比例為1,旋轉角度0度;

(command "-insert" (getfiled "請選取路標圖檔:" "d:\\" "dwg" 8) (getpoint "\n請點選圖塊插入點 :") 1 1 0)


延伸閱讀: 使用word開啟網頁資料,可以將網頁下載存成WORD檔.

2011年11月21日 星期一

使用目前dimtxt(標註文字的高度)作為文字預設字高

前言:autolisp程式控制文字字高時當使用者輸入"空白"時可以使用標註文字的高度作預設,寫法如下;


;使用目前dimtxt(標註文字的高度)作為文字預設字高
(setq txtH (getreal "\n請輸入字高:"))
(if (= txtH nil)(setq txtH (getvar "dimtxt")))


延伸閱讀: 使用word開啟網頁資料,可以將網頁下載存成WORD檔.

2011年7月19日 星期二

AutoLisp 取出 (X,Y,Z) 座標


;前言:在螢幕點一下後抓取X,Y,Z座標
(setq pt1 (getpoint "\n點一下:")) ==> 得到 座標 list: '(1.1 2.2 3.3)
(car pt1) ==> 1.1 ;取出X座標
(cadr pt1) ==> 2.2 ;Y
(caddr pt1) ==> 3.3 ;Z






2011年7月13日 星期三

AutoLISP list

前言:加入list的方法

cons 使用
(cons '(10 20) 30) 結果 ((10 20) . 30)

(cons 10 8) 結果 (10 . 8)


list 使用
(list '(10 20) 30) 結果 ((10 20) 30)

(list 10 20 30) 結果 (10 20 30)

http://www.jefferypsanders.com/autolispintr_list.html





2011年5月2日 星期一

AutoCAD 2011 載入 lisp vlx 程式

前言:使用AutoCAD 2011 載入個人撰寫之程式
1.選.管理/載入應用程式 ;

2.點選,程式名稱後,按一下,[載入],在左下角會有「...成功載入」即表示完成載入程式,按一下,[關閉],成功載入程式。

3.你可以按一下,[F2],在文字視窗去查看載入了什麼程式與載入情形。

2010年7月6日 星期二

autolisp angtos 指令

;將弳度為單位的角度值轉成字串
;語法: (angtos 弳度 轉換類型 精度)

(angtos 0.52 0 4) ;29.7938
(angtos 0.52 1 4) ;29d47'38\"
(angtos 0.52 2 4) ;33.1042g
(angtos 0.52 3 4) ;0.52r
(angtos 0.52 4 4) ;N 60d12'22\" E

2010年7月1日 星期四

建立romans英文字型

; autolisp 程式 建立romans英文字型
(command "-style" "romans" "ROMANS" "" "" "" "" "" "")


;設定
romans為目前字型
(setvar "textstyle" "romans")

2010年6月14日 星期一

AutoCAD Autolisp repeat 範例

;印出list所有資料
(setq l1(list "acad.stb" "Autodesk-Color.stb" "Autodesk-MONO.stb")
n1 (length l1)
n 0)
(repeat n1
(print (1+ n))
(princ (strcat ":「" (nth n l1) "」 ,"))
(setq n (1+ n))
)

2010年2月5日 星期五

AutolLisp表示式,取出圖元資料串列

;AutolLisp表示式,取出圖元資料串列,程式碼如下:

(entget (car (entsel)))


執行後會列示如下資料:


((-1 . <圖元名稱: 7ed282d8>) (0 . "TEXT") (330 . <圖元名稱: 7efbecf8>) (5 . "CB77B") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 1) (100 . "AcDbText") (10 -2368.28 -2339.48 0.0) (40 . 3.0) (1 . "abc") (50 . 0.0) (41 . 1.0) (51 . 0.0) (7 . "Standard") (71 . 0) (72 . 0) (11 0.0 0.0 0.0) (210 0.0 0.0 1.0) (100 . "AcDbText") (73 . 0))

2010年1月5日 星期二

設定目前文字型式的名稱

;設定目前文字型式的名稱為Standard
(setvar "textstyle" "Standard")

;查看目前文字型式的名稱
(getvar "textstyle")

2009年12月14日 星期一

autoLISP 將原來的T為mtext改為text

;autocad將原來的T為mtext改為text,以下程式碼將他再改回來,我們可以將他加到acad.lsp即可以每次啟動autocad時就自動載入

(defun c:t ()
(princ "\n 單行文字: ")
(command "._text")(princ)
)

2009年11月16日 星期一

autocad lisp 程式 list組合成一個座標串列

(princ " , list 組合成一個座標 串列 : zz")
(defun c:zz(/ pt1 pt2 pt3)
(setq tt2 (list))
(setq pt1 '(998.616 801.561 0.0)
pt2 (list 1031.75 790.782 0.0)
pt3 '(1061.41 796.171 0.0)
)
(setq tt2 (cons pt1 tt2)
tt2 (cons pt2 tt2)
tt2 (cons pt3 tt2))
(print "結束!完成List= ")(princ tt2)
(princ)
);end lisp

;autocad lisp 程式 autolisp

2009年11月4日 星期三

自已點選HATCH區域外圍

;自已點選HATCH(剖面線)區域外圍程式
(command "-HATCH" "w" "n")

;autocad lisp autolisp

將選取物件複製在左邊5個距離位置(autolisp)

;將選取物件複製在左邊5個距離位置
(command "copy" Pause "" '(-5 0) "")


;autocad lisp autolisp 程式

2009年11月3日 星期二

autocad lisp 程式 畫圓 circle

(print "畫圓_circle.lsp: cc")
(defun c:cc()
(setq pt1 (getpoint "畫圓(半徑0.39),請在畫面點一下圓心 : ") )
(command "_.circle" pt1 0.39)
(print pt1)
(princ)
)

;autocad lisp 程式
畫圓 circle

2009年7月24日 星期五

AutoLISP程式 讀取副檔名

;讀取副檔名 ==回傳資料=> ".dat"

(substr "ceci ta.dat" (- (strlen "ceci ta.dat") 3) 4)

2009年7月23日 星期四

AutoLISP 開啟舊檔對話方框

AutoLISP 開啟舊檔對話方框,可以讀取副檔名為csv及dat。

(setq fn(getfiled "請選取結構設計座標資料檔" "d:\\" "csv;dat" 8))

2009年7月3日 星期五

autolisp 等分物件(measure)

(print "等分物件: dd")
(defun c:dd(/ mc ss1)
(setq mc (getreal "請輸入節點長度:"))
(princ "\n 請選取要列示路線: ") (setq ss1 (entsel))
(if (= ss1 nil)(progn
(print "沒有選取物件!!"))
(progn (command "_.measure" ss1 mc)(print "完成繪製!"))
)

(princ)
)

Search Google

Google

熱門文章