Baugruppen-Abhängigkeiten

Hallo

In vba mache ich ein Programm, das in einer Montage Teile (einer Flasche) öffnet und zusammenbaut (komplette Flasche).

Mein Problem besteht darin, die Teile in ihnen einzuschränken. 

Da es der Benutzer ist, der diese Teile auswählt, ändert sich die Mischung zwischen den offenen Stücken, z.B.: flacher Boden, abgerundeter Boden, abgerundete quadratische Kante, gerade quadratische Kante usw.

Was ich damit begann, war, die Pläne der einzelnen Räume einzuschränken.

 

Makro-Registrierungscode

Legen Sie swApp = Application.SldWorks fest

Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("Kranz face@Bague Ebene 26-1@Assemblage Runde Kante", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

boolstatus = Part.Extension.SelectByID2("Plan von face@EP-BR-ST-1@Assemblage Runde Kante", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

myMate als Objekt dimmen

Set myMate = Part.AddMate3(0, 0, False, 0, 0, 0, 0.001, 0.001, 0, 0.523598755983, 0.523598775983, False, longstatus)

Part.ClearSelection2 Wahr

Teil.EditRebuild3

 

boolstatus = Part.Extension.SelectByID2("Rechter Plan", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

boolstatus = Part.DeSelectByID("Rechter Plan", "PLANE", 0, 0, 0)

boolstatus = Part.Extension.SelectByID2("Kranz droite@Bague Ebene 26-1@Assemblage Runde Kante", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

boolstatus = Part.Extension.SelectByID2("Plan von droite@EP-BR-ST-1@Assemblage Runde Kante", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

Set myMate = Part.AddMate3(0, 0, False, 0, 0, 0, 0.001, 0.001, 0, 0.523598755983, 0.523598775983, False, longstatus)

Part.ClearSelection2 Wahr

Teil.EditRebuild3

 

boolstatus = Part.Extension.SelectByID2("Plan_inf@Bague Krone 26-1@Assemblage Abgerundete Kante", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

boolstatus = Part.Extension.SelectByID2("Plan_sup@EP-BR-ST-1@Assemblage Abgerundete Kante", "PLANE", 0, 0, 0, Wahr, 1, Nichts, 0)

Set myMate = Part.AddMate3(0, 1, False, 0.071, 0, 0.001, 0.001, 0, 0.523598755983, 0.523598755983, False, longstatus)

Part.ClearSelection2 Wahr

Teil.EditRebuild3

 

Wir können sehen, dass es zwischen den beiden Teilen von " 0,071" m einen Raum gibt, und ich weiß nicht, wie ich ihn definieren soll. (Es ändert sich für jeden Satz von Teilen, also zu restriktiv, zumal die Teilebibliothek im Laufe der Zeit wächst)

In meinem Makro setze ich absichtlich Y-förmige Zwischenräume, um die Teile zu trennen, wenn ich sie importiere (vgl. Bild), damit ich den Raum zwischen dem Ursprung der Baugruppe und dem Schwerpunkt meines Teils kenne. (Ist es der Schwerpunkt, der beim Import von Teilen berücksichtigt wird?)

Ist es möglich, die Höhe des Raumes wiederherzustellen? (VBA-Variablen)

 

Oder auch andere Ideen sind willkommen!

 

Vielen Dank 

JB


assemblage_bouteille.png

Hallo

 

Um einen Wert einer Dimension zu kennen, müsste sie in allen Teilen denselben Namen haben, zum Beispiel:

D1@Extrusion1

 

In diesem Fall ist es nicht sehr kompliziert, siehe diesen Link:

http://help.solidworks.com/2012/English/api/sldworksapi/Get_Display_Dimension_Properties_Example_VB.htm

 

Oder um alle Abmessungen eines Teils durchzugehen:

http://help.solidworks.com/2012/English/api/sldworksapi/Iterate_Through_Dimensions_in_Model_Example_VB.htm

1 „Gefällt mir“

Schauen Sie in der API-Hilfe nach

GetBox-Methode (IComponent2) 

oder 

GetPartBox-Methode (IPartDoc)

 

Sie geben ein Array von Koordinaten zurück, das dem umschließenden Würfel entspricht

Für die Höhe folgt z = > Werte(5) - Werte(2)

 

 

8 „Gefällt mir“

Hallo

 

Auf der anderen Seite, wenn ich mich nicht irre, sind es die Ursprünge, die beim Importieren standardmäßig überlagert werden. Nicht der Schwerpunkt.

Hallo @ Jean-bapt

 

Ich stelle mir die Frage?

Sie fragen in einer Mischung an, um die Wahl der Konfigurationen zu haben #

 

Wenn Sie die Assembly mit dem Parameter X erstellen

  • Sie haben 4 Sektionen
  1. Geldmittel
  2. Die Gremien
  3. Die Pässe
  4. Engpässe
  • In Abschnitt 1 haben Sie # Typen

 a_ flacher Boden

 b_ abgerundeter Boden

 c_ abgerundete quadratische Kante

 d_ gerade, quadratische Kante usw.

  •  In Abschnitt 2 haben Sie # Typen
  • a_b_c_d
  •  In Abschnitt 3 haben Sie # Typen
  • a_b_c_d
  •  In Abschnitt 4 haben Sie # Typen
  • a_b_c_d

Warum nicht mit der Baugruppe mit fragmentierten Teilen spielen?

Eine gemeinsame Achse für diesen Beispielfall (Constraint Ref)

Sie fügen alles zusammen

Sie sorgen für Furore, indem Sie in jedem Abschnitt posieren (gepunktetes Rechteck)

die Typen, die diesen Abschnitten entsprechen

Sie verstecken die unerwünschten Typen

Sie stellen Ihre Baugruppe zusammen, um sie zu visualisieren

wenn es für Sie in Ordnung ist, Anmeldung 

Sie müssen noch die unerwünschten Stücke (die versteckt sind) auf dieser Aufnahme löschen

enregistrement_ plan_nomenclature_ usw.

 

(Ich hoffe, ich war in meiner Erklärung klar genug)

 

@+ ;-)

 

Hallo GT22,

 

Vielen Dank für Ihre Antwort!

(Ich habe in den letzten zwei Wochen an einigen anderen Dingen gearbeitet)

 

Ich habe nicht ganz verstanden, was du meinst mit:

"Du machst Furore, indem du in jedem Abschnitt posierst (gestricheltes Rechteck)

die Typen, die diesen Abschnitten entsprechen

Du versteckst die unerwünschten Typen"

 

Was ich in meinem Makro getan habe, ist, die Teile einzufügen, außer dass ich sie verknüpft einfügen möchte.

 

Wenn Sie das Wort "Sie" eingeben, möchte ich, dass die VBA-API dies tut.

 

Wenn du willst, kann ich dir zeigen, was ich gemacht habe, es gibt nichts Geheimes.

 

Zum Beispiel:

Ist es möglich, Teile in einer Reihenfolge einzufügen und sie auf das zuvor eingefügte Stück zu beschränken?

 

Ist es möglich, die Abmessungen der Teile per API miteinander zu verknüpfen?

 

Vielen Dank für Ihre Antworten,

 

JB

1 „Gefällt mir“

Welche Version von SW verwendest du?

@+ ;-)

Ich verwende SolidWorks 2012 in 64 Bit

Hallo

 

Hier sind die Spezifikationen meines Programms, ich möchte, dass der Benutzer : 

-          Wählen Sie vordefinierte Elemente aus einer Bibliothek aus

-          Wählen Sie die Höhen der einzelnen Elemente

-          Wählen Sie die Breite oder den Durchmesser der Flasche

-          Wählen Sie das Fassungsvermögen der Flasche

-          Wählen Sie die Art des Glases (Material)

 

Es gibt Dinge, die ich später sehen kann, das Wichtigste ist die Änderung der Höhe der Stücke und der Breite und Länge.

 

Beigefügt ist eine Montage einer Flasche, die existieren könnte und deren Parameter ich gerne variieren würde.


assemblage_bouteille_carre_droit.sldasm