Macro-export ongevouwen dxf BIS

@Bart: Voor de volgende zonder, is het omdat ik een lijn met het einde moest omkeren als ... maar ik heb nu niets om het einde van het programma te testen.

 

Dat zal ik morgen proberen te zien

 

@Damoon: Dus, krijgen we een klein shotje cider met je brut de pomme?

1 like

Voor tekenen wordt het gebruikt om automatisch eigenschappen in te voegen voor productie...  

En het verwijdert ook de buiglijnen, zodat de DXF direct "schoon" is voor lasersnijden.

Op die manier heb ik alleen een tekening voor de export met eigen instellingen. 

@coin37coin voor cider is er hier geen in de Vendée, het is de uitzet^^

1 like

Dit is wat ik heb.

 

Wat moet ik doen? :p

 

Anders, met de andere kant, zijn we er bijna! Je hoeft Sw alleen maar te vertellen om alleen de platte patronen te exporteren en dit beroemde platte patroon uit de naam te verwijderen.

 


sans_titre.png

Je moet je referenties activeren.  

Om dit te doen, moet je naar de tool gaan, vervolgens verwijzen en de referenties controleren zoals in de bijgevoegde afbeelding


capture.png
1 like

Nou, maak je niet belachelijk ^^

 

Dit is hoe mijn logica het ziet.

Ik kijk uit naar uw opmerkingen:p


macro.txt
1 like

Ik heb jouw manier van doen overgenomen (de zinnen:

  NewFilePath = PathNoExtension + sConfigName & ". DXF"
 bRet = swModel.ExportFlatPatternView(NewFilePath, 1)     )

een optie die ik niet kende^^

met mijn lussen op de configs die de configs met "SM-FLATPATTERN" "overslaat"

Zie bijgevoegd bestand^^.


export-config.txt
2 likes

Ik kende de code "is XXX zoals dan goto" niet.

Interessante manier van werken en die veel lijnen lichter maakt. Ik zal het behouden

1 like

@Bart, ik keek naar de macro die je deed.

 

Het is duidelijk dat mijn code van "If Strings.Left(sConfigName, PathSize - 15) <> "SM-FLAT-PATTERN" " niet geweldig werkt (of helemaal niet).

 

Aan de andere kant, voor de goede orde, wees voorzichtig in uw constructie. De VBA heeft zijn eigen functie te doen en als je 2 lijnen verwisselt kan het wel of niet werken;)

 

Als je dat doet

Als Strings.Left(sConfigName, PathSize - 15) = "SM-FLAT-PATTERN" Dan
is PathNoExtension = Strings.Left(FilePath, PathSize - 6)
       bRet = swModel.ExportFlatPatternView(NewFilePath, 1)
       NewFilePath = PathNoExtension + sConfigName & ". DXF"

Kortom, je vraagt hem om te controleren of SM-FLAT-PATTERN in de naam staat

Verwijder 6 tekens uit de extensie

Creëer de uitgevouwen

Jij geeft de weg naar toegang.

 

Maar we moeten het zo doen

 

PathNoExtension = Strings.Left(FilePath, PathSize - 6)
If Strings.Left(sConfigName, PathSize - 15) <> "SM-FLAT-PATTERN" dan
       NewFilePath = PathNoExtension + sConfigName & ". DXF"
       bRet = swModel.ExportFlatPatternView(NewFilePath, 1)

Verwijder 6 tekens uit de naam

Als de naam van de configuratie afwijkt (<>) van Flat Patterne

Geef het pad naar de record

Creëer de uitgevouwen

3 likes

Ik ging om 1 uur 's nachts naar bed.

 

Ik heb veel gepraat, het begint binnen te komen... ^^

 

Ik heb een medley gemaakt van al je macro's, ik heb genomen wat interessant was.

Alles werkt perfect, behalve dit platte patroon.

 

Eigenlijk heb ik de naam van het onderdeel niet nodig, ik hoef alleen maar de naam van de configuratie op te halen om in deze naam "SM-FLAT-PATTERN" te zoeken en deze tekens te verwijderen.

 

Met de formule "is XXX like then goto", exporteert Sw alleen de configs in Flat patroon, dus precies wat ik wil. Het enige dat u nog hoeft te doen, is de bestandsnaam opschonen.

1 like

Hallo

Plaats de nieuwste versie van je code in een TXT als je hulp wilt:)

 

1 like

Om het juiste pad te krijgen, moet je een kleine wijziging aanbrengen...

Zie bijgevoegd.

 


export-config.txt
2 likes

50 antwoorden! Dat is de vraag! =)

 

Hier is waar ik ben in de macro.

 

Dit zijn de regels die ik moet veranderen:

PathNoExtension = Strings.Left(FilePath, PathSize - 6)
       NewFilePath = PathNoExtension & ". DXF"

Bestandspad is de naam van het onderdeel, maar ik wil het niet, ik wil gewoon de naam van de configuratie (sConfigName) en verwijder "SM-FLAT-PATTERN"

Ik weet het, ik ben aan het dwalen....^^

 

Nogmaals bedankt in ieder geval! Zonder jou weet ik niet hoe ik het zou hebben gedaan!

Aan de andere kant, om het beste antwoord op te schrijven, wordt het katoen....^^


macro.txt
2 likes

Oh, je wilt alleen de naam van de configuratie?

Vervang dus de lijn 

NewFilePath = PathNoExtension & ". DXF"

bij

NewFilePath = Links(FilePath, InStrRev(FilePath, "\")) & sConfigName & ". DXF"

 

Edit: met de macro opgeruimd in PJ


macro-dxf-bart.txt
3 likes

Als ik sCofigName + dxf zet, krijg ik de naam van de configuratie (1548SM-FLAT-PATTERN) + dxf

 

Ik heb het geprobeerd, maar het werkt niet, waarom kunnen we het niet plaatsen

PathNoExtension = (sConfigName) , Padgrootte -15 ? of iets dergelijks

2 likes

Ja sorry, hier is de gecorrigeerde macro!

De syntaxis:

        NewFilePath = Links(FilePath, InStrRev(FilePath, "\")) & links(sConfigName, len(sConfigName)- 15) & ". DXF"
 

 


macro-dxf-bart.txt
2 likes

Dank je wel Lucas! =) Nikkel zo!

Tot slot, bedankt allemaal!!

 

Nou, je gaat me vertellen dat ik saai ben, maar ik wil nog een laatste stap toevoegen................ :s

 

Net voor de naam van de configuratie wil ik het type van het onderdeel toevoegen (Type 1, Type 2 enz...)

Dit type is een persoonlijk eigendom dat zichtbaar is in de deelfamilie.

Dus ik heb de macrocode aangepast om deze stap toe te voegen, maar het is onvermijdelijk dat deze vastloopt! ^^

 

Na een belofte sluit ik de vraag! :D


macro_final.png
1 like

Start je dit vanaf een kaart of vanuit 3D?

Bewerk, probeer dit (voeg de eerste twee regels toe en wijzig de 3e van de bestaande): 

Dim TYPE als string

 

TYPE = SWmoddoc.GetCustomInfoValue("", "type")

NewFilePath = Links(FilePath, InStrRev(FilePath, "\")) & TYPE & left(sConfigName, len(sConfigName)- 15) & ". DXF"

2 likes

Van 3D

 

Als ik Dim TYPE zet, vertelt het me "Verwachte ocmpilatiefout: Identifier)

Hetzelfde geldt voor de tweede regel :/

1 like

Oh ja, sorry "type" is gereserveerd in VBA! Zet in plaats daarvan TYP:

Dim TYP als tekenreeks

TYP = SWmoddoc.GetCustomInfoValue("", "type")

NewFilePath = Links(FilePath, InStrRev(FilePath, "\")) & TYP & left(sConfigName, len(sConfigName)-15) & ". DXF"

 

Edit: trouwens, de exacte naam van uw woning is "typisch"?

3 likes

De exacte naam van de woning is TYPE

 

Het retourneert waarden zoals 1 of 2 of 3 enz...

Om uiteindelijk te komen: T1 Lg 1250.dxf

 

Compilatiefout: De variabele swmoddoc is niet ingesteld

Wat draag ik?

Dim Swmoddoc als ...........