lisp中插入字段如何读取活动块元素ObjId
急求:本人做了一个活动块,然后在lisp中插入进来后,进行文字命名,希望将这个活动块的长度作为文字命名的一部分。
但在lisp程序中无法知道ObjId后面这部分数字串的名称,导致不成功,求大神指点:
代码如下:
(defun c:t5 (/ p)
(setq p0 (getpoint "点选起点"))
(command "insert" "pxbd1" p0 "1" "1" 90 "")
(setq txt1 (STRCAT
"%<\\AcObjProp Object(%<\\_ObjId 1705933040>%).Parameter(1).UpdatedDistance \\f \"%lu2%pr0\">%"
))
(princ)
)
解释:pxbd1是活动块名,其中:ObjId 1705933040,每次插入同一活动块,这串字符都会有变化,这串字符既不是元素,也不是名称,请各位大神指点如何求得所插入块的ObjId!
感谢!
本帖最后由 gaics 于 2023-8-17 08:39 编辑
(defun c:t5 (/ obj p0 txt1)
(setq p0 (getpoint "点选起点"))
(command "insert" "pxbd1" p0 "1" "1" 90 "")
(setq obj (vlax-ename->vla-object (entlast)))
(setq txt1 (vla-get-objectid obj))
(setq txt1 (itoa txt1))
(setq txt1
(STRCAT
"%<\\AcObjProp Object(%<\\_ObjId "
txt1
">%).Parameter(1).UpdatedDistance \\f \"%lu2%pr0\">%"
)
)
(COMMAND "TEXT" "j" "m" p0 "40" 90 txt1)
(princ)
) 求大神指点 补充一下代码结尾还有这一句:
(COMMAND "TEXT" "j" "m" p0 "40" 90 txt1) (entlast) 可以得到 最后一次创建的图元名,你试试根据这个图元名去得到你要的信息 本帖最后由 kozmosovia 于 2018-9-29 12:42 编辑
这个不需要编程,动态块定义时就可以指定自身。直接把你要写的文字做成快内属性就行。 gaics 发表于 2018-9-28 15:17
非常好,感谢,解决了
页:
[1]