**Lisp例程移动文本或
大家早上好,有没有人可以共享一个iisp例程,该例程首先将多行文字或文本插入点作为移动目的的MC,然后能够将其移动到“两点之间的中间”?文本或多行文字在移动后不需要保留MC插入点。我当然会很感激的。我需要移动一个铭牌时间表上的大量文字,并希望它看起来专业。Cab在一年前写道,如果你有一个矩形,效果很好,但我需要它在2点之间的中间工作。
连接到Cab的帖子:
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/move-mtext-to-center-of-rectangle/td-p/2632882
感谢您的阅读,
戴夫 张贴示例图纸。 有关文本对齐,请参阅中的第3篇文章http://www.cadtutor.net/forum/showthread.php?65281-文字对齐Lisp
要使文本在两点之间居中,请在中找到解决方案http://www.cadtutor.net/forum/showthread.php?90741
史蒂夫 ronjonp,随附为示例图纸的一部分
例子。图纸 你一次移动一个文本?你有生成表格的代码吗? 我不介意一次移动一个。该表是手动生成的。我只是想从中间的中心选取文本,并选取两个端点到中心文本。你有没有看到卡布的Lisp程序?但只有当第二个点是矩形时,它才起作用。我想选择2分。 IMO。。应该做的第一件事是找出如何自动生成表。然后你可以格式化成任何需要的格式。 我有其他类型的图纸,使用不同大小的表格/明细表
这仍然是一项需要自动化的任务。。。
这里有一些快速代码可以帮助您完成手动过程。
(defun c:foo (/ _mid e p p1 p2)
(defun _mid (p1 p2) (polar p1 (angle p1 p2) (/ (distance p1 p2) 2.)))
;; RJP - 03.22.2018
(if (and (setq p1 (getpoint "\nSpecify first corner point: "))
(setq p2 (getcorner p1 "\nSpecify other corner point: "))
(setq e (ssget "_C" p1 p2 '((0 . "*text"))))
(setq e (vlax-ename->vla-object (ssname e 0)))
(vlax-write-enabled-p e)
)
(progn (vla-getboundingbox e 'll 'ur)
(setq p (mapcar 'vlax-safearray->list (list ll ur)))
(vlax-invoke e 'move (_mid (car p) (cadr p)) (_mid p1 p2))
)
)
(princ)
)
(vl-load-com) 我会试试,然后告诉你。非常感谢ronjonp!
页:
[1]
2