请求扩展exist
不久前,我修改了吉米·伯格马克的Lisp程序;;; By Jimmy Bergmark
;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
;;; Website: www.jtbworld.com
;;; E-mail: info@jtbworld.com
;;; rotate selected text objects to specified angle
(defun c:txtrot (/ sset i ed ang)
(if (setq sset (ssget '((-4 . "<OR")
(0 . "MTEXT")
(0 . "TEXT")
(-4 . "OR>")
)
)
)
(progn
(setq ang (getangle "Specify rotation angle <0>: "))
(if (null ang)
(setq ang 0)
)
(repeat (setq i (sslength sset))
(setq ed (entget (ssname sset (setq i (1- i)))))
(entmod (subst (cons 50 ang)
(assoc 50 ed)
ed
)
)
)
)
)
(princ)
)
lisp旋转文本,使其具有与两个拾取之间的角度相同的旋转角度。我修复旋转并确保其始终正确旋转的技巧大约是我lisp技能的极限(或缺乏),因此我希望有人能帮助我完成第二个lisp的以下单独扩展:
扩展1:用户选择两个点(如法线)并旋转文字,但如果这些点是直线/多段线/圆弧的一部分,则lisp应获取实体的端点,并将文字放置在其上方(上方偏移0.1距离等)。
扩展2(单独的lisp):用户选择两个与法线类似的点,尽管文本不仅旋转,而且放置在所选点的中间,并略高于连接这两个点的假想线(在上面偏移0.1距离等)。
如果有人有时间并且想尝试扩展上面的第二个lisp以实现这些扩展,我们将不胜感激
干杯
有机的 对于第一个:
我认为文本/多行文字的对齐方式需要先更改为中间或类似?那么X距离可以是从直线的垂线到文本的中心?文本沿图元放置一半(在本例中为一条线)。
对于第二个:
其中,Y是两个拾取点之间的距离(不一定捕捉到像图中所示的线这样的实体),然后将文本放置在两个拾取点之间的中间,同时仍然从两个拾取点之间的弦偏移X距离。 可以在VBA中进行编码吗?还是只能在lisp中进行编码?我知道一点VBA,如果可行的话,可以试试 http://lee-mac.com/curvealignedtext.html
页:
[1]