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

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

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)))

工程製圖尺寸標註改錯,謝謝,工程製圖尺寸標註改錯 求解

一新 1 應該標註兩圓的中心距 2 圓弧度超過180 應該用直徑表示 3 圓直徑標註應當採用直線,如果有折線,折線應當水平或者豎直 4 小圓標註幅度小於180 應當儘量過圓心。 圖太小看不清,但正常應該標註孔距 縱向引出,水平標註 現在圖中看是斜線。即圖中上圖上部標註應參考上圖下部的標註方式就對了。...

Cad標註尺寸太小,弄不大,Cad標註尺寸太小,弄不大

幹笛 我教你用命令的方式來改吧 命令 dimscale,輸入值 10 確定命令 dim,up,all,確定 如果這樣子修改之後大小有改變,但是還達不到你的要求,你可以重複上面的命令,把第一個輸入值 10 修改,你要再改大你就把這個值改大一點。 曉來春夢盡 看你的情況,應該是字型樣式固定了文字高度了。...

機械製圖尺寸標註問題,機械製圖 尺寸標註

乜驪僧思真 如果你不標註公差表示該基本尺寸公差為未注公差 如果你標註公差,則該公差為你標註的公差 一般講圖上幾個角都是直角,不標註角度只是角度的允許公差較大,但不是不保證,一般公差是 1 1 買家主張成立,左下角一個夾角 上方另兩個夾角 右下方兩個夾角都應看成是90 但是你做到100 只能算是角度超...