blueshake 发表于 2022-7-5 16:46:55

关于“wblock”命令

大家好
 
 
在autocad 2010中,当我在命令行中键入“wblock”时。
cad将跳出一个对话框来选择/设置。
但是当我编写lsp文件时,上下文如下。
(defun c:partial_saving(/)
(command "-wblock")
)
 
cad变成命令行模型。我阅读了帮助文件。上面写着
我不应该将filedia设置为0。所以我把代码改为
(defun c:partial_saving(/)
(setvar filedia 1)
(command "-wblock")
)
 
更糟的是。cad只是给出了一些错误。
如果我想展示对话,我该怎么做?有人能帮我吗??
谢谢

lpseifert 发表于 2022-7-5 16:54:12


(initdia)(command "._wblock")

Mellie 发表于 2022-7-5 16:55:53

大家好,
 
我需要编写一个程序,从整个图形创建wblock。我还需要这个程序通过键入一个简单的命令来自动执行以下所有功能:
[列表=1]
[*]在命令行上,输入wblock。
[*]在“写块”对话框的“源”下,单击“整个图形”。
[*]在“目标”下的“文件名”框中,输入WBLOCK的文件名。
[*]在“位置”框中,输入要保存WBLOCK(新图形文件)的位置。
[*]单击“确定”创建新的图形文件。
我知道如何调用现有的autocad命令,但我不确定如何执行步骤2到5。
这是我到目前为止得到的:
 


(defun c:wblockm ()

(initdia)(command "._wblock")
)

请帮忙!我试着这么做了一段时间,终于得出结论,我需要一些帮助。
 
谢谢

Snownut 发表于 2022-7-5 16:59:46

 
请参阅此代码以了解您的错误。

Snownut 发表于 2022-7-5 17:05:31

试试这个;
 

(defun c:partial_saving (/ tmpvar)
(if (= (setq tmpvar (getvar 'filedia)) 0)
(setvar 'filedia 1)
)
(vl-cmdf "-wblock" "file name" "*")
(setvar 'filedia tmpvar)

Mellie 发表于 2022-7-5 17:09:52

嗨,Snownut,
 
这让我更接近我想要的!
 
因此,当我运行此代码时,它会提示我输入输出文件的名称,然后选择“整个图形”,然后文件会保存在我的桌面上。但我希望所有这些都能自动完成。我希望每次都将文件命名为Melanie,并在输入partial\u saving命令时保存在此位置(“C:\\AutoCAD\\”Melanie.dwg”)。
 
我希望在代码中执行以下操作:
 
wblock输入输出文件的名称:nil
输入输出文件名:Melanie
输入现有块的名称或
[=(块=输出文件)/*(整个图形)]:*
 
这可能吗?

Snownut 发表于 2022-7-5 17:14:29

这应该会奏效;
 

(defun c:partial_saving ( / tmpvar)
(if (= (setq tmpvar (getvar 'filedia)) 0)
   (setvar 'filedia 1)
   )
(vl-cmdf "-wblock" "C:\\Autocad\\Melanie.dwg" "*")
(setvar 'filedia tmpvar)
);defun

 
刚刚更正了文件名。。。。。

Snownut 发表于 2022-7-5 17:15:52

最后一步,删除文件(如果已经存在);

(defun c:partial_saving ( / file)
(if (setq file(findfile "C:\\Autocad\\Melanie.dwg"))
   (vl-file-delete file)
   )
(vl-cmdf "-wblock" "C:\\Autocad\\Melanie.dwg" "*")
);defun

Mellie 发表于 2022-7-5 17:19:10

谢谢Snownut这太棒了!!
 
(/文件)是什么意思?vl cmdf是什么意思?
 
非常感谢你!!!

Snownut 发表于 2022-7-5 17:25:11

(/file)声明变量“file”,函数使用局部变量,nil在函数完成时将其输出。(不会以这种方式搅乱内存)
 
vl cmdf是与“command”函数等效的Visual Lisp,它在执行时不像command函数那样调用wblock对话框。
页: [1] 2
查看完整版本: 关于“wblock”命令