Bill Tillman 发表于 2022-7-6 06:37:28

使用Refedit的LISP

我又回到了我的全自动项目中,伙计们,用户们抱怨一些行的细节没有被裁剪。所讨论的线位于插入的块的内部。这是一项简单的手工任务,但我的项目是完全自动化的。。。不允许用户输入,必须完全由代码完成。以下是我所拥有的:
 

(command "._INSERT" my_block (polar pt 0 5) "" "" "")
(setq b1 (entlast))

(command "._REFEDIT" b1 "O" "A" "N")
(command "._TRIM" "nea" (polar pt pi 5.78125)
                     "nea" (polar pt (dtr 285.0547) 2.46875) ""
                            "nea" (polar pt (dtr 214.3396) 2.75) "")
(command "._REFCLOSE" "S")

 
但这会导致以下错误消息:
 

hmsilva 发表于 2022-7-6 06:59:29

也许是这样
 

(setq pt (getpoint))
(command "._INSERT" my_block (polar pt 0 5) "" "" "")
(setq b1 (entlast))
(setq ss (ssadd b1))
(sssetfirst ss ss)
(command "._-REFEDIT" "O" "A" "N")
(command "._TRIM" "nea" (polar pt pi 5.78125)
         "nea" (polar pt (dtr 285.0547) 2.46875) ""
         "nea" (polar pt (dtr 214.3396) 2.75) "")
(command "._REFCLOSE" "S")

 
希望有帮助
亨里克

Bill Tillman 发表于 2022-7-6 07:35:49

谢谢hmsilva,
 
我将其中的一部分改写如下:
 

.
(sssetfirst ss (ssadd b1))
.

 
这消除了一行代码。我仍在学习sssetfirst和ssadd命令,以便更加熟悉它们。但这确实奏效了。我现在可以动态编辑这些块,这会让用户更开心。

hmsilva 发表于 2022-7-6 07:46:03

不客气,比尔·蒂尔曼
很高兴我能帮忙
 
亨里克
页: [1]
查看完整版本: 使用Refedit的LISP