Saqib_theleo 发表于 2022-7-5 23:00:49

需要自定义半径“0”Li

大家好,
我想要一个自定义半径为“0”的Lisp,它可以做两件事。
1.如果在非零半径上应用命令,则应将其更改为零。
2.在此之后,单击半径的下一个和上一个也应更改为零。该命令只需单击所需半径即可工作。
如果我不能解释,我附上一张图纸来理解。
如果有人能做到Lisp程序,我会为此而感激。
谢谢
图纸1.dwg

Tharwat 发表于 2022-7-5 23:04:29

你在说圆角/倒角命令吗?尽管需要更多信息。

Saqib_theleo 发表于 2022-7-5 23:08:10

是的,我忘了告诉你。圆角半径为0。

Tharwat 发表于 2022-7-5 23:11:06

 
好的,您知道系统变量FILLETRAD吗?

Saqib_theleo 发表于 2022-7-5 23:13:40

不,我不知道。

Tharwat 发表于 2022-7-5 23:18:44

在命令行中键入它,并按第一篇帖子中的要求将其输入零值,然后在Fillet命令调用中相应地更改该值。

dbroada 发表于 2022-7-5 23:21:33

0圆角半径的非LISP解决方案是在选择直线时按住shift键。这将以0半径圆角,但将保留所有后续圆角的前一个值。

mostafa badran 发表于 2022-7-5 23:23:27

我认为DBRODA的建议对您来说是一个很好的解决方案。

Saqib_theleo 发表于 2022-7-5 23:29:08

谢谢大家的建议。是的,这可以通过多种方式完成,但可以通过Cad命令手动完成。我在寻找一个Lisp,在这里我不必选择两条直线使其半径为0,也不必自动将半径0设置为下一条和上一条,这意味着只需单击一个半径而不是两条直线。
希望有人能创造这样的Lisp程序。
谢谢

Tharwat 发表于 2022-7-5 23:30:42

尝试此例程,仅根据您的请求选择多段线。
 

(defun c:Test (/ ss fr)
(if (setq ss (ssget "_:L" '((0 . "LWPOLYLINE"))))
   (progn
   (setq fr (getvar 'FILLETRAD))
   (setvar 'FILLETRAD 0)
   ((lambda (i / sn)
      (while (setq sn (ssname ss (setq i (1+ i))))
          (vl-cmdf "_.fillet" "_Polyline" sn)
      )
      )
       -1
   )
   (setvar 'FILLETRAD fr)
   )
)
(princ)
)
 
让我知道
页: [1] 2
查看完整版本: 需要自定义半径“0”Li