notredave 发表于 2022-7-5 15:27:14

**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
 
 
感谢您的阅读,
戴夫

ronjonp 发表于 2022-7-5 15:35:00

张贴示例图纸。

StevJ 发表于 2022-7-5 15:36:14

有关文本对齐,请参阅中的第3篇文章http://www.cadtutor.net/forum/showthread.php?65281-文字对齐Lisp
 
要使文本在两点之间居中,请在中找到解决方案http://www.cadtutor.net/forum/showthread.php?90741
 
 
史蒂夫

notredave 发表于 2022-7-5 15:42:28

ronjonp,随附为示例图纸的一部分
例子。图纸

ronjonp 发表于 2022-7-5 15:43:22

你一次移动一个文本?你有生成表格的代码吗?

notredave 发表于 2022-7-5 15:50:15

我不介意一次移动一个。该表是手动生成的。我只是想从中间的中心选取文本,并选取两个端点到中心文本。你有没有看到卡布的Lisp程序?但只有当第二个点是矩形时,它才起作用。我想选择2分。

ronjonp 发表于 2022-7-5 15:55:03

IMO。。应该做的第一件事是找出如何自动生成表。然后你可以格式化成任何需要的格式。

notredave 发表于 2022-7-5 15:56:58

我有其他类型的图纸,使用不同大小的表格/明细表

ronjonp 发表于 2022-7-5 15:59:19

 
这仍然是一项需要自动化的任务。。。
 
这里有一些快速代码可以帮助您完成手动过程。
(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)

notredave 发表于 2022-7-5 16:03:44

我会试试,然后告诉你。非常感谢ronjonp!
页: [1] 2
查看完整版本: **Lisp例程移动文本或