![]() |
【转帖】使用.net创建一个autocad线型 - 精华帖集合
使用.net创建一个autocad线型 - 精华帖集合
www.dimcax.com 使用.net创建一个autocad线型 , 原文摘自kean的博客。 using autodesk.autocad.runtime; using autodesk.autocad.applicationservices; using autodesk.autocad.databaseservices; using autodesk.autocad.geometry; using autodesk.autocad.editorinput; namespace linetype { public class commands { [commandmethod("cl")] public void createlinetype() { document doc = application.documentmanager.mdiactivedocument; database db = doc.database; editor ed = doc.editor; transaction tr = db.transactionmanager.starttransaction(); using (tr) { // 获取线型表 linetypetable lt = (linetypetable)tr.getobject( db.linetypetableid, openmode.forwrite ); // 创建新的线型表记录... linetypetablerecord ltr = new linetypetablerecord(); // ... 设置线型表记录的属性 ltr.asciidescription = "t e s t -"; ltr.patternlength = 0.75; ltr.numdashes = 2; ltr.setdashlengthat(0, 0.5); ltr.setdashlengthat(1,-0.25); ltr.name = "testlinteype"; // 把新的线型添加到线型表 objectid ltid = lt.add(ltr); tr.addnewlycreateddbobject(ltr,true); // 使用这个新线型创建一条测试直线 blocktable bt = (blocktable)tr.getobject( db.blocktableid, openmode.forread ); blocktablerecord btr = (blocktablerecord)tr.getobject( bt[blocktablerecord.modelspace], openmode.forwrite ); line ln = new line( new point3d(0, 0, 0), new point3d(10, 10, 0) ); ln.setdatabasedefaults(db); ln.linetypeid = ltid; btr.appendentity(ln); tr.addnewlycreateddbobject(ln, true); tr.commit(); } } } } 复制代码 运行cl命令,然后zoom extents,就会看到一条由我们自定义线型组成的直线 我记得cad有个文件是专门记录线形的,这种方法能不能把自定义的线形写到那个文件里? 书山有路勤为径,学海无涯苦作舟! 学习了!!!!!!!!!!!! 我按照上面的创建了点划线线型和直线,到autocad里,查看创建的那条直线的线型已被设置为新创建的线型,但是该直线却显示的是实线?如果手动给这条直线设置已有的线性,然后再设置为新创建的线性,直线就能按照新创建的线型显示。大家有没碰到过啊? |
所有的时间均为北京时间。 现在的时间是 10:59 PM. |