不久前,我修改了吉米·伯格马克的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以实现这些扩展,我们将不胜感激
干杯
有机的 |