![]() |
【转帖】edge list with getpolylines7 9in a view0
edge list with getpolylines7 (in a view)
hello, i'm trying to use the "new" ability of getpolylines7 to get the related edges with a polylinelist. it seems to work fine with getpolylines7. the edges are in the same order than the polylines (erm... may be ?). but, when a part is used twice in an assembly, i get the "good" edge in the part, but always from the same instance of the part... then this is the bad edge in the view in other words, this is the good once should i do anything before call getpolylines7, to get the correct instance of edges ? it is a bug ? to select the edge, i use the selectentity method of the view i spend time to do a short example (attached file) : the assembly is just a repetition of a rectangular part. the image shows that the edges are selected on only one pieces. the test code : dim swapp as sldworks.sldworks dim mdldoc as sldworks.modeldoc2 dim drwdoc as sldworks.drawingdoc dim cview as sldworks.view dim edgesbypl as variant dim polylines as variant dim cedge as edge dim res as boolean dim edgesbypla(100) as object dim i as integer sub main() set swapp = application.sldworks set mdldoc = swapp.activedoc if not mdldoc is nothing then if mdldoc.gettype = swdocumenttypes_e.swdocdrawing then set drwdoc = mdldoc set cview = drwdoc.activedrawingview if cview is nothing then msgbox "a view must be selected" else edgesbypl = cview.getpolylines7(swcrosshatchfilter_e.swcrosshatchexclude, polylines) debug.print "### start" for i = 0 to ubound(edgesbypl) res = cview.selectentity(edgesbypl(i), true) debug.print "item" & str(i) & iif(res, " is", " can't be ?") & " selected" next debug.print "### end" end if end if end if end sub all files needed to do the test are in the attached file. thanks. click for full image |
所有的时间均为北京时间。 现在的时间是 05:38 AM. |