hydkot99 发表于 2007-10-27 11:09:00

[求助]请修改下面的程序

<p><font color="#ff3300" size="3">要求在ACAD2004、2005上用LSP程序实现一下功能:<br/>&nbsp;&nbsp;&nbsp; 标题栏用属性块的方式调入,填写完标题栏项目后,如要保存图形,则默认以“图号”+“名称”为文件名,路径可选。<br/>&nbsp; &nbsp; 如图号为“1024085”,名称为“机架总成”,则保存文件名为“1024085机架总成”。</font><br/><font size="3">-----------------------------------------------------------------------------------------------------------------------------</font></p><p><font size="3">有人给出下面程序:</font></p><div class="tpc_content">以下程序调试成功,你需要将程序中的“标题栏属性块名”“图号”“名称”替换成你们用的块名、属性名!<br/>另:前四行通过对话框选择一文件来获取路径,应保证选择的路径下有一个文件<br/>(defun c:SaveAttName(/ tp L ss en el nm t1 t2 tn)<br/>(setq tp (getfiled "文件保存路径" "" "" 4))&nbsp; ;选取任意一个文件<br/>(setq L (strlen tp))<br/>(while (/= (substr tp L 1) "\\") (setq L (1- L)))<br/>(setq tp (substr tp 1 L))&nbsp; ;获取文件路径<br/><br/>(setq ss (ssget "X" (list (cons 0 "INSERT") (cons 2 "标题栏属性块名"))))<br/>(setq en (ssname ss 0) el (entget en))<br/>(while (/= (dxf 0 (setq el (entget (setq en (entnext en))))) "SEQEND")<br/>&nbsp; (setq nm (dxf 2 el))<br/>&nbsp; (if (= nm "图号") (setq t1 (dxf 1 el)))<br/>&nbsp; (if (= nm "名称") (setq t2 (dxf 1 el)))<br/>)<br/>(setq tn (strcat tp t1 t2 ".dwg"))<br/>(command "SAVEAS" "" tn)<br/>(princ)<br/>)</div><div class="tpc_content">------------------------------------------------------------------------------------------------------------</div><div class="tpc_content"><font color="#f73809" size="4">在CAD2005加载运行后提示:<br/><br/>SAVEATTNAME ; 错误: no function definition: DXF</font></div><div class="tpc_content"><font color="#f73809" size="4"></font></div><div class="tpc_content"><font color="#f73809" size="4">请高手赐教</font><br/></div>

sailorcwx 发表于 2007-10-27 19:12:00

<p>你是不是偷学院派的程序。<br/>补充dxf函数定义就行了<br/>(defun dxf (code ent)(cdr (assoc code (entget ent))))</p>

hydkot99 发表于 2007-10-29 10:48:00

呵呵,网上求助,别人给贴出的
页: [1]
查看完整版本: [求助]请修改下面的程序