查看单个帖子
旧 2009-04-21, 10:00 AM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 如何实现视图缩放?

如何实现视图缩放?
www.dimcax.com
如何实现视图缩放?
cad命令zoom o可以实现视图按照选定的对象进行缩放,用c#代码可以实现相同的功能吗?
请高手指点,给点提示也好!
acadapplication acadapp = (acadapplication)autodesk.autocad.applicationservices.application.acadapplication; acadapp.zoomwindow(ent.geomextents.minpoint.toarray(), ent.geomextents.maxpoint.toarray());
非常感谢。若选择的对象很多,在求取minpoint.、maxpoint时,是不是只有逐个判断?有没有现成的方法?
也可以直接利用objectarx的函数进行控制
下面是我写的一个对话框类的一个成员函数。希望能对你有所帮助 private bool opentemplatedrawing(string filename, database dbinsert) { bool result = true; using (database db = hostapplicationservices.workingdatabase) { try { dbinsert.readdwgfile(filename, fileshare.readwrite , true, ""); } catch (system.exception ereaddwgfile) { messagebox.show("打开并读取图框样板文件时发生错误,请检查文件的有效性\n\n" + ereaddwgfile.message); } try { this.hide(); objectid idblocktablerecord = db.insert("templatedrawing", dbinsert, true); using (transaction transforeground = db.transactionmanager.starttransaction()) { blocktable bt = (blocktable)transforeground.getobject(db.blocktableid, openmode.forread); blocktablerecord btr = (blocktablerecord)transforeground.getobject(bt[blocktablerecord.modelspace], openmode.forwrite); blockreference br = new blockreference(point3d.origin, idblocktablerecord); btr.appendentity(br); transforeground.addnewlycreateddbobject(br, true); autodesk.autocad.applicationservices.document doc = autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument; editor editor = doc.editor; viewtablerecord viewtablerecord = editor.getcurrentview(); extents3d extents = br.geometricextents; viewtablerecord.centerpoint = new point2d((extents.maxpoint.x - extents.minpoint.x) / 2 + extents.minpoint.x, (extents.maxpoint.y - extents.minpoint.y) / 2 + extents.minpoint.y); double brwidth = extents.maxpoint.x - extents.minpoint.x; double brheight = extents.maxpoint.y - extents.minpoint.y; viewtablerecord.height = extents.maxpoint.y - extents.minpoint.y; viewtablerecord.width = extents.maxpoint.x - extents.minpoint.x; editor.setcurrentview(viewtablerecord); autodesk.autocad.applicationservices.application.updatescreen(); ///有必要的话,可以打碎该块 br.explodetoownerspace(); br.erase(true); transforeground.commit(); } } catch (system.exception einsertblock) { messagebox.show("插入图框样板文件并试图缩放时,发生了不应该发生的错误。\n\n请将该问题报告给编程者。\n\n如果图框样板文件被正常显示,可以试着继续进行下面的操作。\n\n否则,请检查样板文件的有效性\n\n" + einsertblock.message); return false; } } return result; } [
感谢三楼、五楼的解答!三楼的代码应该是vb的,对应的c#代码应该是啥样的呢?
原帖由 azbd 于 感谢三楼、五楼的解答!三楼的代码应该是vb的,对应的c#代码应该是啥样的呢?
就是c#的代码哈
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)