Hallo
Ik ben op zoek naar een manier om te lussen voor verschillende waarden van meerdere string variabelen om de grootte van mijn code te verminderen!
Dank u voor uw hulp.
Hallo
Ik ben op zoek naar een manier om te lussen voor verschillende waarden van meerdere string variabelen om de grootte van mijn code te verminderen!
Dank u voor uw hulp.
Hallo
Ik begreep het niet helemaal.
Als u het aantal keren weet dat u een lus wilt maken (bijvoorbeeld 10), kunt u het volgende doen:
- Voorbeeld 1:
Voor i = 1 tot 10
UW CODE
volgende i
- Voorbeeld 2:
Doe terwijl ik < 10
UW CODE
i = ik + 1
Strik
- Voorbeeld 2:
Doen
UW CODE
i = ik + 1
Loop terwijl ik < 10
Maar als u het nummer niet weet en het maakt deel uit van een verzameling, kunt u voor elk een gebruiken, een voorbeeld hier:
http://help.solidworks.com/2014/English/api/sldworksapi/Get_Components_in_Each_BOM_Table_Row_VB.htm
Met mijn voorbeeld dat je goed kent, zul je begrijpen wat ik naar mijn mening wil doen, in feite zou ik mijn links, mijn namen van onderdelen, MEP en assemblages (vetgedrukt) willen vervangen door stringvariabelen die ik elke keer dat de lus begint verander totdat ik geen tekstwaarde meer heb!
Sub hoofd()
Stel swApp in = _
Toepassing.SldWorks
Set Part = swApp.OpenDoc6("xxxxxxxxxxxxx.SLDASM", 2, 0, "", longstatus, longwarnings) 'de bronassembly openen'
swApp.ActivateDoc2 'Pot Store Set', False, longstatus 'enable assembly'
Deel instellen = swApp.ActiveDoc 'activering'
F1. Toon 'het openen van het informatievenster'
Stel swAppp = Application.SldWorks 'terug naar solidworks app' in
Stel swmodel in = swAppp.ActiveDoc 'Assemblage Reactivering'
bool = swmodel. Extension.RunCommand(SwCommands.swCommands_SaveAs, "") 'Het venster Opslaan als openen'
Set Part = swApp.ActiveDoc 'activeer de nieuwe assembly opgeslagen in de nieuwe map'
FilePath = swmodel. GetPathName 'de link ophalen uit de assembly'
TitelA = swmodel. GetTitle 'Naam ophalen met assembly-extensie'
TitleAs = Len(TitleA) 'verlengingslengte ophalen'
TitleAn = Links(TitleA, TitleAs - 7) 'extensie verwijderen'
' ******************************************************************************
' Opname van de stukhuispotten
' ******************************************************************************
Deel instellen = swApp.ActiveDoc 'activering'
Set Part = swApp.OpenDoc6("\\xxxxxxxx.sldprt", 1, 0, "", longstatus, longwarnings) 'het onderdeel openen'
Deel instellen = swApp.ActiveDoc 'activering'
swApp.ActivateDoc2 "Pot Tray.sldprt", False, longstatus 'Pot Tray Coin Activation'
Deel instellen = swApp.ActiveDoc 'activering'
Stel swmodel = swApp.ActiveDoc 'mep activatie' in
TitelPb = swmodel. GetTitle 'ophalen van de titel bij de Europarlementariër van de pottenwinkel zonder de extensie'
Set Part = swApp.OpenDoc6("xxxxxxxx.SLDDRW", 3, 0, "", longstatus, longwarnings) 'open de MEP'
Deel instellen = swApp.ActiveDoc 'activering'
swApp.ActivateDoc2 "Pots Store - Sheet1", False, longstatus 'mep activation'
Deel instellen = swApp.ActiveDoc 'activering'
Stel swmodel = swApp.ActiveDoc 'activering voor doc-informatie' in
TitleM = swmodel. GetTitle 'herstel van MEP-titel zonder extensie'
Deel instellen = swApp.ActiveDoc 'activering'
swApp.ActivateDoc2 "Store pots.sldprt", False, longstatus 'part activation'
Deel instellen = swApp.ActiveDoc 'activering'
Stel swAppp = Application.SldWorks 'solidworks app inschakelen' in
Stel swmodel = swAppp.ActiveDoc 'deel activering' in
bool = swmodel. Extension.RunCommand(SwCommands.swCommands_SaveAs, "") 'opent het venster Opslaan als'
Stel swmodel = swApp.ActiveDoc 'mep activatie' in
TitleM = swmodel. GetTitle 'herstel van MEP-titel zonder extensie'
PFilePath = swmodel. GetPathName 'de link van het onderdeel met de extensie ophalen'
PsFilePath = Len(PFilePath) 'de lengte van de onderdeellink met de extensie ophalen'
PnFilePath = Links(PFilePath, PsFilePath - 7) 'verwijdering van extensie'
MFilePath = PnFilePath & ". SLDDRW" 'toegevoegde extensie voor MEP-links'
TitleP = swmodel. GetTitle 'ophalen van de titel van de pottenopslagruimte met de uitbreiding'
TitlePs = Len(TitleP) 'Verlengingslengte ophalen'
TitlePn = Links(TitleP, TitlePs - 7) 'extensie verwijderen'
Deel instellen = swApp.ActiveDoc 'activering'
Set Deel = Niets
swApp.CloseDoc TitlePn 'kamer sluiten'
Deel instellen = swApp.ActiveDoc 'activering'
swApp.ActivateDoc2 "Pot Store - Sheet1", False, longstatus 'mep activation'
Deel instellen = swApp.ActiveDoc 'activering'
longstatus = Part.SaveAs3(MFilePath, 0, 2) 'MEP-record'
Stel swmodel = swApp.ActiveDoc 'mep activatie' in
TitleM = swmodel. GetTitle 'de titel van het nieuwe lid van het Europees Parlement ophalen zonder de extensie'
swApp.CloseDoc TitleM 'close mep'
swApp.ActivateDoc2 TitlePn, False, longstatus 'terug naar deel'
Deel instellen = swApp.ActiveDoc 'activering'
Set Deel = Niets
swApp.CloseDoc TitlePn 'kamer sluiten'
Deel instellen = swApp.ActiveDoc 'activering'
swApp.ActivateDoc2 TitleAn, False, longstatus 'terug naar de algemene vergadering (pottenwinkelvergadering)'
Deel instellen = swApp.ActiveDoc
Deel instellen = swApp.ActiveDoc
longstatus = Part.SaveAs3(FilePath, 0, 2) 'Algemeen Assemblage Record (Pot Store Set)'
Deel instellen = swApp.ActiveDoc
Set Deel = Niets
swApp.CloseDoc TitleEen 'De algemene vergadering afsluiten (Pot Tray Set)'
Einde Sub
Dus als ik het goed begrepen heb, hoef je alleen maar de code te vervangen:
Set Part = swApp.OpenDoc6("\\xxxxxxxx.sldprt", 1, 0, "", longstatus, longwarnings) 'het onderdeel openen'
bij:
Set Part = swApp.OpenDoc6(path1, 1, 0, "", longstatus, longwarnings) 'open het onderdeel'
'En zo verder voor de anderen
En je lus ga je als volgt doen:
voor i = 1 tot 3 '(3 als je 3 keer wilt lussen)
Als ik = 1 dan
Pad 1 = "C:\Test 1\"
Anders, als ik = 2 dan
Pad 2 = "C:\Test 2\"
Anders, als i = 3 dan
Pad 3 = "C:\Test 3\"
Eindigen als
Hier is de rest van uw code die in de lus moet worden opgenomen
volgende i
Hier is de rest van uw code die NIET in de lus mag worden opgenomen
Subtiel! Ik zal het zo proberen, heel erg bedankt :)
Maak je geen zorgen:)
Om schoner te zijn, moet u een select geval gebruiken in plaats van:
Als ik = 1 dan
Pad 1 = "C:\Test 1\"
Anders, als ik = 2 dan
Pad 2 = "C:\Test 2\"
Anders, als i = 3 dan
Pad 3 = "C:\Test 3\"
Eindigen als
Het zou zijn:
Selecteer Case: I
Tekstvak 1
Pad 1 = "C:\Test 1\"
Tekstvak 2
......
Einde selecteren