Hallo
Ich verwende diese SolidWorks VBA-Routine, um die in einer Einschränkung enthaltenen Entitäten abzurufen, und sie funktioniert normalerweise ziemlich gut.
Das Problem, auf das ich stoße, betrifft den speziellen Fall, in dem die Abhängigkeit zwischen einem Zylinder und einem Skizzenpunkt vom Typ Konzentrizität ist.
Durch Ersetzen von swMateEnt.ReferenceType durch swMateEnt.ReferenceType2 kann ich feststellen, dass SwMateEnt vom Typ swSelEXTSKETCHPOINTS ist, jedoch kann ich nicht auf die Auswahl des Objekts zugreifen. Haben Sie eine Idee?
Vielen Dank im Voraus.
Funktion SelectMateEntity(swApp As SldWorks.SldWorks, swModel As SldWorks.ModelDoc2, swMateEnt As SldWorks.MateEntity2, nMark As Long) As Boolean
Dim swEnt As SldWorks.Entity
Dim swSelMgr As SldWorks.SelectionMgr
Dim swSelData As SldWorks.SelectData
Dim bRet As Boolean
Select Case swMateEnt.ReferenceType
Case swMateEntity2ReferenceType_Point, _
swMateEntity2ReferenceType_Line, _
swMateEntity2ReferenceType_Circle, _
swMateEntity2ReferenceType_Plane, _
swMateEntity2ReferenceType_Cylinder, _
swMateEntity2ReferenceType_Sphere, _
swMateEntity2ReferenceType_Cone, _
swMateEntity2ReferenceType_SweptSurface
Set swSelMgr = swModel.SelectionManager
Set swSelData = swSelMgr.CreateSelectData
Set swEnt = swMateEnt.Reference
swSelData.Mark = nMark
bRet = swEnt.Select4(True, swSelData)
SelectMateEntity = bRet
Exit Function
Case swMateEntity2ReferenceType_Set, _
swMateEntity2ReferenceType_MultipleSurface, _
swMateEntity2ReferenceType_GenSurface, _
swMateEntity2ReferenceType_Ellipse, _
swMateEntity2ReferenceType_GeneralCurve, _
swMateEntity2ReferenceType_UNKNOWN
Case Else
End Select
SelectMateEntity = False
Ende-Funktion