Auswahl und Einschränkungen von API-Problemen

Hallo 

Für ein Projekt muss ich ein SolidWorks Makro erstellen, um eine bestimmte Aufgabe zu automatisieren. Bisher habe ich es geschafft, die Teile automatisch zu erstellen und in einer Baugruppe zusammenzubauen.

Trotzdem stehe ich jetzt vor einem Problem: Ich muss die Teile mit Constraints miteinander verknüpfen. Also versuche ich, es automatisch zu machen. Hier ist der Code:

 

Dimmen swApp als Objekt

Teil als Objekt dimmen
Dim boolstatus als boolescher Wert
Dim longstatus As Long, longwarnings As Long

Sub main()

Legen Sie swApp = Application.SldWorks fest

Set Part = swApp.ActiveDoc

" Mate
Part.ClearSelection2 Wahr
boolstatus = Part.Extension.SelectByID2("Entfernt mat.-Extru.1@disque1-1@Assemblage1", "BODYFEATURE", 0, 0, 0, Falsch, 1, Nichts, 0)
boolstatus = Part.Extension.SelectByID2("Boss.-Extru.6@Pièce1-1@Assemblage1", "BODYFEATURE", 0, 0, 0, True, 1, Nichts, 0)
Dim swMate As Mate2
Set swMate = Part.AddMate5(1, 0, False, 3.90150366882658E-02, 0.001, 0.001, 0.001, 0.001, 0, 0.523598755983, 0.523598755983, False, False, 0, longstatus)
Part.ClearSelection2 Wahr
Teil.EditRebuild3

Ende Sub

 

(auf zwei Stücken.)

Das Problem ist wie folgt:

Wenn ich versuche, die Einschränkung manuell auszuführen (also durch Entfernen der zugehörigen Zeile im obigen Code), habe ich zwei Möglichkeiten, abhängig von den Markierungen, die in meinen Code eingefügt werden (die Argumente der SelectID2-Methoden)

  • -Wenn ich Markierung 0 verwende, werden die Teile nicht wirklich im Constraints-Menü ausgewählt (Screenshot 1)
  • - Wenn ich Markierung 1 verwende, habe ich nur eine Constraint-Auswahl!

Ich denke also, dass es einen Parameter meiner Methoden geben muss, der nicht der richtige ist, aber trotz langer Suche habe ich ihn nicht gefunden. Ich komme also, um Ihnen die Frage zu stellen: Wie kann diese Einschränkung automatisch erreicht werden?

 

Vielen Dank im Voraus für die Hilfe, die Sie mir geben können.

 

 

 


captures_ecran.rar

Hallo

Es ist normal, dass Sie mit den von Ihnen getroffenen Auswahlen nur eine Art von Beschränkung in Bild 2 zur Verfügung haben, da es sich um Körper handelt, die Sie auswählen ("Körpermerkmal"), sodass Sie sie nur zwischen ihnen "blockieren" können. Sie müssen also die Art der Auswahl nach Gesichtern oder anderen nach Ihren Bedürfnissen ändern, Look by ICI.

Herzliche Grüße

2 „Gefällt mir“

Hallo 

Ich komme auf Sie zurück, weil ich bereits erfolglos versucht hatte, diese Einstellungen zu ändern. Aus Gewissensgründen habe ich die Tests wiederholt (mit vielen Typen in dem Link, den Sie mir geschickt haben), aber das Problem besteht weiterhin. Abgesehen davon kann ich mich in Bezug auf die Natur der Objekte irren.

Ich befestige meine Baugruppe, damit du mir leichter helfen kannst. Ich möchte nur den Pivot-Link erstellen.

 

Vielen Dank im Voraus für Ihre Hilfe!


dossier_test_pieces.rar

Hallo

Wenn Sie eine Konzentrizitätsbeschränkung zwischen Flächen setzen möchten, müssen Sie Ihre Flächen benennen und sie dann mit der Funktion "GetEntityByName" auswählen, wie sie in den Bemerkungen auf der folgenden Seite markiert ist ("Um IFace2-, IEdge - oder IVertex-Objekte nach Namen zu erhalten, verwenden Sie IPartDoc:: GetEntityByName oder IPartDoc::IGetEntityByName.").

Das Einfügen einer Drehpunktbeschränkung zwischen Flächen durch SPS ist nicht unbedingt so einfach, es kann besser sein, Referenzachsen in Ihre Teile zu setzen und sie zu erstellen,  indem Sie bereits über die Einschränkungen nachdenken, die Sie setzen möchten, um Ihre Drehpunktfunktion durch eine Koinzidenz zwischen den 2 Achsen und eine andere zwischen 2 Ebenen zu erstellen, zum Beispiel. Diese Elemente können direkt in der Funktion "SelectById2" als "AXIS" und "PLANE" ausgewählt werden.

Auf der anderen Seite ist es wahr, dass es in dem, was ich für ein Studienprojekt halte (Student SW-Abschluss), interessanter und sauberer ist, die Auswahl der Gesichter durchzugehen!!

Herzliche Grüße

3 „Gefällt mir“

Es funktioniert.

Danke für Ihre Hilfe!