![]() |
【转帖】c#中getobjectsnappoints函数的用法 - 精华帖集合
c#中getobjectsnappoints函数的用法 - 精华帖集合
www.dimcax.com c#中getobjectsnappoints函数的用法 本程序运用于对象捕捉,运行时,拾取一个圆或圆弧、椭圆,能得到圆心(当然,不用这个方法也能得到)。圆心捕捉也可更改为中点捕捉、象限点捕捉等…… using system; using autodesk.autocad.applicationservices; using autodesk.autocad.runtime; using autodesk.autocad.databaseservices; using autodesk.autocad.editorinput; using autodesk.autocad.geometry; namespace cs对象捕捉 { /// <summary> /// testclass的说明。 /// </summary> public class testclass { [commandmethod("test")] public void test() { database db = hostapplicationservices.workingdatabase; editor ed = application.documentmanager.mdiactivedocument.editor; promptentityoptions opt = new promptentityoptions("\n请选择圆、圆弧或椭圆"); opt.setrejectmessage("\n您选择的对象不存在圆心,请重新选择!"); opt.addallowedclass(typeof(circle), true); opt.addallowedclass(typeof(arc), true); opt.addallowedclass(typeof(ellipse), true); promptentityresult res = ed.getentity(opt); if (res.status == promptstatus.ok) { using (transaction trans = db.transactionmanager.starttransaction()) { entity ent = (entity)trans.getobject(res.objectid, openmode.forread); point3d pickpt = res.pickedpoint; point3dcollection snappts = new point3dcollection(); integercollection geomids = new integercollection(); geomids.add(0); ent.getobjectsnappoints(objectsnapmodes.modecenter, 0, pickpt, pickpt, matrix3d.identity, snappts, geomids); ed.writemessage("\n您点取的点是:" + pickpt.tostring()); for (int i = 0; i < snappts.count; i++) { ed.writemessage("\n您捕捉到的点是:" + snappts[i].tostring()); } trans.commit(); } } } } } 复制代码 能不能对上边的程序一一解剖。看里面都有那些函数和名词? 向同志们学习 学问必须合乎自己的兴趣,方才可以得益。 |
所有的时间均为北京时间。 现在的时间是 10:45 AM. |