![]() |
【转帖】如何用c#实现位图文件插入? - 精华帖集合
如何用c#实现位图文件插入? - 精华帖集合
www.dimcax.com 如何用c#实现位图文件插入? 如何用c#实现位图文件插入? 请指教 private void insertimage(string fname,string bname,point3d pt,double rot,double xx,double yy) { autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument.lockdocument(); autodesk.autocad.applicationservices.document doc = autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument; using (database db = doc.database) { using (transaction tm = db.transactionmanager.starttransaction()) { objectid imagedictid = rasterimagedef.getimagedictionary(db); if (imagedictid.oldid == 0) imagedictid = rasterimagedef.createimagedictionary(db); rasterimagedef rasterimagedef = new rasterimagedef(); rasterimagedef.sourcefilename = fname; rasterimagedef.load(); rasterimagedef.imagemodified=true; rasterimagedef.resolutionunits = unit.millimeter; objectid imgdictid = rasterimagedef.getimagedictionary(db); dbdictionary imagedict = (dbdictionary)tm.getobject(imagedictid, openmode.forwrite); objectid rasterimagedefid; if (!imagedict.contains(bname)) rasterimagedefid = imagedict.setat(bname, rasterimagedef); tm.addnewlycreateddbobject(rasterimagedef,true); rasterimage rasterimage = new rasterimage(); rasterimage.imagedefid = rasterimagedef.objectid; rasterimage.orientation = new coordinatesystem3d(pt,new vector3d(xx,0,0),new vector3d(0,yy,0)); rasterimage.rotation = (rot * math.pi) / 180; blocktable bt = (blocktable)tm.getobject(doc.database.blocktableid, openmode.forread,false); blocktablerecord btr = (blocktablerecord)tm.getobject(bt[blocktablerecord.modelspace], openmode.forwrite,false); btr.appendentity(rasterimage); tm.addnewlycreateddbobject(rasterimage, true); tm.commit(); tm.dispose(); } } } 复制代码 ........ 好 最后代码 private void insertimage(string fname,string bname,point3d pt,double rot,double xx,double yy) { autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument.lockdocument(); autodesk.autocad.applicationservices.document doc = autodesk.autocad.applicationservices.application.documentmanager.mdiactivedocument; using (database db = doc.database) { using (transaction tm = db.transactionmanager.starttransaction()) { try { objectid imagedictid = rasterimagedef.getimagedictionary(db); if (imagedictid.oldid == 0) imagedictid = rasterimagedef.createimagedictionary(db); rasterimagedef rasterimagedef = new rasterimagedef(); dbdictionary imagedict = (dbdictionary)tm.getobject(imagedictid, openmode.forwrite); objectid rasterimagedefid; if (imagedict.contains(bname)) { rasterimagedefid = imagedict.getat(bname); rasterimagedef = (rasterimagedef)tm.getobject(rasterimagedefid, openmode.forwrite); } else { rasterimagedefid = imagedict.setat(bname, rasterimagedef); rasterimagedef.sourcefilename = fname; rasterimagedef.load(); rasterimagedef.imagemodified = true; rasterimagedef.resolutionunits = unit.millimeter; tm.addnewlycreateddbobject(rasterimagedef, true); } rasterimage rasterimage = new rasterimage(); rasterimage.imagedefid = rasterimagedef.objectid; rasterimage.orientation = new coordinatesystem3d(pt, new vector3d(xx, 0, 0), new vector3d(0, yy, 0)); rasterimage.rotation = (rot * pi) / 180; blocktable bt = (blocktable)tm.getobject(doc.database.blocktableid, openmode.forread, false); blocktablerecord btr = (blocktablerecord)tm.getobject(bt[blocktablerecord.modelspace], openmode.forwrite, false); btr.appendentity(rasterimage); tm.addnewlycreateddbobject(rasterimage, true); tm.commit(); tm.dispose(); } catch (system.exception e) { system.windows.forms.messagebox.show(e.tostring()); } } } } 复制代码 调用照片使如何实现批准旋转角度比例尺等 private function attachraster() dim insertpoint(0 to 2) as double dim scalefactor as double dim rotangle as double dim imagefilename as string dim rasterobj as acadrasterimage insertpoint(0) = cdbl(txtx.text) insertpoint(1) = cdbl(txty.text) insertpoint(2) = cdbl(txtz.text) imagefilename = txtpath.text scalefactor = cdbl(txtscale.text) rotangle = cdbl(txtangle.text) on error goto errorhandle set rasterobj = thisdrawing.modelspace.addraster(imagefilename, insertpoint, scalefactor, rotangle) zoomextents exit function errorhandle: msgbox err.description end function 复制代码 代码是vba中的代码我想修改成c#的方式,但是 set rasterobj = thisdrawing.modelspace.addraster(imagefilename, insertpoint, scalefactor, rotangle)对像和方法不知道在arx中怎么改.请高手帮助. 调用照片使如何实现批准旋转角度比例尺等 private function attachraster() dim insertpoint(0 to 2) as double dim scalefactor as double dim rotangle as double dim imagefilename as string dim rasterobj as acadrasterimage insertpoint(0) = cdbl(txtx.text) insertpoint(1) = cdbl(txty.text) insertpoint(2) = cdbl(txtz.text) imagefilename = txtpath.text scalefactor = cdbl(txtscale.text) rotangle = cdbl(txtangle.text) on error goto errorhandle set rasterobj = thisdrawing.modelspace.addraster(imagefilename, insertpoint, scalefactor, rotangle) zoomextents exit function errorhandle: msgbox err.description end function 复制代码 代码是vba中的代码我想修改成c#的方式,但是 set rasterobj = thisdrawing.modelspace.addraster(imagefilename, insertpoint, scalefactor, rotangle)对像和方法不知道在arx中怎么改.请高手帮助. 很不错 帮你顶! 书山有路勤为径,学海无涯苦作舟! 好样的 请问如何实现位图添加到图纸后不依赖路径呢??您这种方式的插入输入插入不是嵌入,如果图纸复制到别的地方(别的pc),相应的位图也要到指定的地方,如何实现嵌入呢???, 很不错,支持你 |
所有的时间均为北京时间。 现在的时间是 07:33 PM. |