![]() |
【转帖】一个问题请教各位
一个问题请教各位
www.dimcax.com 一个问题请教各位 [commandmethod("cir")] //调用cad命令,画一个图形,然后获得这个图形,对其填充 public void cir() { document doc = app.documentmanager.mdiactivedocument; editor ed = app.documentmanager.mdiactivedocument.editor; database db=doc.database; objectid id; doc.sendstringtoexecute("_circle\n", true, false, true); //我想在这句的circle命令调用结束后,在下一行,用tools.entlast()方法获得这个实体(圆), 对这个圆进行填充,结果调试的时候, 程序没有执行这个circle命令就执行了下一行, 出现einvalidobjectid错误,(我估计是因为circle命令没有执行,新图形里面没有实体对象,entlast无法获得对象的缘故) 我想请教:怎么让程序先执行这个命令,再执行下一行? polyline pl= tools.getentity(tools.entlast(db)) as polyline; objectid plid=pl.objectid; objectidcollection col=new objectidcollection(); col.add(plid); hatch hat=new hatch(); hat.sethatchpattern(hatchpatterntype.predefined,"solid");//预定义 hat.appendloop(0,col);//另一个问题:填充的时候,appendloop()方法的第一个参数int looptype是什么意思? tools.addentities(hat); } 请使用tools.runcommand函数来代替sendstringtoexecute。 sendstringtoexecute会引起命令的不同步运行。 c#最适合开发autocad,因为它拥有vb容易的特点,却具有vc++的强大功能。 可以通过捕捉事件来获取。 模具相关绿色软件 皆唯网 原帖由 一个样 于 可以通过捕捉事件来获取。 什么意思?能不能说的再详细一点? 你是说用捕捉事件来获取新获得的实体吗? 总能把手机放到我自己找不到的地方... eventswatcher这个示例,讲述了cad的所有事件. 比如:application.documentmanager.mdiactivedocument.database.objectappended事件你还是需要了解cad所有事件的先后顺序. 模具相关绿色软件 皆唯网 原帖由 一个样 于 eventswatcher这个示例,讲述了cad的所有事件. 比如:application.documentmanager.mdiactivedocument.database.objectappended事件你还是需要了解cad所有事件的先后顺序. 非常感谢!我找到了这个例子,我先看看这个例子吧 总能把手机放到我自己找不到的地方... |
| 所有的时间均为北京时间。 现在的时间是 01:20 AM. |