![]() |
【转帖】drawingview position
drawingview position
i create a new drawing with a template file, i open the new drawing file and i verified the section view g-g position before update drawing. after update drawing my view is outside on my drawing but if i verified the section view g-g position again the new position equal the old position why ? marc boolstat = swapp.replacereferenceddocument(vdest, vsource_part, vdest_part) set part = swapp.opendoc6(vdest, 3, 0, "", longstatus, longwarnings) boolstatus = part.extension.selectbyid2("section view g-g", "drawingview", 0, 0, 0, false, 0, nothing, 0) set swselmgr = part.selectionmanager set swview = swselmgr.getselectedobject6(1, -1) old_vpos1(0) = swview.position debug.print old_vpos1(0)(0) debug.print old_vpos1(0)(1) debug.print old_vpos1(0)(2) part.clearselection2 true part.graphicsredraw2 boolstatus = part.rebuild(swcurrentsheetdisp) boolstatus = part.extension.selectbyid2("section view g-g", "drawingview", 0, 0, 0, false, 0, nothing, 0) set swselmgr = part.selectionmanager set swview = swselmgr.getselectedobject6(1, -1) new_vpos1(0) = swview.position debug.print new_vpos1(0)(0) debug.print new_vpos1(0)(1) debug.print new_vpos1(0)(2) unless the rebuild moves your view position this code does nothing to move the view position so it would have no reason to move. open test1.slddrw in my test7.zip run this macro and look de g-g section before rebuild command boolstatus = part.extension.selectbyid2("section view g-g", "drawingview", 0, 0, 0, false, 0, nothing, 0) set swselmgr = part.selectionmanager set swview = swselmgr.getselectedobject6(1, -1) old_vpos1(0) = swview.position debug.print old_vpos1(0)(0) debug.print old_vpos1(0)(1) debug.print old_vpos1(0)(2) part.clearselection2 true part.graphicsredraw2 boolstatus = part.rebuild(swcurrentsheetdisp) 'look g-g section boolstatus = part.extension.selectbyid2("section view g-g", "drawingview", 0, 0, 0, false, 0, nothing, 0) set swselmgr = part.selectionmanager set swview = swselmgr.getselectedobject6(1, -1) new_vpos1(0) = swview.position debug.print new_vpos1(0)(0) debug.print new_vpos1(0)(1) debug.print new_vpos1(0)(2) i have ran your code and the rebuild changes nothing the view stays where it is. like i say the code doesn't alter the view position anywhere so that is why it reports the same. are you saying after rebuild the view position moves visually for you? also, your code would not work as is you would need to modify it like so: option explicit dim swapp as sldworks.sldworks dim part as modeldoc2 dim swselmgr as selectionmgr dim swview as view dim old_vpos1 as variant dim new_vpos1 as variant dim boolstatus as boolean sub main() set swapp = application.sldworks set part = swapp.activedoc set swselmgr = part.selectionmanager boolstatus = part.extension.selectbyid2("section view g-g", "drawingview", 0, 0, 0, false, 0, nothing, 0) set swview = swselmgr.getselectedobject6(1, -1) old_vpos1 = swview.position debug.print old_vpos1(0) debug.print old_vpos1(1) part.clearselection2 true part.graphicsredraw2 part.rebuild (swcurrentsheetdisp) 'look g-g section boolstatus = part.extension.selectbyid2("section view g-g", "drawingview", 0, 0, 0, false, 0, nothing, 0) 'set swselmgr = part.selectionmanager set swview = swselmgr.getselectedobject6(1, -1) new_vpos1 = swview.position debug.print new_vpos1(0) debug.print new_vpos1(1) end sub edited: 09/26/2008 at 04:44 am by luke malpass quick |
所有的时间均为北京时间。 现在的时间是 01:21 AM. |