LISP将文本标签读取为att
你好是否存在读取点的文本标签并将其粘贴为属性的lisp?
例如:
我在CAD中有一个点,它有一个描述Z坐标的文本标签。我需要一个lisp来读取这个高度并粘贴到几何体中的“Z”行。然后将点从2D转换为3D。
在哪里可以找到这种lisp?
谢谢你提前帮助我。 你好
上载样例图形。 https://www.cadtutor.net/forum/attachment.php?attachmentid=57747&cid=1&stc=1
点作为块插入。
试试这个:-
对于文本:-
(defun c:test (/ a b c d i)
(if (setq a (ssget '((0 . "text"))))
(repeat (setq i (sslength a))
(setq b (entget (ssname a (setq i (1- i)))))
(setq c (cdr (assoc 10 b)))
(setq d (subst (atof (cdr (assoc 1 b))) (caddr c) c))
(entmod (subst (cons 10 d) (assoc 10 b) b))
)
)
(princ)
)
对于块。。。。根据块标记更改属性标记“A”:-
(defun c:test (/ a b c d i)
(if (setq a (ssget '((0 . "insert"))))
(repeat (setq i (sslength a))
(setq b (vlax-ename->vla-object (ssname a (setq i (1- i)))))
(setq c (vlax-get b 'InsertionPoint))
(setq d (vl-some '(lambda (x)
(if (eq (vla-get-tagstring x) "A") ; Change tag here
(atof (vla-get-textstring x))
)
)
(vlax-invoke b 'GetAttributes)
)
)
(vla-put-insertionpoint
b
(vlax-3d-point (subst d (caddr c) c))
)
)
)
(princ)
) @Jakub-据我在属性调色板中看到的,它表示您没有选择任何内容。。。因此,考虑到这一点,AutoCAD会向您显示光标的高程,在二维视图中,光标的默认高程(或十字光标,以您喜欢的为准)始终为0。为了让我们能够为您提供任何帮助,您必须上传一个示例文件,以便我们能够准确地看到您正在处理的问题。
@satishrajdev-我认为Jakub想要提升代表点的块,而不仅仅是附加到它的文本!代码不错。
顺致敬意,
CAD_89 我已经更新了代码
页:
[1]