庞琛虹 发表于 2009-2-6 15:14:00

为什么???为什么???

<p>我加载的线行在打开CAD的第一个文档视里起作用。。。如果新建一个一个文档(文档)就不起作用了</p><p></p><p></p><p>源码附上。。。大家帮帮</p><p>//CON1LINE&nbsp; 是我自己做的线形。。。</p><p>acdbHostApplicationServices()-&gt;workingDatabase()-&gt;loadLineTypeFile("CON1LINE","acadiso.lin");<br/>&nbsp;<br/>&nbsp;AcDbLayerTable *pLayerTbl;<br/>&nbsp;&nbsp;&nbsp; acdbHostApplicationServices()-&gt;workingDatabase()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;getSymbolTable(pLayerTbl, AcDb::kForWrite);<br/>&nbsp;&nbsp;&nbsp; if (!pLayerTbl-&gt;has("ASDK_TESTLAYER")) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcDbLayerTableRecord *pLayerTblRcd<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = new AcDbLayerTableRecord;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setName("ASDK_TESTLAYER");<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setIsFrozen(0);// layer to THAWED<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setIsOff(0);&nbsp;&nbsp; // layer to ON<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setVPDFLT(0);&nbsp; // viewport default<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setIsLocked(0);// un-locked<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcCmColor color;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; color.setColorIndex(1); // set color to red<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setColor(color);<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // For linetype, we need to provide the object ID of<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // the linetype record for the linetype we want to<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // use.&nbsp; First, we need to get the object ID.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcDbLinetypeTable *pLinetypeTbl;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AcDbObjectId ltId;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acdbHostApplicationServices()-&gt;workingDatabase()<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&gt;getSymbolTable(pLinetypeTbl, AcDb::kForRead);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((pLinetypeTbl-&gt;getAt("CON1LINE", ltId))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; != Acad::eOk)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("\nUnable to find DASHED"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " linetype. Using CONTINUOUS");<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // CONTINUOUS is in every drawing, so use it.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLinetypeTbl-&gt;getAt("CONTINUOUS", ltId);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLinetypeTbl-&gt;close();<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;setLinetypeObjectId(ltId);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTbl-&gt;add(pLayerTblRcd);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTblRcd-&gt;close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTbl-&gt;close();<br/>&nbsp;&nbsp;&nbsp; } else {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pLayerTbl-&gt;close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acutPrintf("\nlayer already exists");</p>

zhang007 发表于 2009-2-9 10:05:00

<p>起码基本功不扎实,除了“CONTINUOUS”,其他线型是不会自动加载到每一个新建的文档中的。</p><p>将你上面的程序写到一个过程中,再在On_kLoadDwgMsg中调用。。。</p>

easypower 发表于 2009-2-10 12:21:00

acdbHostApplicationServices()-&gt;workingDatabase()当前工作的文档数据库

easypower 发表于 2009-2-10 12:21:00

acdbHostApplicationServices()-&gt;workingDatabase()指当前工作的文档数据库

庞琛虹 发表于 2009-2-10 20:45:00

这几天有点忙。。。感谢明经的兄弟了。。。我试试先。。。我原来是自学VC的。。。学ARX还没都久。。。。我资料也不多。。。望大家都都回答我这个菜鸟的问题。。。。哈哈。。。感谢了。。。
页: [1]
查看完整版本: 为什么???为什么???