blueshake 发表于 2022-7-6 10:22:02

合并事物(直线/圆等)

大家好
我注意到,当我从工具栏图标单击“block”命令时。然后是cad
跳出一段对话。从对话中,有一个区块存储选项。
它提供了三种选择。1.保留2。将其更改为块3删除。当我选择对象并选择2时。绘图仍保留在cad中,并成为一个块。
但是当我从命令行执行“-block”时。对象将被删除。
 
那么,我该如何让cad从命令行中发挥工具栏的作用呢。
或lisp例程。谢谢
(command "_.-block" pause)

blueshake 发表于 2022-7-6 10:32:24

以下代码可以与工具栏执行相同的操作。
(initdia)
(command "_.block" pause)
 
但是我想在lisp中做这件事,包括选择选项“将其更改为块”。

David Bethel 发表于 2022-7-6 10:42:41

试试“_.OOPS”命令-大卫

blueshake 发表于 2022-7-6 10:48:34

@大卫
感谢您的回复,
(command "_.block" pause)
(command "_.oops)

 
我知道这可以恢复删除的对象“block”命令。但是,恢复的东西仍然没有被阻止,它们是原来的样子。
 
“将其更改为块”选项可以使对象成为块。

David Bethel 发表于 2022-7-6 10:52:04

唯一的方法是在制作后插入块-大卫

blueshake 发表于 2022-7-6 11:06:20

@大卫
根据你的建议。
我编写了这些代码片段,但没有对此发表任何评论?谢谢
(defun c:merge_block(/)
(setvar "LUNITS" 2)
(setq blockNmae (rtos (getvar "cdate") 2 6))
(setq basePoint (getpoint "choose base point:"))
(setq selEnt (entget "select objects:"))
(command "_.-block" blockNmae basePoint selEnt "")
(command "_.-insert" blockNmae 1 basePoint)

)

David Bethel 发表于 2022-7-6 11:13:30


(defun c:mblk (/ bn bp ss)
(setq bn (rtos (fix (* (getvar "CDATE") 100000)) 2 0))

(setq bp (getpoint "\nBase Point <0,0,0>:   "))
(or bp (setq bp '(0 0 0)))

(while (not ss)
      (setq ss (ssget)))

(command "_.BLOCK" bn bp ss ""
          "_.INSERT" bn bp 1 1 0)
(prin1))

 
你的一些问题
 
CDATE包含小数点,不是有效名称
(entget)不创建选取集
 
-大卫

blueshake 发表于 2022-7-6 11:15:45

通过cad,非常感谢

David Bethel 发表于 2022-7-6 11:22:28

 
用另一种方式说,不客气-大卫
页: [1]
查看完整版本: 合并事物(直线/圆等)