Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Assembly in einer Makro-Schleife erstellen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Bechtle stärkt PLM-Geschäft mit Neugründung
Autor Thema:  Assembly in einer Makro-Schleife erstellen (845 mal gelesen)
juanpablo
Mitglied
Architekt

Sehen Sie sich das Profil von juanpablo an!   Senden Sie eine Private Message an juanpablo  Schreiben Sie einen Gästebucheintrag für juanpablo

Beiträge: 6
Registriert: 21.07.2007

erstellt am: 21. Jul. 2007 21:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

ich habe heute zum ersten mal ein makro in solidworks bearbeitet, da ich keine VB-Kenntnisse habe bin ich sehr früh an meine Grenzen gestossen. Ich habe folgendes Problem:
Ich habe in Solidworks eine Form erstellt, von der ich über eine Tabelle unterschiedliche Varianten erzeugt habe (Masse geändert).
Jetzt würde ich gerne die einzelnen Formen in einem Assembly nebeneinander aufbauen, sprich jeweils eine abgeänderte Variante nach der anderen einfügen (Platzierung erfolgt über einen Variablen Abstand zum Ursprung).
Ich habe ein Makro aufgenommen und versucht dort eine Schleife einzufügen, allerdings komme ich nicht an die Variablen ran. Kann mir jemand bitte weiterhelfen?
.....
For i = 1 To 10 Step 1    // Anfang des Loops

Set Part = swApp.ActivateDoc2("first_try", False, longstatus)
.....
boolstatus = Part.Extension.SelectByID2("Schnitt i@first_try.SLDPRT" , "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)

Part.ShowConfiguration "Schnitt i" // hier ist der Wert der sich him loop ändern soll (Bezeichnung eines Teils)

......
Set Part = swApp.ActivateDoc2("versuch", False, longstatus)
.....
Next

End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jens_oliver
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von jens_oliver an!   Senden Sie eine Private Message an jens_oliver  Schreiben Sie einen Gästebucheintrag für jens_oliver

Beiträge: 114
Registriert: 28.06.2005

erstellt am: 23. Jul. 2007 11:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für juanpablo 10 Unities + Antwort hilfreich

Hi,

versuchs mal damit.

Part.ShowConfiguration "Schnitt " + str(i)

gruß oliver

------------------
Software nach Maß für Ihr CAD-System
www.ib-knepper.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

juanpablo
Mitglied
Architekt

Sehen Sie sich das Profil von juanpablo an!   Senden Sie eine Private Message an juanpablo  Schreiben Sie einen Gästebucheintrag für juanpablo

Beiträge: 6
Registriert: 21.07.2007

erstellt am: 23. Jul. 2007 16:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

vielen dank für deinen tip,
leider funktioniert es nicht. wenn ich den wert manuell ändere (statt "Schnitt 2", "Schnitt 3" eintrage fügt er eben dieses teil auch ein), dann funtioniert es. ich denke, dass "Schnitt "+str(i) nicht funktioniert weil es ausserhalb steht. gibt es eine möglichkeit sich die zeile mal anzeigen zu lassen? sowas wie printline?
falls du noch ne idee hast, wäre ich dir dankbar.

liebe grüsse,
juan pablo

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Mitglied
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 23. Jul. 2007 16:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für juanpablo 10 Unities + Antwort hilfreich

Hallo juanpablo,

kann es sein das wir von der C Welt kommen?
In vb werden Kommentare nicht mit \\ sondern mit einem ' eingeleitet
Ins Direktfenster der VBA Entwicklungsumgebung (Menü Ansicht > Direktfenster) schreibt man mit Debug.Print.
String setzt man am besten mit einem & und nicht mit einem + zusammen.

Hier mal der von mir überarbeitete Pfad.

Code:

  For i = 1 To 10 Step 1  'Anfang des Loops

    Set Part = swApp.ActivateDoc2("first_try", False, longstatus)
    .....
    boolstatus = Part.Extension.SelectByID2("Schnitt i@first_try.SLDPRT" , 
      "CONFIGURATIONS", 0, 0, 0, False, 0, Nothing, 0)

    'Schnittkonfiguration ins Direktfenster schreiben
    Debug.Print "Schnitt " & i
    'hier ist der Wert der sich him loop ändern soll (Bezeichnung eines Teils)
    Part.ShowConfiguration "Schnitt " & i
    ......
    Set Part = swApp.ActivateDoc2("versuch", False, longstatus)
    .....
  Next
End Sub


------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

juanpablo
Mitglied
Architekt

Sehen Sie sich das Profil von juanpablo an!   Senden Sie eine Private Message an juanpablo  Schreiben Sie einen Gästebucheintrag für juanpablo

Beiträge: 6
Registriert: 21.07.2007

erstellt am: 23. Jul. 2007 18:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo daniel,
vielen dank für den tip, es funktioniert. du hast übrigens recht ich programmiere sonst in java.
hast du vielleicht noch ne idee wie man ein objekt über das script um die x-achse drehen kann?

Sub main()

Set swApp = Application.SldWorks

For i = 0 To 10 Step 1


Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
....

Set Part = swApp.ActivateDoc2("first_try", False, longstatus)

Debug.Print "Schnitt " & i
Part.ShowConfiguration "Schnitt " & i
.....

Set Part = swApp.ActivateDoc2("versuch", False, longstatus)
Part.AddComponent "C:\Documents and Settings\juan pablo\My Documents\Solidworks\070721_Entwurf\first_try.SLDPRT", 0, 0, 0

// diese letzten drei zahlen geben ja die position der teile im raum an. nehmen wir an du würdest ein part entlang eines rechteckigen pfades einsetzen. weisst du wie man an den ecken jeweils den körper dreht?

besten dank und liebe grüsse,
juan pablo


Next

End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tbd
Mitglied
Teamleiter


Sehen Sie sich das Profil von tbd an!   Senden Sie eine Private Message an tbd  Schreiben Sie einen Gästebucheintrag für tbd

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 24. Jul. 2007 07:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für juanpablo 10 Unities + Antwort hilfreich

Guten Morgen Juan Pablo,

das ist schon lange her? Ich kann mich aber noch erinnern das es am einfachsten ist die Komponenten in einer Baugruppe mit Hilfe von Ebenen und Achsen zu verbauen. Diese kannst du relativ einfach in der SolidWorks API ansprechen.
Durch die Ebenen und Achsen kannst du deine Komponente dann auch in die richtige Richtung drehen, wie es manuell bei Verknüpfungen in SolidWorks auch möglich ist.
Verbaue mal eine Komponente und lass den Makrorekorder dabei laufen.

Evtl. kann dir aber jemand anders besser weiter helfen.

Jetzt gehts erstmal auf Kundentag, neues anschauen!
Bis Morgen, viel GLück

------------------
Mfg Daniel

Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht
------------------
SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz