fcfcadd 发表于 2022-7-6 11:08:11

如何循环此例程

我想知道如何让这个程序循环。我希望能够插入属性块,然后当所有属性都被填充后,它会循环回到开始。
 
(定义C:bom()
(SETVAR“attdia”0)
(SETVAR“cmddia”0)
(setq a(getpoint“插入点:”))
(命令“_insert”“bom.dwg”a“”)
(普林斯)
)

alanjt 发表于 2022-7-6 11:11:34

(DEFUN C:bom (/ a)
(SETVAR "attdia" 0)
(SETVAR "cmddia" 0)
(while (setq a (getpoint "\nInsertion Point: "))
   (COMMAND "_.insert" "bom.dwg" "_non" a "" "" "")
)
(PRINC)
)

fcfcadd 发表于 2022-7-6 11:15:49

它只是不断循环插入点,并在不要求属性的情况下插入块

alanjt 发表于 2022-7-6 11:18:57

啊,我不知道这是一个属性块。
 
你可能不得不走另一条路。试试看。。。
 
(DEFUN C:bom (/ a)
(SETVAR "attdia" 0)
(SETVAR "cmddia" 0)
(while (setq a (getpoint "\nInsertion Point: "))
   (COMMAND "_.insert" "bom.dwg" "_non" a)
   (while (> (getvar 'cmdactive) 0) (command ""))
   (initdia)
   (command "_.attedit" "_L")
)
(PRINC)
)

fcfcadd 发表于 2022-7-6 11:21:38

这是可行的。非常感谢。我想我将对此进行更多调整,使其提示“是/否”以继续下一行或停止,如果是,则使其自动将下一个块插入到上一个插入点正下方的1/4”,而不是让其拉出对话框,以便所有条目都是命令提示基。

alanjt 发表于 2022-7-6 11:26:33

不客气。
 
你可能想看看极函数。

fcfcadd 发表于 2022-7-6 11:30:11

我会的,谢谢你。

fcfcadd 发表于 2022-7-6 11:32:55

好吧,因为我几乎不知道如何用极性函数来表示我想要的东西。我需要帮助。

alanjt 发表于 2022-7-6 11:33:54

(polar '(0 0 0) (* pi 1.5) 5.)
 
上述示例将返回点5。点0,0,0的向南英尺(*pi 1.5)(或3pi/2)。

fcfcadd 发表于 2022-7-6 11:38:39

那么是这样吗?
 
(定义C:bom(/a)
(SETVAR“attdia”0)
(SETVAR“cmddia”0)
(while(setq a(getpoint“\n插入点:”))
(极坐标'(0.0)(*pi 1.5)5。)
(命令“LAYER”S“BORDER01”)
(命令“_insert”“bom.dwg”a“”)
(while(>(getvar'cmdactive)0)(命令“”)
(初始直径)
(命令“_.attedit”“\u L”)
(普林斯)
)
)
页: [1] 2
查看完整版本: 如何循环此例程