So verwenden Sie die SelectByRay-API SolidWorks

Hallo

 

 Ich versuche eine lineare Wiederholung in VBA zu machen und nach mehreren Versuchen verstehe ich die Funktion nicht. Die Funktion wird immer auf der Z-Achse ausgeführt und es ist egal, welche Werte ich eingebe.

boolstatus = Part.Extension.SelectByRay(1, 1, 1, 1, 1, 1, 1, 1, 1, Falsch, 1, 0)

Kannst du mir helfen

Vielen Dank im Voraus

 

Hallo

Ich verstehe die Frage nicht ganz, da die Funktion SelectByRay zum Auswählen und nicht zum Wiederholen gedacht ist. Weitere Informationen finden Sie unter SelectByRay .

Um eine Komponente zu wiederholen, siehe: FeatureLinearPattern4 - Beispiel

Um ein Segment auf einer Skizze zu wiederholen, siehe: CreateLinearSketchStepAndRepeat - Beispiel

1 „Gefällt mir“

Hallo

Ich kann die x-Achse für die 1. Richtung und die y-Achse für die zweite Richtung nicht auswählen.

Da meine Stücke alle unterschiedlich sind, möchte ich diese Auswahl auf diesen 2 Achsen fixieren

Vielen Dank

 

 

Zuerst müssen die Achsen Referenzachsen sein, nicht die Richtungen des SOLIDWORKS Koordinatensystems.

Dann, wie in der FeatureLinearPattern4-Hilfe erwähnt: Die "Markierung" der X-Achse muss 2 und die "Markierung" der Y-Achse 4 sein

Im folgenden Beispiel wird das Bauteil Teil1 in der Baugruppe Baugruppe1 wiederholt, die über 2 Referenzachsen Achse1 und Achse2 verfügt. Zur Anpassung an Ihre Bedürfnisse.

Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim swFeat As SldWorks.Feature
Dim swFeatMgr As SldWorks.FeatureManager
Dim swFeatData As SldWorks.LocalLinearPatternFeatureData

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
swModel.ClearSelection2 True
boolstatus = swModel.Extension.SelectByID2("Part1-1@Assem1", "COMPONENT", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2("Axis1", "AXIS", 0, 0, 0, True, 2, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2("Axis2", "AXIS", 0, 0, 0, True, 4, Nothing, 0)

Set swFeatMgr = swModel.FeatureManager
Set swFeatData = swFeatMgr.CreateDefinition(swFeatureNameID_e.swFmLocalLPattern)
swFeatData.D1ReverseDirection = False
swFeatData.D1Spacing = 0.05
swFeatData.D1TotalInstances = 3
swFeatData.D2PatternSeedOnly = False
swFeatData.D2ReverseDirection = False
swFeatData.D2Spacing = 0.05
swFeatData.D2TotalInstances = 2
swFeatData.SynchronizeFlexibleComponents = False
Set swFeat = swFeatMgr.CreateFeature(swFeatData)
End Sub

 

Ich stecke immer noch in meinem Job fest

ModelDoc.ClearSelection2 True ' Auswahl aufheben
boolstatus = Part.Extension.SelectByID2("Boss.-Extru.3", "SOLIDBODY", 0, 0, 0, True, 256, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("Achse1", "ACHSE", 0, 0, 0, Falsch, 2, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("Axe2", "AXIS", 0, 0, 0, Wahr, 4, Nichts, 0)

Dim swLinearPattern As Feature
Set swLinearPattern = Part.FeatureManager.FeatureLinearPattern5(3, 0.3, 5, 0.25, True, False, "Axe1", "Axe2", False, False, False, False, False, False, True, True, False, False, 0, 0, False, False)

Sie schickt mir nichts.

Danke für Ihre Hilfe

Hallo

Versuchen Sie es mit den folgenden Zeilen anstelle von Ihrem:

Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Boss.-Extru.3", "SOLIDBODY", 0, 0, 0, Falsch, 256, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("Achse1", "ACHSE", 0, 0, 0, Wahr, 1, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("Axe2", "AXIS", 0, 0, 0, Wahr, 2, Nichts, 0)
Dim swLinearPattern As Feature
Set swLinearPattern = Part.FeatureManager.FeatureLinearPattern5(3, 0.3, 5, 0.25, True, False, "Axe1", "Axe2", False, False, False, False, False, False, True, True, False, False, 0, 0, False, False)

Herzliche Grüße

1 „Gefällt mir“

Für ein Stück ist es:

Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim swFeat As SldWorks.Feature
Dim swFeatMgr As SldWorks.FeatureManager
Dim swFeatData As SldWorks.LinearPatternFeatureData

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swFeatMgr = swModel.FeatureManager
swModel.ClearSelection2 True
boolstatus = swModel.Extension.SelectByID2("Axis1", "AXIS", 0, 0, 0, True, 1, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2("Axis2", "AXIS", 0, 0, 0, True, 2, Nothing, 0)
boolstatus = swModel.Extension.SelectByID2("Boss.-Extru.3", "SOLIDBODY", 0, 0, 0, True, 256, Nothing, 0)

Set swFeatData = swFeatMgr.CreateDefinition(swFeatureNameID_e.swFmLPattern)
swFeatData.D1EndCondition = 0
swFeatData.D1ReverseDirection = False
swFeatData.D1Spacing = 0.3
swFeatData.D1TotalInstances = 3
swFeatData.D2EndCondition = 0
swFeatData.D2PatternSeedOnly = False
swFeatData.D2ReverseDirection = False
swFeatData.D2Spacing = 0.25
swFeatData.D2TotalInstances = 5
swFeatData.GeometryPattern = False
swFeatData.VarySketch = False
Set swFeat = swFeatMgr.CreateFeature(swFeatData)
End Sub

 

Vielen Dank für Ihre Hilfe

 

Es funktioniert perfekt

@pulco41

Ich glaube nicht, dass das die beste Antwort ist

@+

??????

Ich habe eine Benachrichtigung erhalten, dass Sie mir die beste Antwort gegeben haben. Vielen Dank.

Aber es gibt einen Fehler im Forum, der in einigen Fällen die beste Antwort ändert und sie dem Ersteller der Frage gibt. Bitte korrigieren Sie, wenn Sie können.