solidworks2014 发表于 2022-7-5 23:44:41

写一个lisp块名
 
https://lebim.cn/a/%5Burl=http://hizliresim.com/7mPD25%5D%5Bimg%5Dhttp://i.hizliresim.com/7mPD25.jpg

BIGAL 发表于 2022-7-5 23:50:07

这会告诉你名字
 

(princ "\nPick a block)
(setq bname (cdr (Assoc 2 (entget (car (entsel))))))
(alert (strcat "Block name is " bname))

ReMark 发表于 2022-7-5 23:52:53

如果你(solidworks2014)对你的问题更具描述性,这可能会有帮助。

mostafa badran 发表于 2022-7-5 23:54:37

试试这个。
(defun c:blknm()
(setq blknm (cdr (Assoc 2 (entget (car (entsel))))))
(setq ptxt (getpoint"\nPoint"))
(COMMAND "TEXT" ptxt 5 0 blknm )
)

MSasu 发表于 2022-7-5 23:59:36

对于不使用DXF代码2(即线)的实体,该代码将失败,因此只过滤块可能很有趣:
(if (and (setq ssetBlock (ssget "_:S:E" '((0 . "INSERT"))))
      (setq nameBlock (cdr (assoc 2 (entget (ssname ssetBlock 0)))))
      (setq pointPick (getpoint "\nInsertion point: ")))
(command "_TEXT" "_J" "_MC" "_non" pointPick (getvar "TEXTSIZE") 0.0 nameBlock)
)

mostafa badran 发表于 2022-7-6 00:02:15

谢谢MSasu的澄清,你是对的。

mostafa badran 发表于 2022-7-6 00:04:35

MSasu为什么它们都无法使用动态块,如果可以使用DB,请澄清原因。
谢谢

MSasu 发表于 2022-7-6 00:09:25

对于动态块,请检查Lee Mac的这篇文章。

BIGAL 发表于 2022-7-6 00:12:54

看看我们是怎么猜测的(solidworks2014,你们在哪里),伙计们,为什么不把块插入pt拔出,也做一个快速的polar和写块名,消除拾取点的需要。
页: 1 [2]
查看完整版本: 按名称阻止lisp