求板厚标注,字体大小点选原图中的板厚标注的lLSP 0004
本帖最后由 品茗新秀 于 2012-9-9 00:09 编辑求板厚标注,字体大小点选原图中的板厚标注lLSP 0004
关于是用如H=100或d=100 还是圈中带100,这个由用户确定或点选原图的样式
本帖最后由 yjr111 于 2012-9-9 00:24 编辑
简单的先来试试....
(连续点,带记忆)
本帖最后由 yjr111 于 2012-9-9 00:05 编辑
2楼更新... 本帖最后由 品茗新秀 于 2012-9-9 00:26 编辑
yjr111 发表于 2012-9-8 23:56 http://bbs.mjtd.com/static/image/common/back.gif
2楼更新...
最好能连续点,不要点一次,就让用户输一次板厚 行了,睡觉了,那个拉伸的估计比较头疼...主要是看得有点眼花 本帖最后由 flytoday 于 2012-9-9 08:15 编辑
顶上哈一一 flytoday 发表于 2012-9-9 00:52 static/image/common/back.gif
顶上哈一一
附上源码:(defun c:bhbz()
(command "ucs" "")
(setq E(nentsel"\n点选原板厚标注文字以提取字高等"))
(if (=(cdr(assoc 0 (SETQ TS(entget(car E)))))"TEXT")
(progn
(SETQ TSTY(CDR(ASSOC 7 TS))
la(CDR(ASSOC 8 TS))
TH(CDR(ASSOC 40 TS))
tw(CDR(ASSOC 41 TS))
tcol(CDR(ASSOC 62 TS))
)
(if (not tcol)
(setq tcol (cdr(assoc 62(entget(tblobjname "layer" la)))))
)
)
(progn
(princ"\n未选中文字...")
(c:bhbz)
)
)
(if *BH* (setq BH (getint (strcat "\n请输入板厚<" (rtos *BH* 2 0)">")))
(setq BH (getint"\n请输入板厚" ))
)
(if (not BH)(setq BH *BH*)(setq *BH* BH ))
(initget"H D Q W")
(SETQ KEY(GETKWORD"\n输入标注样式:[前缀1(H)/前缀2(D)/带圈前缀1(Q)/带圈前缀2(W)]"))
(while (SETQ pt(GETpoint"\n请确定文字放置点"))
(cond
((= key "H")
(SETQ STR (strcat "H="(itoa BH)))
(EMAKET STR TSTY la PT TH tcol)
)
((= key "D")
(SETQ STR (strcat "d="(itoa BH)))
(EMAKET STR TSTY la PT TH tcol)
)
((= key "Q")
(SETQ STR (strcat "H="(itoa BH)))
(EMAKET STR TSTY la PT TH tcol)
(setq p10 (cdr(assoc 10 (entget(entlast))))
p11(cdr(assoc 11 (entget(entlast))))
)
(EMAKEEL p11 p10 la tcol BH)
)
((= key "W")
(SETQ STR (strcat "d="(itoa BH)))
(EMAKET STR TSTY la PT TH tcol)
(setq p10 (cdr(assoc 10 (entget(entlast))))
p11(cdr(assoc 11 (entget(entlast))))
)
(EMAKEEL p11 p10 la tcol BH)
)
)
)
(princ)
)
(DEFUN EMAKET(STR TSTY la PT TH tcol)
(entmake (list '(0 . "TEXT") (cons 1 STR) (cons 7 TSTY)
(cons 8 la)(cons 10 '(0.0 0.0 0.0))(cons 11 PT)
(cons 40 TH)(cons 41 Tw)(cons 62 tcol)
(cons 72 1)(cons 73 2))
)
)
(DEFUN EMAKEEL(p11 p10 la tcol BH)
(entmake (list '(0 . "ELLIPSE")'(100 . "AcDbEntity")'(100 . "AcDbEllipse")(cons 10 p11)
(cons 11 (list (* 1.4(- (car p10)(car p11)))0.0 0.0))(cons 8 la)(cons 62 tcol)
(cons 40 (/ 1 (* 0.55 (strlen (itoa BH)))))'(42 . 6.28319)
)
)
)
强大的资料,多谢大神分享,学习了。 yjr111 发表于 2013-5-25 23:13
附上源码:
大神好多币
页:
[1]
2