是否可以在dwg文件中使用局部变量并将其显示在文本对象中?
例如,我需要以某个值开始计算对象:
value0 = 5
value1 = value0 + 1
value2 = value0 + 2
etc...
我可以将 value1 和 value2 放入我绘图上的某个文字对象中吗?
答案 0 :(得分:2)
用户变量肯定会起作用。请注意,它们的数量有限,其他程序也可能在您不知情的情况下设置它们。 如果您希望将简单值显示为文本,AutoCAD可以执行此操作。变量的范围取决于您和您选择的API。 (VB,VBA,AutoLisp,.NET等) dwg文件中还有其他数据存储选项。
答案 1 :(得分:1)
要在TEXT或MTEXT(或属性)对象中显示整数,请插入字段,选择DieselExpression作为字段类型,然后键入表达式。您也可以为其他数据类型执行此操作。
该任务有多种用户变量可供使用。要实现上述目的,请在AutoCAD命令提示符中键入以下内容:
setvar useri1 5
(将用户integer1的值设置为5)
然后,您可以在不同文本对象内的字段中使用以下DieselExpressions:
$(getvar, useri1)
(获取useri1的值)
$(+,$(getvar,useri1),1)
(将useri1的值加1)
$(+,$(getvar,useri1),2)
(将useri1的值加2)
等...
答案 2 :(得分:1)
了解您喜欢使用哪种语言会有所帮助。使用AutoLISP非常容易。假设您想要一个程序向用户询问一个数字,然后继续增加该数字并将增量连续放入绘图文本(比如批号)。
这是一个完整的小样本,说明你如何做这样的事情:
(defun c:consecunum ( / entget_in entsel_in value_in value_out)
(setq
value_in (getint "\nFirst number: ")
value_out value_in
)
(while (setq entsel_in (entsel (strcat "\nText to replace with \"" (itoa value_out) "\": ")))
(setq entget_in (entget (car entsel_in)))
(entmod
(subst
(cons 1 (itoa value_out))
(assoc 1 entget_in)
entget_in
)
)
(setq value_out (1+ value_out))
)
)
如果您对此有何疑问,请随时提出。