原创VLISP中创建文字样式和图层源程序
本帖最后由 作者 于 2006-11-12 22:06:38 编辑 <br /><br /> <P><FONT color=#ff0000>(vl-load-com)</FONT></P><P><FONT color=#ff0000>(setq p2c::acadobj (vlax-get-acad-object)<BR> p2c::acaddocobj (vla-get-activedocument p2c::acadobj)<BR> p2c::mspaceobj (vla-get-modelspace p2c::acaddocobj)<BR> p2c::pspaceobj (vla-get-paperspace p2c::acaddocobj)<BR> p2c::docobj (vla-get-documents p2c::acadobj)<BR> p2c::blocksobj (vla-get-blocks p2c::acaddocobj)<BR> p2c::layersobj (vla-get-layers p2c::acaddocobj)<BR> p2c::textstyles (vla-get-Textstyles p2c::acaddocobj)<BR> p2c::linetypes (vla-get-linetypes p2c::acaddocobj)<BR> p2c::menugroupsel (vla-get-menugroups p2c::acadobj)<BR> p2c::menugroup (vla-item p2c::menugroupsel 0)<BR> p2c::menuobj (vla-get-menus p2c::menugroup)<BR> p2c::toolbars (vla-get-toolbars p2c::menugroup)<BR>)</FONT></P>
<P>;;;============<BR>;;;= 设置图层 =<BR>;;;============</P>
<P>.(defun addtranslayer (/ styleobj1 layerobj1<BR> layerobj2 layerobj3 layerobj4<BR> layerobj5 layerobj6 layerobj7<BR> layerobj8 layerobj9 layerobj10<BR> )<BR> (vl-catch-all-apply<BR> 'vla-load<BR> (list p2c::linetypes<BR> "center"<BR> "acadiso.lin"<BR> )<BR> )<BR> (vl-catch-all-apply<BR> 'vla-load<BR> (list p2c::linetypes<BR> "DASHED"<BR> "acadiso.lin"<BR> )<BR> )<BR> (setq styleobj1 (vla-add p2c::textstyles "GB"))<BR> (vla-put-fontfile styleobj1 "gbenor.shx")<BR> (vla-put-bigfontfile styleobj1 "gbcbig.shx")<BR> (setq layerobj1 (vla-add p2c::layersobj "KERFLEFT")<BR> layerobj2 (vla-add p2c::layersobj "KERFRIGHT")<BR> layerobj3 (vla-add p2c::layersobj "KERFOFF")<BR> layerobj4 (vla-add p2c::layersobj "MARKING")<BR> layerobj5 (vla-add p2c::layersobj "PLATE")<BR> layerobj6 (vla-add p2c::layersobj "ZSQ")<BR> layerobj7 (vla-add p2c::layersobj "CENTER")<BR> layerobj8 (vla-add p2c::layersobj "DASHED")<BR>;;;<BR> layerobj9 (vla-add p2c::layersobj "INSIDE")<BR> layerobj10 (vla-add p2c::layersobj "OUTSIDE")<BR> )<BR>;;;KERFLEFT<BR> (vla-put-color layerobj1 acred)<BR> (vla-put-lineweight layerobj1 aclnwt025)<BR> (vla-put-linetype layerobj1 "continuous")<BR>;;;KERFRIGHT<BR> (vla-put-color layerobj2 acred)<BR> (vla-put-lineweight layerobj2 aclnwt025)<BR> (vla-put-linetype layerobj2 "continuous")<BR>;;;KERFNO<BR> (vla-put-color layerobj3 acred)<BR> (vla-put-lineweight layerobj2 aclnwt025)<BR> (vla-put-linetype layerobj3 "continuous")<BR>;;;MARKING<BR> (vla-put-color layerobj4 accyan)<BR> (vla-put-lineweight layerobj4 aclnwt025)<BR> (vla-put-linetype layerobj4 "continuous")<BR>;;;PLATE<BR> (vla-put-color layerobj5 acblue)<BR> (vla-put-lineweight layerobj2 aclnwt030)<BR> (vla-put-linetype layerobj5 "continuous")<BR>;;;ZSQ<BR> (vla-put-color layerobj6 acwhite)<BR> (vla-put-linetype layerobj6 "continuous")<BR>;;;CENTER<BR> (vla-put-color layerobj7 acred)<BR> (vla-put-linetype layerobj7 "CENTER")<BR>;;;DASHED<BR> (vla-put-color layerobj8 acgreen)<BR> (vla-put-linetype layerobj8 "DASHED")<BR>;;;INSIDE<BR> (vla-put-color layerobj9 acgreen)<BR> (vla-put-lineweight layerobj9 aclnwt025)<BR> (vla-put-linetype layerobj9 "continuous")<BR>;;;OUTSIDE<BR> (vla-put-color layerobj10 acred)<BR> (vla-put-lineweight layerobj10 aclnwt025)<BR> (vla-put-linetype layerobj10 "continuous")<BR>;;;END<BR> (princ)<BR>)</P>
<P>红色为后加代码。不加程序没法运行。</P> 顶回来,再错过。可就没有了。我也不再顶了。再无人问迳就删除源代码。呵…… 看看 有这么的热心的大哥,真的太幸运了! <P> 不过运行不了!</P>
<P>出现下面的提示:</P>
<P>error: bad argument type: VLA-OBJECT nil</P>
<P>我看不明白:</P>
<P>程序中的p2c::textstyles,p2c::linetypes,p2c::layersobj等都没有定义,</P>
<P>程序能正常运行吗?还望指点!!!</P> <P>程序前加这些:</P>
<P>(vl-load-com)</P>
<P>(setq p2c::acadobj (vlax-get-acad-object)<BR> p2c::acaddocobj (vla-get-activedocument p2c::acadobj)<BR> p2c::mspaceobj (vla-get-modelspace p2c::acaddocobj)<BR> p2c::pspaceobj (vla-get-paperspace p2c::acaddocobj)<BR> p2c::docobj (vla-get-documents p2c::acadobj)<BR> p2c::blocksobj (vla-get-blocks p2c::acaddocobj)<BR> p2c::layersobj (vla-get-layers p2c::acaddocobj)<BR> p2c::textstyles (vla-get-Textstyles p2c::acaddocobj)<BR> p2c::linetypes (vla-get-linetypes p2c::acaddocobj)<BR> p2c::menugroupsel (vla-get-menugroups p2c::acadobj)<BR> p2c::menugroup (vla-item p2c::menugroupsel 0)<BR> p2c::menuobj (vla-get-menus p2c::menugroup)<BR> p2c::toolbars (vla-get-toolbars p2c::menugroup)<BR>)</P>
<P>就好了.</P> 多谢! 这是我编的程序中的一部分。现在这已是我所有程序都用的成熟代码。 <p>多谢版主分享</p> <p>谢谢,获益匪浅呢</p>