SunnyTurtle 发表于 2022-7-6 06:11:06

抹掉帮助我的口齿不清avo

当我每次都想选择相同的东西时,我做了很多擦除操作,不喜欢打字来创建它们。
 
我写了这个lisp来帮助我加快这个过程。
 
它非常简单,非常适合展示如何使用lisp为autocad comands创建快捷方式。
 
我很喜欢这个lisp的recive comment/critesim以及任何有助于更好理解lisp的东西。
;wipeout shotcut
(defun c:wp()
(setq pl1
(entsel "\nSelect closed polyline to convert to wipeout:")
);setq
(command "wipeout" "polyline" pl1 "yes")
(command "change" "last" "" "properties" "color" "green" "")
);defun
 
我遇到的一个问题是lisp的命令函数。如果你想进入,你必须“不”。

Tharwat 发表于 2022-7-6 06:20:12

最好检查所选实体是否达到我们的要求,然后我们可以对其执行操作。
 
退房了。。。。
 
(defun c:wp (/ pl1)
(if (and (setq
            pl1 (entsel "\nSelect closed polyline to convert to wipeout:")
          )
          (vlax-curve-Isclosed (car pl1))
   )
   (progn
   (command "_.wipeout" "_polyline" pl1 "yes")
   (command "_.change" "last" "" "properties" "color" "green" "")
   )
   (princ)
)
(princ)
)

 
塔瓦特

Organic 发表于 2022-7-6 06:31:09

为什么不在多行文字上使用背景遮罩,而不是使用擦除?

Tharwat 发表于 2022-7-6 06:39:59

 
很好,丁克。
 
这就是我想到的,但有一个小问题是,当实体是多行文字,其宽度比其字符更宽时,背景会消失
跟随多行文字的宽度,而不是文字中所有字符的宽度。
 
塔瓦特

vnanhvu 发表于 2022-7-6 06:48:12

Sunny和Tharwat的Lisp程序对cirlce或pline(直线+圆弧)没有影响。你可以结合我的lisp(用于圆)&开发更多。。。祝你好运

(Defun c:WC ()
(command "undo" "be")
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 0)

(Princ "\nHay chon CIRCLE :")
(setq XX (ssget '((0 . "CIRCLE"))))

(setq L 0)
(setq M (sslength XX))
(while (< L M)
(setq DT (ssname XX L))
(setq DT (entget DT))
(setq TAM (cdr (assoc 10 DT)))
(setq BANKINH (cdr (assoc 40 DT)))

(command ".polygon" "30" TAM "" BANKINH)
(command ".wipeout" "" "last" "y")

(setq L (1+ L))
)

(setvar "osmode" luubatdiem)
(command "undo" "end")
(Princ)
)

Tharwat 发表于 2022-7-6 06:52:22

 
真正地
 
顺便说一句,这个例程的名字很酷。

SunnyTurtle 发表于 2022-7-6 07:01:17

是的,我总是在文本中使用背景掩码,它只是简单得多。
但我用抹布做了其他事情,比如堵住桥下的路
为了澄清一下,塔尔瓦特和我的作品只在封闭普林线上进行。

SunnyTurtle 发表于 2022-7-6 07:10:02

您好,我只是在使用lisp,并决定我可以改进它,使其更加用户友好。
如果您选择了一条未闭合的线(因为这些线不能成为擦除线)。它将显示一条错误消息。
如果你打开了dianmic输入,有没有办法让它出现在鼠标旁边?
谢谢你们,你们真是太棒了。
(defun c:wp (/ pl1)
(if (and (setq
            pl1 (entsel "\nSelect closed polyline to convert to wipeout:")
          )
          (vlax-curve-Isclosed (car pl1))
   );and
   (progn
   (command "_.wipeout" "_polyline" pl1 "yes")
   (command "_.change" "last" "" "properties" "color" "green" "")
   );progn
   (prompt "\nERROR ployline not closed!")
);if
(princ)
);defun
所以我在这篇文章中使用了prompt,但是告诉我有一个错误并不是特别的
显示屏上显示
我如何让它显示在底线上,即“命令:”在哪里
我喜欢这个,因为它更容易看

3dwannab 发表于 2022-7-6 07:16:14

谢谢你的代码,我已经更改并添加了一行,以满足我的需要。
 
(命令“_.wipeout”“\u polyline”pl1“yes”)
(命令“_.change”“last”“”“properties”“color”“T”“255255255”“))
(命令“DRAWORDER”“last”“back”“))
 
基本上现在的颜色是255255255。只是意味着擦除行看起来不会打印。
提取订单以将其发送回。我主要在区块内使用它,但这通常是它工作得最好的方式。
页: [1]
查看完整版本: 抹掉帮助我的Lisp程序avo