|
trying to get invalid surfaces in mates
i am going through the feature tree of assemblies and picking out a certain component to check the mates because one of the mating surfaces has changed and is now invalid.
in the tree i find the part then the mates folder then the mate. i then get the feature, the mate and the mate entity. i am having trouble figuring out how to find if the surface for the mate is valid or not. i found a mateentity2::referencetype2 in the api help but haven't been able to get it to work or it may not be what i need.
any help to find if a part surface for a mate is invalid would be appreciated.
thanks
dan miel
sw 2008 sp4
i've also looked into this with no luck. maybe i should put an sr in to see if they have an answer.
hi matt
i may have found a clue in the edit mate example (vb). i found these lines of code that error when there is an invalid surface. the debug.assert statement seems to be checking for something. i haven't had time to check it out today, i'm hoping to look at it tonight.
thanks for the reply.
dan miel
set swent = swmateent.reference: debug.assert not swent is nothing
swseldata.mark = nmark
bret = swent.select4(true, swseldata): debug.assert bret
selectmateentity = bret
answer the following code will tell you if there is an invalid referece. this is the "edit mate example" boiled down.
dan miel
' a mate must be selected
option explicit
dim swapp as sldworks.sldworks
dim part as sldworks.modeldoc2
dim selmgr as sldworks.selectionmgr
dim mate as sldworks.mate2
dim feat1 as sldworks.feature
dim mateent as sldworks.mateentity2
dim c as integer
dim surf as sldworks.entity
sub main()
set swapp = application.sldworks
set part = swapp.activedoc
set selmgr = part.selectionmanager
set feat1 = selmgr.getselectedobject5(1)
set mate = feat1.getspecificfeature2
debug.print "- new mate -"
debug.print "mate name " & mate.name
for c = 0 to mate.getmateentitycount - 1
set mateent = mate.mateentity(c)
debug.print ""
debug.print " mate type " & mate.type 'from swmatereferencetype_e"
debug.print " mateent ref type " & mateent.referencetype 'from swmatereferencetype_e
'get mated surface object here
set surf = mateent.reference
if surf is nothing then
debug.print " invalid "
else
debug.print " surf " & surf.gettype ' from swselecttype_e
end if
next c
debug.print ""
end sub
edited: 09/29/2008 at 11:42 pm by dan miel
quick |
|