lamensterms 发表于 2022-7-6 09:17:21

添加修改文本b的例程

大家好,
 
我不知道最好的方式来解释我在寻找什么-但我想有一个LISP例程,将复制和替换文本。
 
我是一名钢铁详图设计师,最近我们从一个AutoCAD附加软件包切换到另一个。原始软件包能够复制自身下方的文本,然后用新文本替换复制的文本(大小、样式相同……并将其复制到现有文本下方的标准距离)。在标注尺寸时,此功能非常方便。
 
请参阅所附图片的例子…
 
新文本复制到现有文本下方的距离将与文本高度(样式)成比例。
 
非常感谢你的帮助。
 
Ps。。。我认为还值得注意的是,它将是预定义的文本,添加到现有文本的下方。所以可能有一系列命令。。。例如,命令“TYP”将添加文本“TYP”,“EQ”将添加“==”,等等。。。
 

Lee Mac 发表于 2022-7-6 09:27:01

在维度上使用DDEdit,然后使用XTYP或XREF如何

lamensterms 发表于 2022-7-6 09:28:47

李,谢谢你的回复。。
 
你能详细说明一下这个回答吗?X的功能是什么?我怎么用呢?

Lee Mac 发表于 2022-7-6 09:35:11

编辑标注时,您正在修改标注的文字替代内容。
 
表示此替代字符串中的尺寸测量值,X将在尺寸线下方放置其后的任何文本。

lamensterms 发表于 2022-7-6 09:44:15

哇,太棒了。非常感谢李的帮助和快速反应。
 
我知道需要将“\X”输入写入例程,而不是简单地将其添加到autoCAD中?(否则,“”将显示为维度文本的一部分?)
 
实际上,我刚刚找到了一个例程,它将完全满足我的需要——使用与您描述的相同的方法。
 
(Defun c:fieldverify ()
(setq newdim (entsel "\n Select Dimension to Add FIELD VERIFY to:"))
(setq newdimvalue "<>\\X FIELD VERIFY")
(command "dimedit" "n" newdimvalue newdim "")
(princ)
)
 
http://www.archidigm.com/lounge/autocad%20tips/adding_text_to_dimensions.htm
 
再次感谢你的帮助。
 
干杯

Lee Mac 发表于 2022-7-6 09:45:17

文本覆盖可以手动键入或在程序中使用。
 
举几个例子:
 

(defun c:test1 ( / e )
(if
   (and
   (setq e (car (entsel "\nSelect Dimension: ")))
   (wcmatch (cdr (assoc 0 (setq e (entget e)))) "*DIMENSION")
   )
   (entmod (subst (cons 1 "<>\\XTYP") (assoc 1 e) e))
)
(princ)
)
可能有打字错误,因为我刚刚在手机上输入了代码。

lamensterms 发表于 2022-7-6 09:55:06

太好了,再次感谢李的帮助。
 
这些例程中有哪一个可以在dtext或mtext上工作?我主要使用这些例程在维度上运行,但也希望在普通文本上使用它们。
 
再次感谢你抽出时间,朋友。

lamensterms 发表于 2022-7-6 10:00:01

而且是否可以在维度下方添加多行注释?
 
这样地。。。
 

 
再次感谢。

VVA 发表于 2022-7-6 10:05:00

3

Lee Mac 发表于 2022-7-6 10:10:19

 
您可以使用“\\P”字符串在多行文字字符串的末尾插入新行,但是,对于DText,您需要在根据选定DText的文字高度和行距因子(如1.5)计算的原始距离以下创建一个新的DText对象。
页: [1] 2
查看完整版本: 添加修改文本b的例程