kapat 发表于 2022-7-6 06:51:38

天哪,我喜欢!就像我在里面的著名的“dtr”。
苏。。。。
 
假设我的代码中已经有了。
 
我把
 
(输入:线路(pt1 pt2))?
 
回忆子程序对我来说是新的。DTR很受欢迎,所以我只是复制了它。

jdiala 发表于 2022-7-6 06:53:04

不要用括号括住变量。
 
(entmake:line PT1 PT4)
(entmake:line PT4 PT6)
 
还本地化了变量和子函数entmake:line。确保将其放在主程序中,因为如果在未来的代码中调用相同的函数,那么结果行将位于“Draft\uNoProcess”层。
 
(defun c:PIPE2FLAT (/ entmake:line D1 A1 D1H R1 etc.)

(setq D1 (getreal "Enter OD of Pipe, Please"))
(setq A1 (getreal "Enter Angle"))
(setq D1H (/ D1 2))
(setq R1 (dtr A1))

neophoible 发表于 2022-7-6 06:55:59

在主defun中嵌套defun不是一件显而易见的事情。你准备好了吗,卡帕特?你明白jdiala在说什么吗?

Commandobill 发表于 2022-7-6 06:58:21

另一种选择是,不必本地化子功能,也可以将层发送给它,然后也可以将其用于另一个程序。。。
 
(defun entmake:line ( a b layer )
(entmakex
   (list
   (cons 0 "LINE")
   (cons 8 layer)
   (cons 10 a)
   (cons 11 b)
   )
)
)

kapat 发表于 2022-7-6 07:02:45

谢谢大家!

kapat 发表于 2022-7-6 07:05:37

 
是的,我明白了。我想是的。这是一个很好的放松方式。因为我从一开始就有DTR,这只是另一个简单的开始。也许有两种不同的“entmake:lines”,因为我喜欢用红色和白色绘制。有些是“此处切割”,有些是折弯线。
 
现在唯一需要弄清楚的是在defun之后,你有命令,然后是参数。。。我真的不知道“/”之前和之后是什么,为什么。。。我试着读李的东西,但有时我会很难理解,通常每个人都用和其他人一样的方式解释事情,所以试图掌握一些只有一个定义的完全陌生的东西有点难。

Tharwat 发表于 2022-7-6 07:09:11

 
同一个实体生成不需要两个子函数,只需为颜色添加dxf 62并将其作为参数输入即可。
 
例如
 

(defun entmake:line (LayName a b c)
(entmakex
   (list '(0 . "LINE")
         (cons 8 LayName)            ; Layer Name      
         (cons 10 a)                   ; Start point      
         (cons 11 b)                   ; End point
         (cons 62 c)                   ; number of color between 1 - 255
   )
)
)

kapat 发表于 2022-7-6 07:12:00

你们知道吗,在你们说了这些之后,他们看起来很明显。再次感谢。

Tharwat 发表于 2022-7-6 07:15:25

 
不客气,祝你好运。

jdiala 发表于 2022-7-6 07:17:54

我会在#12上澄清我的解释。
由于entmake:line是一个本地化函数,没有其他函数可以调用它,因此在命令调用后它将从内存中清除。
因此,请确保将entmake:line函数放在函数调用之前,否则会出现错误“无函数定义”。
 
(defun c:PIPE2FLAT(/entmake:line D1 A1 D1H R1等)(entmake:line“_Draft\u NoProcess”pt1 pt2 3)[颜色=#2e8b57”]
页: 1 [2]
查看完整版本: 好吧,这真让我受不了。(简单