jjatho 发表于 2022-7-5 18:53:11

Can#039;t似乎要爆炸blo

以下是我正在处理的不完整代码:
 
(defun C:Crane()

(initget 1 "Kobelco 777 888 999 LTR1100 1400 1600 1750 11000 11350 13000")
(setq Crane (getkword "Select Crane : "));

(cond
((="Kobelco" Crane)

);
((="777" Crane)

);
((="888" Crane)

);
((="999" Crane)

);
((="LTR1100" Crane)
        (initget 1 "Elevation Plan")
        (setq BlockView (getkword "Select View : "));
       
        (cond
                ((="Elevation" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LTR 1100\\2D CAD Files\\Buckner Crane Block\\LTR 1100 Elevation.dwg")
               
                );
                ((="Plan" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LTR 1100\\2D CAD Files\\Buckner Crane Block\\LTR 1100 Plan.dwg")
               
                );
        )
);
((="1400" Crane)

);
((="1600" Crane)

);
((="1750" Crane)

);
((="11000" Crane)
        (initget 1 "Elevation Plan")
        (setq BlockView (getkword "Select View : "));
       
        (cond
                ((="Elevation" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LR 11000\\2D CAD Files\\Buckner Crane Block\\11000 Elevation.dwg")
               
                );
                ((="Plan" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LR 11000\\2D CAD Files\\Buckner Crane Block\\11000 Plan.dwg")
               
                );
        )
);
((="11350" Crane)
        (initget 1 "Elevation Plan")
        (setq BlockView (getkword "Select View : "));
       
        (cond
                ((="Elevation" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LR 11350\\2D CAD Files\\Buckner Crane Block\\11350 Elevation.dwg")
               
                );
                ((="Plan" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LR 11350\\2D CAD Files\\Buckner Crane Block\\11350 Plan.dwg")
               
                );
        )
);
((="13000" Crane)
        (initget 1 "Elevation Plan")
        (setq BlockView (getkword "Select View : "));
       
        (cond
                ((="Elevation" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LR 13000\\2D CAD Files\\Buckner Crane Block\\13000 Elevation.dwg")
                (setq name "13000 Elevation")
               
                );
                ((="Plan" BlockView)
               
                (setq path "C:\\Dropbox\\Buckner Heavy Lift Cranes\\Technical Data\\Liebherr LR 13000\\2D CAD Files\\Buckner Crane Block\\13000 Plan.dwg")
                (setq name "13000 Plan")
                );
        )
);
)

(command "insert" path "S" "1" "R" "0")

(princ)
) ;End defun Crane
 
在插入块之后,我尝试了在网上找到的每一种方法来选择该块,然后分解它,但我似乎无法使其工作。可能是因为我插入了一个文件路径吗?

MonkeyTurnip 发表于 2022-7-5 18:58:04

在块编辑器中,“允许分解”参数是否已设置为“否”?

MonkeyTurnip 发表于 2022-7-5 19:00:31

下面是块编辑器属性内的屏幕截图。如果将其设置为“否”,块将不会分解,如果将其设置为“是”,块将分解。该设置针对每个块

welldriller 发表于 2022-7-5 19:06:43

好吧,我不知道如何编写代码——但是——使用程序附带的(explode命令)有什么错?

jjatho 发表于 2022-7-5 19:09:20

它们都能爆炸。我现在只是选择它们并手动分解。

jjatho 发表于 2022-7-5 19:13:05

效率为什么每次不必手动选择并手动分解?对我来说,AutoLISP背后的全部思想是更快、更容易地完成任务

RobDraw 发表于 2022-7-5 19:16:36

如果它是本机AutoCAD命令,为什么要对其进行编码?
 
插入时分解是“插入块”命令中的一个选项。

jjatho 发表于 2022-7-5 19:19:35

我可以修改以下代码行吗
 
(command "insert" path "S" "1" "R" "0")

 
像那样爆炸?

RobDraw 发表于 2022-7-5 19:24:30

对不起,我回答了,我忘了我在编码论坛。

Tharwat 发表于 2022-7-5 19:26:11

 
也许这应该适用于外部插入块(之前未测试)。
 
(command "insert" (strcat "*" path) "S" "1" "R" "0")
页: [1] 2
查看完整版本: Can#039;t似乎要爆炸blo