auto lisp怎麼標註尺寸,CAD lisp 求助一段程式碼實現自動標註!

時間 2021-06-11 15:19:55

1樓:

(setq pt (list 0 0));起點(setq pt2 (list 0 100));終點(setq pt3 (list 10 50));文字位置(command "dimlinear" pt pt2 pt3 "")

2樓:匿名使用者

在auto lisp程式中呼叫autocad尺寸標註命令。

cad lisp 求助一段**實現自動標註!

3樓:匿名使用者

(defun c:autodimlines ()

(setq ss (ssget '((0 . "line"))))

(setq number (sslength ss))

(setq i 0)

(repeat number

(setq entname (ssname ss i))

(setq ent (entget entname))

(setq point_a (cdr (assoc 10 ent)))

(setq point_b (cdr (assoc 11 ent)))

(setq d (* -0.2 (distance point_a point_b)))

(command "dimaligned" point_a point_b point_b)

(setq ent (entget(entlast)))

(setq x1 (car point_a) y1 (cadr point_a) x2 (car point_b) y2 (cadr point_b))

(setq point (calculate_dalposition x1 y1 x2 y2 d))

(entmod (subst (cons 10 point) (assoc 10 ent) ent) )

(setq i (+ i 1))))

(defun calculate_dalposition (x1 y1 x2 y2 d)

(if (/= (- y2 y1) 0)

(progn

(setq k (/ (- x1 x2) (- y2 y1)) )

(setq thita (atan k))

(if (< thita 0)

(setq thita1 (+ 3.1415926 thita) thita2 (* -1 thita))

(setq thita1 thita thita2 thita)

)(setq x (- x2 (* d (cos thita1))))

(setq y (- y2 (* d (sin thita2))))

(list x y)

)(progn

(setq y (- y2 d) x x2)

(list x y)))

)不知道cad能執行不 浩辰 可以

4樓:匿名使用者

使用天正 有自動標註功能啊

大神請教個問題:我想用lisp改變已有的標註樣式 的標註線 和文字的顏色 lisp 該怎麼寫呢?

5樓:

;改顏色隨層子程式

(defun c:tt1(/ ss)

(princ "顏色改為隨層")

(if (setq ss (ssget))(progn

(princ (strcat (itoa (sslength ss)) "個物件的顏色改為隨層"))

(command "change" ss "" "p" "c" "bylayer" "")

);if

(princ)

6樓:淘蜂農

(defun c:gs(/ ss)

(princ "圖層顏色隨層")

(setq ss (ssget))

(command "change" ss "" "p" "c" "bylayer" ""))

麻煩看下cad怎麼改標註尺寸字型大小

7樓:朱正偉

可以在屬性裡面修改標註高度;

可以用autolisp外掛修改文字高度。

8樓:怪怪

標註樣式裡面有文字,修改文字高度就可以

如何用autolisp控制尺寸標註的箭頭不顯示,怎麼用autolisp設定半徑標註的箭頭在圓弧內部,如何控制公差

9樓:

(setq p4 (polar p0 (+ ang (/ pi 1.5)) 1.2 h1))有問題,你要的是不是(setq p4 (polar p0 (+ ang (/ pi 1.

5)) (*1.2 h1)))

(command "text" p4 "h" 0 )也不對,我想你要的是(command "text" p4 h 0 txt )

求助cad二次開發lisp 關於尺寸標註的 補充裡有問題截圖 謝謝 10

10樓:朱正偉

寫了一個autolisp程式。

(defun c:tes ( / dis1 p1 p2 p3 p5 p6)

(vl-load-com)

(if (null a40) (setq a40 300.0) )

(if (null d) (setq d 424.0) )

(if (null a7) (setq a7 (cons 7 (getvar "textstyle"))) )

(if (null a1) (setq a1 "%%p0.000") )

(if (null fx1) (setq fx1 "w") )

(setq p1 t)

(while p1

(while (and (setq p1 (s1712121)) (= (type p1) 'str))

(cond

((= p1 "1") (setq a40 (s1712122 a40 (strcat "\n請輸入文字高度預設<" (rtos a40 2) ">"))) )

((= p1 "2") (setq dis1 (s1712122 d (strcat "\n請輸入三角形長度預設<" (rtos d 2) ">"))) )

((= p1 "3") (setq a1 (s1712123 a1)) );文字內容

((= p1 "4") (setq fx1 (s1712124 fx1)) )

));while2

(if (car p1)

(progn

(setq dis1 (caadr (textbox (list '(0 . "text") (cons 1 a1) (cons 40 a40) (cons 41 0.7) a7))))

(setq p2 (polar p1 (* pi 0.25) d))

(entmake (list '(0 . "line") (cons 10 p1) (cons 11 p2)))

(setq p3 (polar p1 (* pi 0.75) d))

(entmake (list '(0 . "line") (cons 10 p1) (cons 11 p3)))

(if (= fx1 "w")

(setq p5 (polar p3 pi dis1) p6 (polar p5 (* pi 0.5) (/ a40 3)))

(setq p5 (polar p2 0 dis1) p6 (polar p2 (* pi 0.5) (/ a40 3)) p2 p3)

)(entmake (list '(0 . "line") (cons 10 p2) (cons 11 p5)))

(entmake (list '(0 . "text") (cons 10 p6) (cons 1 a1) (cons 40 a40) (cons 41 0.7) a7))))

);while;1

(princ)

);輸入插入點

(defun s1712121 ( / p1)

(initget "1 2 3 4 e")

(if (setq p1 (getpoint "\n請輸入插入點[輸入文字高度(1)/輸入三角形高度(2)/輸入文字內容(3)/改變方向(4)/退出(e)]"))

(if (= (type p1) 'str) (setq p1 (strcase p1)) )

)(if (= p1 "e") (setq p1 nil) )p1)

;輸入文字高度

(defun s1712122 (dis1 tr / dis dis1 tr)

(initget 6)

(if (setq dis (getdist tr))

(setq dis1 dis)

)dis1

);輸入文字內容

(defun s1712123 (a1 / a1 tr1)

(if (setq tr1 (getstring (strcat "\n請輸入文字內容<" a1 ">")))

(setq a1 tr1))a1

);確認方向

(defun s1712124 (fx1 / fx fx1)

(initget "w a")

(if (setq fx (getkword (strcat "\n請確認方向[西(w)/東(a)]:<" fx1 ">"))) (setq fx1 (strcase fx)) )

fx1)

autolisp 關於怎麼替換標註的文字

11樓:朱正偉

文字內容**為1

(defun c:b1()

(setq gj_list_32 (entget (car (entsel)))

gj_text_old_32 (assoc 1 gj_list_32)

gj_text_new_32 (cons 1 "%%1308@200(2)") ;用於8間距200,一級鋼

gj_list_32 (subst gj_text_new_32 gj_text_old_32 gj_list_32)

(entmod gj_list_32)

(princ)

(setq &k1 (entsel "\n請選擇文字"))

(if (/= &k1 nil);如果有選擇

(progn

(setq #k1 (entget (car &k1));取得屬性列表

%k (cdr (assoc 0 #k1));取得圖元名

)(if (= %k "text");如果是文字

(progn

(setq %k1 (assoc 1 #k1);取得內容元素

%k2 (cons 1 "%%1308@200(2)");文字替換內容

#k1 (subst %k2 %k1 #k1);替換

)(entmod #k1);重新整理))

))(prin1))

autolisp 畫圖 5

12樓:匿名使用者

(defun c:test (/ pt1 pt2)(setq pt1 (getpoint "\n請輸入矩形中心點:")pt2 pt1

)(repeat 10

(setq pt1 (list (- (car pt1) 5) (- (cadr pt1) 5)))

(setq pt2 (list (+ (car pt2) 5) (+ (cadr pt2) 5)))

(command ".rectang" "non" pt1 "non" pt2)))

cad如何標註尺寸?CAD怎麼標註尺寸

利用快速標準命令可以在cad軟體中迅速標註多個尺寸,具體操作請參照以下步驟。1 在電腦上開啟cad軟體,然後繪製一個圖形。2 然後輸入qdim命令,按回車鍵。框選要標註的圖形,選定完物件後向要標註的一側拖動游標。3 然後將尺寸拖動到指定位置後單擊,即可同時完成這些尺寸的標註。軟體簡介 autocad...

cad怎麼改標註尺寸,CAD尺寸標註怎麼改變標註數字大小

3全部如果是天正直接雙擊1800那個數字,就可以修改了,cad也是雙擊,會出現一個特性編輯欄,在裡面的 文字 測量單位,修改 你的圖形不是1 1的畫法。修改尺寸兩種辦法 1 點選修改 特性 在特性面板裡找到 文字替代 輸入新尺寸。這個辦法要一個一個修改。2 在標註樣式裡 找到主單位 比例因子 輸入0...

cad中標註尺寸怎麼自己打數字尺寸

用命令啟動標註,然後選文字,再輸入。如下 1.命令 dimlinear 建立線性標註 2.指定第一個尺寸界線原點 3.指定第二條尺寸界線原點 4.選取文字 t 5.輸入標註文字 6.指定標註位置 雪v歌 操作步驟 1 開啟cad軟體。2 單擊工具欄中的 標註 3 在標註樣式管理器中單擊 修改 4 在...