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 只能算是角度超...