Hallo
Ich suche nach einer Möglichkeit, eine Schleife für verschiedene Werte mehrerer String-Variablen zu erstellen, um die Größe meines Codes zu reduzieren!
Danke für Ihre Hilfe.
Hallo
Ich suche nach einer Möglichkeit, eine Schleife für verschiedene Werte mehrerer String-Variablen zu erstellen, um die Größe meines Codes zu reduzieren!
Danke für Ihre Hilfe.
Hallo
Ich verstand es nicht ganz.
Wenn Sie eine Schleife erstellen möchten, wenn Sie wissen, wie oft Sie eine Schleife ausführen möchten (z. B. 10), wählen Sie entweder:
- Beispiel 1:
Für i = 1 bis 10
DEIN CODE
Weiter I
- Beispiel 2:
Mach, während ich 10 <
DEIN CODE
i = i + 1
Schleife
- Beispiel 2:
Tun
DEIN CODE
i = i + 1
Schleife , während ich 10 <
Wenn Sie jedoch die Zahl nicht kennen und sie Teil einer Sammlung ist, können Sie für jeden ein a verwenden, ein Beispiel hier:
http://help.solidworks.com/2014/English/api/sldworksapi/Get_Components_in_Each_BOM_Table_Row_VB.htm
Mit meinem Beispiel, das Sie gut kennen, werden Sie verstehen, was ich meiner Meinung nach tun möchte, in der Tat möchte ich meine Links, meine Namen von Teilen, MEP und Baugruppen (in Fettdruck) durch String-Variablen ersetzen, die ich jedes Mal ändere, wenn die Schleife beginnt, bis ich keinen Textwert mehr habe!
Sub main()
swApp = _ setzen
Anwendung.SldWorks
Set Part = swApp.OpenDoc6("xxxxxxxxxxxxx.SLDASM", 2, 0, "", longstatus, longwarnings) 'Öffnen der Quellassembly'
swApp.ActivateDoc2 'Pot Store Set', False, longstatus 'Assembly aktivieren'
Set Part = swApp.ActiveDoc 'Aktivierung'
F1. 'Öffnen des Informationsfensters' anzeigen
Set swAppp = Application.SldWorks 'zurück zur SolidWorks App'
Set swmodel = swAppp.ActiveDoc 'Reaktivierung der Assembly'
bool = swmodel. Extension.RunCommand(SwCommands.swCommands_SaveAs, "") 'Öffnen des Fensters "Speichern unter"
Set Part = swApp.ActiveDoc 'Aktiviere die neue Baugruppe, die im neuen Ordner gespeichert ist'
Dateipfad = swmodel. GetPathName 'Abrufen des Links aus der Assembly'
TitelA = swmodel. GetTitle: 'Namensabruf mit Assemblyerweiterung'
TitleAs = Len(TitleA) 'Verlängern der Verlängerungslänge abrufen'
TitleAn = Left(TitleA, TitleAs - 7) 'Erweiterung löschen'
' ******************************************************************************
' Aufnahme der Stückvorratstöpfe
' ******************************************************************************
Set Part = swApp.ActiveDoc 'Aktivierung'
Set Part = swApp.OpenDoc6("\\xxxxxxxxxxx.sldprt", 1, 0, "", longstatus, longwarnings) 'Öffnen des Teils'
Set Part = swApp.ActiveDoc 'Aktivierung'
swApp.ActivateDoc2 "Pot Tray.sldprt", False, longstatus 'Pot Tray Coin Aktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'
Set swmodel = swApp.ActiveDoc 'MEP-Aktivierung'
TitelPb = swmodel. GetTitle: 'Abrufen des Titels aus dem MEP des Topfspeichers ohne die Erweiterung'
Set Part = swApp.OpenDoc6("xxxxxxxx.SLDDRW", 3, 0, "", longstatus, longwarnings) 'Öffnen Sie das MEP'
Set Part = swApp.ActiveDoc 'Aktivierung'
swApp.ActivateDoc2 "Pots Store - Sheet1", False, longstatus 'MEP-Aktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'
Set swmodel = swApp.ActiveDoc 'Aktivierung für Doc-Informationen'
TitelM = swmodel. GetTitle 'MEP-Titelwiederherstellung ohne Erweiterung'
Set Part = swApp.ActiveDoc 'Aktivierung'
swApp.ActivateDoc2 "pots.sldprt speichern", False, longstatus 'Teilaktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'
Set swAppp = Application.SldWorks 'SOLIDWORKS App aktivieren'
Set swmodel = swAppp.ActiveDoc 'Teil-Aktivierung'
bool = swmodel. Extension.RunCommand(SwCommands.swCommands_SaveAs, "") 'öffnet das Fenster Speichern unter'
Set swmodel = swApp.ActiveDoc 'MEP-Aktivierung'
TitelM = swmodel. GetTitle 'MEP-Titelwiederherstellung ohne Erweiterung'
PFilePath = SWMODEL. GetPathName 'Abrufen der Verknüpfung des Teils mit der Erweiterung'
PsFilePath = Len(PFilePath) 'Abrufen der Länge der Teileverknüpfung mit der Erweiterung'
PnFilePath = Links(PFilePath, PsFilePath - 7) 'Entfernen der Erweiterung'
MFilePath = PnFilePath & ". SLDDRW" 'Erweiterung für MEP-Links hinzugefügt'
TitelP = swmodel. GetTitle: 'Abrufen des Titels des Jar-Lagerraums mit der Erweiterung'
TitlePs = Len(TitleP) 'Verlängerungslänge abrufen'
TitlePn = Links(TitelP, TitelPs - 7) 'Erweiterung löschen'
Set Part = swApp.ActiveDoc 'Aktivierung'
Set Part = Nichts
swApp.CloseDoc TitlePn 'Raum schließen'
Set Part = swApp.ActiveDoc 'Aktivierung'
swApp.ActivateDoc2 "Pot Store - Sheet1", False, longstatus 'MEP-Aktivierung'
Set Part = swApp.ActiveDoc 'Aktivierung'
longstatus = Part.SaveAs3(MFilePath, 0, 2) 'MEP-Datensatz'
Set swmodel = swApp.ActiveDoc 'MEP-Aktivierung'
TitelM = swmodel. GetTitle: 'Abrufen des Titels des neuen MEP ohne die Erweiterung'
swApp.CloseDoc TitleM 'MEP schließen'
swApp.ActivateDoc2 TitlePn, False, longstatus 'zurück zum Teil'
Set Part = swApp.ActiveDoc 'Aktivierung'
Set Part = Nichts
swApp.CloseDoc TitlePn 'Raum schließen'
Set Part = swApp.ActiveDoc 'Aktivierung'
swApp.ActivateDoc2 TitleAn, False, longstatus 'zurück zur Generalversammlung (Pot-Store-Assembly)'
Set Part = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
longstatus = Part.SaveAs3(FilePath, 0, 2) 'Allgemeiner Assembly-Datensatz (Pot Store Set)'
Set Part = swApp.ActiveDoc
Set Part = Nichts
swApp.CloseDoc TitleAn 'Schließen der Generalversammlung (Topftablett-Set)'
Ende Sub
Wenn ich es richtig verstanden habe, muss man einfach den Code ersetzen:
Set Part = swApp.OpenDoc6("\\xxxxxxxxxxx.sldprt", 1, 0, "", longstatus, longwarnings) 'Öffnen des Teils'
bis:
Set Part = swApp.OpenDoc6(path1, 1, 0, "", longstatus, longwarnings) 'Öffnen Sie das Teil'
»Und so geht es mit den andern weiter
Und deine Schleife wirst du so machen:
für i = 1 bis 3 ' (3, wenn Sie 3 Mal schleifen möchten)
wenn i = 1 dann
Pfad 1 = "C:\Test 1\"
sonst, wenn i = 2 , dann
Pfad 2 = "C:\Test 2\"
sonst, wenn i = 3 , dann
Pfad 3 = "C:\Test 3\"
Ende, wenn
Hier ist der Rest des Codes, der in die Schleife aufgenommen werden sollte
Weiter I
Hier ist der Rest Ihres Codes, der NICHT in die Schleife aufgenommen werden sollte
Subtil! Ich werde es so versuchen, vielen Dank :)
Keine Sorge:)
Um übersichtlicher zu sein, sollten Sie einen ausgewählten Fall anstelle von:
wenn i = 1 dann
Pfad 1 = "C:\Test 1\"
sonst, wenn i = 2 , dann
Pfad 2 = "C:\Test 2\"
sonst, wenn i = 3 , dann
Pfad 3 = "C:\Test 3\"
Ende, wenn
Es wäre:
Fall I auswählen
Kasten 1
Pfad 1 = "C:\Test 1\"
Kasten 2
......
Ende Auswahl