编辑字段链接
我正在尝试读取和编辑字段的链接,我使用以下代码:(defun c:testar ( / a e o s x texto tipodepeca z y obj)
(if (setq s (ssget "_:L" '((0 . "TEXT")) ))
(repeat (setq i (sslength s))
(setq e (ssname s (setq i (1- i)))
x (entget e)
obj (vlax-ename->vla-object e) ;define object
a (vla-get-textstring obj) ;assign the object textstring to variable a
)
(prin1 a)
(vla-put-textstring obj "%<\AcExpr (Table(%<\_ObjId 8796083039968>%).E6) \f ""%lu2%pr2>%")
)
)
(princ)
)
第一个问题是,当我使用vla get textstring时,代码检索的不是链接,而是静态字段显示的文字文本或值。
第二个问题是,vla put textstring完全用“”中的内容替换内容。如果我有“hi”,它会在文本中放置hi,删除任何类型的字段。我做错了什么? 误读了帖子对不起。 我不知道你是什么意思,塔尔瓦,我所有的字段都在文本对象中
抱歉给你带来了困惑。
我想你需要这个函数vla fieldcode 非常感谢。这个函数似乎只检索当前代码,你知道有什么可以直接编辑或修改它的吗? 你在说什么样的修改? 作为最后手段,更改字段链接到的表id,但理想情况下,我可以更改整个字段代码。
无论如何,我发现了一些有趣的事情,关于检索表的组码,有以下内容
现在,表id是什么?
879... 某物
但是为什么字母表中有这么多的ff和ee以及不超过“f”的字符呢?它可以是十六进制吗?
因此,我可以交换表的id,而不是更改每个表上的表代码。。我试试看 运气不好,我试图直接这样改变身份:
(defun c:teste ( / a e o s x texto tipodepeca z y)
(if (setq s (ssget "_:L" '((0 . "TEXT,ACAD_TABLE")) ))
(repeat (setq i (sslength s))
(setq e (ssname s (setq i (1- i)))
x (entget e)
a (assoc -1 x)
)
;(setq y (entmod (subst '(-1 . "<Entity name: 7ffffb02970>") a x))) ;original entity code so i dont forget
(setq y (entmod (subst '(-1 . "<Entity name: 7ffffb0297f>") a x))) ;entity code that i'm trying to setup
(entmod y)
)
)
(princ)
)
结果:
; 错误:错误的DXF组:(-1“”“”)
这是某种autocad锁,这样ID就不会被弄乱吗?
页:
[1]