Solidworks-Gleichung in VBA

Hallo ihr alle

 

So transkribieren Sie eine Solidworks-Gleichung dieses Typs:

 

"hauteur@Esquisse1"    =     "largeur@Esquisse1"   *  2

 

mit einem Makro unter VBA? Der Code, zu dem es gebildet wird?

Das Ziel besteht darin, ein Teil nur mit VBA einzurichten.

 

Vielen Dank im Voraus.

 

 

Hallo

Die SW Online-Hilfe ist eine Fülle von Informationen. Für APIs finden Sie hier den Link: http://help.solidworks.com/2015/english/api/sldworksapiprogguide/Welcome.htm

Ein Beispiel für das Hinzufügen von Gleichungen finden Sie in einem Raum mit mehreren Konfigurationen : http://help.solidworks.com/2015/english/api/sldworksapi/Add_Equations_Example_VB.htm

Bis bald.

3 „Gefällt mir“

Im schlimmsten Fall, wenn Sie nicht finden, wonach Sie suchen, können Sie vielleicht versuchen, ein Makro aufzuzeichnen, indem Sie Ihre Gleichung durchführen, in den Code einsteigen und sehen, was die Software tut?

1 „Gefällt mir“

Hallo

Zunächst einmal vielen Dank für Ihre Antworten.

Ich habe mir die SW-Hilfe bereits angesehen, aber die angebotenen Beispiele sind mit Bedingungen, in meinem Fall brauche ich sie nicht.

Da ich nicht viel Erfahrung in der Entwicklung hatte, versuchte ich, am Code herumzubasteln, aber vergeblich funktioniert nichts:(

Mit dem Makrorecorder funktioniert es nicht, es berücksichtigt nicht die in SOLIDWORKS geschriebene Gleichung.

 

Vielen Dank im Voraus.

 

1 „Gefällt mir“

In diesem Fall musste es also gleich gesagt werden.

Denn um ein funktionales Makro für Sie zu entwickeln, benötigen wir viel mehr Informationen über den Zweck und die Nutzung, die Sie davon machen möchten.

Und es braucht viel Zeit.

1 „Gefällt mir“

Was ich brauche, ist ein Makro, das in der Lage ist, diese Art von Gleichung auszuführen:

 

 "hauteur@Esquisse1"    =     "largeur@Esquisse1"   *  2

Wenn das nur der Grund ist, warum nicht jedes Mal Gleichungen machen?

 

Denn dann müssen Sie der richtigen Bewertung den richtigen Namen geben, damit er weiß, wie er es machen soll. Ich bin nicht sehr überzeugt von der Zeitersparnis :s

1 „Gefällt mir“

Ich habe ein Formular mit VBA erstellt, um ein 3D-Modell einzurichten.

Mit diesem Formular kann ich die Länge, Breite und Höhe der Vorlage ändern.

Es gibt auch Fälle, in denen Sie das Löschen einer Komponente überprüfen oder rückgängig machen müssen (abhängig von den gewählten Optionen).

Wenn ich Gleichungen für meine Komponenten in meiner Baugruppe erstelle und sie (mit den Prüffällen)  lösche, meldet mir SolidWorks Fehler in meinen Gleichungen. Deshalb möchte ich SW-Gleichungen in meinem Modell verbieten

 

1 „Gefällt mir“

Oh ja, natürlich.

 

Nun, um Ihnen auf eine Gleichung in VBA zu antworten, mache ich es so

 

Zellen(i, "ich"). Wert = Tabelle3.Zellen(a, "E"). Wert * Zellen (i, "c"). Wert

 

Also, für Sie wäre es

largeur@esquisse1" =  Zellen(i, "c"). Wert* 2

 

wobei Cells(i, "C") dem Excel-Feld zum Festlegen des Werts "hauteur@esquisse1" entsprechen würde.

 

 

Auf der anderen Seite weiß ich überhaupt nicht, wie man die Verknüpfung zwischen Excel und dem Wert einer Dimension herstellt (aber ich nehme an, Sie wissen, wie man das macht?). Also lasse ich Sie es integrieren, wie Sie es für richtig halten.

 

Abgesehen davon kann es schön sein, Ihr Code-Snippet als Antwort für die nächsten Leser zu setzen, die nach der gleichen Art von Antwort suchen;)

1 „Gefällt mir“

Ich arbeite nicht mit Excel, sondern mit dem VBA-Modul von Solidworks.

Unten ist ein Code, mit dem ich meine Werte ändern muss, egal ob es sich um Länge, Breite oder eine Anzahl von Wiederholungen handelt.

Ich suche nach der gleichen Art von Code, aber um Beziehungen zwischen bestimmten Teilen zu erstellen

 

Set SwApp = CreateObject("SldWorks.Application")  ' @Corps CamVane 100.sldasm
Set Part = SwApp.ActiveDoc

Part.Parameter("D1@Lg traverse@Traverse untere CamVane.part"). SystemWert = (Dimension.Breite.Wert - 3) / 1000
Part.ClearSelection
Teil.ForceRebuild

Part.Parameter("D1@Distance2@Corps CamVane 100.sldasm"). SystemValue = Dimension. Höhe.Wert / 1000
Part.ClearSelection
Teil.ForceRebuild


Part.Parameter("D5@Lg traverse@Traverse untere CamVane.part"). SystemWert = Dimension.Dicke.Wert / 1000
Part.ClearSelection
Teil.ForceRebuild

Part.Parameter("linear D1@Répétition locale1@Corps CamVane 100.sldasm"). SystemValue = UserForm1.TextBox1.value
Part.ClearSelection
Teil.ForceRebuild

 

Teil.ViewZoomtofit2

Teil.ForceRebuild

 

boolstatus = Teil.EditRebuild3()

 

Ich kann mein Problem immer noch nicht lösen:(

Hallo

 

Ich habe die Antwort auf meine Frage gefunden.

Für das, was mich interessiert, habe ich den Code unten eingefügt.

 

Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc


Part.Parameter("hauteur@Esquisse1"). SystemValue =  Part.Parameter("largeur@Esquisse1"). SystemWert *2


Part.ClearSelection
Teil.ForceRebuild

 


Teil.ViewZoomtofit2

Teil.ForceRebuild

 

boolstatus = Teil.EditRebuild3()

Ende Sub

Hallo

 

Ich habe die Antwort auf meine Frage gefunden.

Für das, was mich interessiert, habe ich den Code unten eingefügt.

 

Sub main()

Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc


Part.Parameter("hauteur@Esquisse1"). SystemValue =  Part.Parameter("largeur@Esquisse1"). SystemWert *2


Part.ClearSelection
Teil.ForceRebuild

 


Teil.ViewZoomtofit2

Teil.ForceRebuild

 

boolstatus = Teil.EditRebuild3()

Ende Sub