文字以左中或右中吸附到直线,多线,弧的端点
文字以左中或右中吸附到直线,多线,弧的端点,排版利器因为对box的使用不熟悉,所以只能做到居中吸附,而且涉及到文字宽度,以后会考虑MTEXT的(defun C:edt()
;;(princ "\nSelect ")
(while (setq objEnt (entsel "\n Select a point on a line/pline/arc... "))
(progn
(setq objType (cdr (assoc 0 (entget (car objEnt)))))
(princ objType)
(setq pt1 (osnap (cadr objEnt) "_nea"))
(setq pt2 (osnap (cadr objEnt) "_endp"))
(setq ent2 (entget (setq entList (car objEnt))))
(setq layName (DXF 8 ent2))
(setvar "clayer" layName)
)
)
;;(princ "\nselect the text")
(princ)
(setq NN(entsel "\nSelect the text to move to the ENDPOINT: ")
NN1 (entget (car NN))
NN2 (subst (cons 72 4) (assoc 72 NN1) NN1);;1中心2右3对齐4中央5调整6左7
ST1 (subst (cons 11 PT2) (assoc 11 NN2) NN2))
(entmod NN2)
(entmod ST1)
(setvar "cmdecho" 0)
)
效果如图,求指教
吸付???好东东。学习了 是这样的吗? 楼上,显然不是这种 meja 发表于 2014-7-12 14:08 static/image/common/back.gif
楼上,显然不是这种
他想要的功能是这样的吧 gaics 发表于 2014-7-12 13:20 static/image/common/back.gif
是这样的吗?
能发源码上来吗? ;字对端点
(defun C:edt ()
(while (and (setq objEnt (entsel "\n Select a point on a line/pline/arc... "))
(setq pt1 (osnap (cadr objEnt) "_nea"))
(setq pt2 (osnap (cadr objEnt) "_endp"))
(setq NN(entsel "\nSelect the text to move to the ENDPOINT: "))
(setq NN1 (entget (car NN)))
(= (cdr(assoc 0 NN1)) "TEXT"))
(setq ent2 (entget (setq entList (car objEnt))))
(setvar "clayer" (cdr(assoc 8 ent2)))
(setq pp (mapcar '- pt2 pt1))
(cond
((< (car pp) 0) (setq r72 2 r73 2));右中
((> (car pp) 0) (setq r72 0 r73 2));左中
((< (cadr pp) 0) (setq r72 1 r73 3));中上
((> (cadr pp) 0) (setq r72 1 r73 1));中下
)
(setq NN1 (subst (cons 72 r72) (assoc 72 NN1) NN1)
NN1 (subst (cons 73 r73) (assoc 73 NN1) NN1))
(entmod (subst (cons 11 PT2) (assoc 11 NN1) NN1))
)
(setvar "cmdecho" 0)
(princ)
)
长风(尚品) 发表于 2014-7-12 20:07 static/image/common/back.gif
能发源码上来吗?
论坛里有的 本帖最后由 gaics 于 2014-7-12 23:16 编辑
长风(尚品) 发表于 2014-7-12 20:07 static/image/common/back.gif
能发源码上来吗?
http://bbs.mjtd.com/thread-99093-1-1.html
http://bbs.mjtd.com/thread-99014-1-1.html
页:
[1]
2