Lee Mac 发表于 2022-7-6 17:25:25

圆角不工作。。。

这是我上一篇文章的扩展,不过我认为在一个新的帖子中可能是最好的。
 
我曾尝试使用以下代码创建一个LISP来对线对进行圆角处理:
 
(defun flangeelevfillet ()
   (command "_fillet"
       "R"
       "2"
       a6
       a8
   )
   (command "_fillet"
       "R"
       "2"
       a7
       a9
   )
   (command "_fillet"
       "R"
       "2"
       a8
       a10
   )
   (command "_fillet"
       "R"
       "2"
       a9
       a11
   )
   (command "_fillet"
       "R"
       "2"
       a10
       a12
   )
   (command "_fillet"
       "R"
       "2"
       a11
       a12
   )
   (command "regenall")
)
 
但是,当在另一个LISP程序中使用此代码时(其中变量a1、a2等是使用entlast脚本设置的线实体),线不会被圆角,命令框只显示实体名称。。。。我看不出我做错了什么。。。。希望有一双新的眼睛能发现我错过的东西眨眼:

Strix 发表于 2022-7-6 17:30:06

你能把另一个Lisp程序也贴出来吗,还是其他Lisp程序?

CAB 发表于 2022-7-6 17:32:26

根据我的经验,您需要提供一个关于ename的点
就像你从(entsel)得到的一样,不仅仅是ename。

Lee Mac 发表于 2022-7-6 17:37:07

CAB,如果我知道直线上的一个点并使用“cons”语法,我能创建这样的东西吗。
 
(defun constest ()
   (setq b1
         (cons a1 pt1)
   ) ; end setq
) ; end program
 
其中b1是ename和点(如entsel中),a1是pt1作为线上点的实体。。。

CAB 发表于 2022-7-6 17:38:35


    (command "_fillet"
       "R"
       "2"
       (cons a6 p6)
       (cons a8 p8)
   )
 
注意,osmode可能会导致使用点的命令出现问题。它应该在命令期间设置。

Lee Mac 发表于 2022-7-6 17:42:35

谢谢,一如既往地感谢您的帮助。

Lee Mac 发表于 2022-7-6 17:45:21

我使用了entsel格式方法,并尝试了在要圆角的直线末端的一个点,以及直线中间的一个点(如果它是导致问题的端点)。。。osmode设置为0时。
 
我用过!b1用这个结果检查变量的值:
 
Command: !b1
(<Entity name: 7ed12f40> 1092.59 287.969 0.0)
 
所以我知道变量设置正确。
 
在LISP完成了它的例程之后,我自己尝试了圆角,并且成功了,那么LISP究竟为什么不能做到呢!!!

Lee Mac 发表于 2022-7-6 17:47:52

 
我的LISP文件超过了设置的20KB限制。。很抱歉

Strix 发表于 2022-7-6 17:53:57

这就是为什么我们经常在3篇文章中出现Lisp程序的现象:wink:

CAB 发表于 2022-7-6 17:55:53

你可以打开Lisp程序。
 
 
对不起,代码我犯了一个错误,它应该是列表而不是图标
    (command "_fillet"
       "R"
       "2"
       (list a6 p6)
       (list a8 p8)
   )
页: [1] 2
查看完整版本: 圆角不工作。。。