Macro-export ongevouwen dxf BIS

Hoi allemaal

Ik kom terug op de aanklacht met betrekking tot de macro die in deze vraag wordt genoemd.

Samenvattend heb ik aan de ene kant een Excel-bestand dat de bestelling van de klant is en aan de andere kant een geparametriseerd Solidworks-bestand.

Ik wil gewoon dat Sw elk van de configuraties van mijn familie van onderdelen uitvouwt en exporteert in dxf met de naam van de configuratie.

 

Dus ik heb de macro hier gedownload.

 

Maar ik loop vast op sommige punten.

- Wanneer ik de macro start, maakt deze, door het lezen van mijn deelfamilie, ongevouwen toestanden (plat patroon) voor al mijn configuraties. Geen probleem, maar het probleem is dat het deze configuraties ook exporteert, dus ik eindig met dubbele onderdelen.

 

- Mijn onderdeel moet 2 keer opnieuw worden opgebouwd om de problemen correct op te lossen. Dus ik zou graag willen dat voor de export van elke configuratie, Sw het deel 2 keer opnieuw opbouwt voor elke dxf-opname.

 

Ik denk dat dat het wel zo'n beetje is...

Daarmee zou ik bijna aan het einde van mijn "project" zijn

 

Dank je wel =)

 

 

1 like

Aanvullende info voor degenen die het niet weten, ik heb geen kennis van Vba ^^

 

Ik heb de zeefdruk van de basismacro bijgevoegd


macro_de_base.png

Voor de reconstructie van de onderdelen:

Maakt gebruik van de methode: Part.ForceRebuild3

Voorbeeld hier: http://help.solidworks.com/2015/english/api/sldworksapi/rebuild_example_vb.htm

En hier (voor alle configuraties): http://help.solidworks.com/2015/english/api/sldworksapi/Forcibly_Rebuild_All_Configurations_Example_VB.htm

2 likes

In de huidige macro heb ik:

 

bRebuild = swModel.ForceRebuild3(Onwaar)

Als u uw "onwaar" verandert in "waar", lost dit het probleem niet op?

1 like

Je moet ervoor zorgen dat je de juiste opstelling opnieuw opbouwt. Hier is het het "Flat Pattern" dat je interesseert.

Ofwel, zoals in voorbeeld twee, maak je een lijst van alle configuraties en bouw je ze één voor één opnieuw op.

Of u zorgt ervoor dat u de juiste configuratie selecteert volgens deze methode: swModel.ShowConfiguration2(sConfigName)

Vervolgens bouw je het model opnieuw op.

2 likes

@Coin37coin:

Dit is een retourwaarde, waarmee u kunt weten of de reconstructie fouten heeft opgeleverd: http://help.solidworks.com/2015/english/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IModelDoc2~ForceRebuild3.html

2 likes

Aan de andere kant begrijp ik het probleem niet als je zegt 

 

"- Wanneer ik de macro start, creëert deze, door het lezen van mijn deelfamilie, uitgevouwen toestanden (plat patroon) voor al mijn configuraties. Geen probleem, maar het probleem is dat het ook deze configuraties exporteert, dus ik eindig met dubbele onderdelen. is dat niet wat je vraagt als je zegt "Ik wil gewoon dat Sw elk van de configuraties in mijn deelfamilie ontvouwt wanneer je de macro start en deze exporteert naar DXF met de naam van de configuratie"?

 

(Ik zeg niet dat je ongelijk hebt, ik zeg dat ik ;) niet begrijp)

 

Edit: Haaa ok Remrem. Daarom werkt het niet zoals ik wil, zowel de waarheden als de onwaarheden. Ik dacht dat je een functie aan of uit zette

1 like

Yes@remrem
,

Kortom, ik geef niet om "gevouwen" configuraties.

Wat mij interesseert is om alle platte patroonconfiguraties te exporteren, maar zonder dat er een plat patroon in de naam voorkomt.

 

In het bijgevoegde voorbeeld heb ik zojuist een enkele configuratie gemaakt om een test uit te voeren.

De configuratie heet "1625"

Ik krijg deze bestanden

 

 


resultat.png

@Coincoin, als ik eigenlijk alleen maar een configuratie op beide wil

 

Ik wil alleen het uitgevouwen van de kamer. Dus ja, alleen de configuratie van het "platte patroon", maar het verwijderen van het achtervoegsel van het platte patroon

1 like

Gezien de code van de macro is het normaal:

Sinds:

  • U opent het SW-bestand.
  • Je zet de configuraties op een rijtje.
  • Voor elke configuratie:
    • U selecteert de configuratie
    • Je bouwt opnieuw op
    • U exporteert de uitvouwweergave met de naam van de configuratie, dnas, de naam van het dxf-bestand

 

Heeft u een manier om de gedetecteerde configuraties te differentiëren?

Zijn alle bestanden uitgeklapt?

Kunt u uw volledige code in een txt plaatsen??

2 likes

Dit is het deel dat ik moeilijk kan begrijpen:

 

"Dim FilePath als tekenreeks
Dim PathSize zo lang
Dim PathNoExtension als tekenreeks
NewFilePath dimmen als tekenreeks

FilePath = swModel.GetPathName
Padgrootte = Strings.Len(FilePath)
PathNoExtension = Strings.Left(FilePath, PathSize - 6)

NewFilePath = PathNoExtension + sConfigName & ". DXF"

Plat patroon exporteren
bRet = swModel.ExportFlatPatternView(NewFilePath, 1)

volgende i

Einde Sub"

 

Wat ik hieruit afleid, is dat Sw elke config exporteert met de naam van het onderdeel, de naam van de config met .dxf

En exporteer vervolgens alle configuraties met een "plat patroon"

Dat klopt?

 

 

@remrem

 

Om mijn verschillende onderdelen te herkennen, zal er de naam (Type 1) en de lengteconfiguratie zijn (bijv. 1625)

Of T1 1625.dxf, het beste zou zijn om T1 LG 1625.dxf te hebben

 

Ik voeg de macro toe

 

Daar slaag ik erin om onderdeelnaam "LG"config name.dxf te krijgen

+ Onderdeelnaam "LG" "configuratienaam" plat patroon.dxf


macro_export_famille_de_piece_dxf.txt

Nee, het maakt een nieuwe naam aan en exporteert vervolgens de flatPattern door de nieuwe eraan toe te voegen

 

1 like

Hier is het tekstbestand met commentaar.


macro_export_famille_de_piece_dxf.txt
1 like

Hier is een afbeelding met kleuren voor meer begrip.

Gemaakt met Kladblok++

 

[bewerken: ]

Voor de "naam" is het een eigendom?

Is de lengte een eigenschap of gewoon iclus in de naam van de configuratie?

Kunt u mij een standaardonderdeel sturen om te testen?


capture.png
2 likes

Om het probleem te omzeilen, zou ik je willen vertellen om de volgende regel toe te voegen na "FilePath=swModel.GetPathName"

 

if String.Left(sConfigName, pathSize-15) = "SM-FLAT-PATTERN" dan 'Controleer of de laatste 15 tekens van de naam overeenkomen met  SM-FLAT-PATTERN 

Volgende i' zo ja, volgende configuratie

anders

 

En om daarna het normale verloop van de macro te hervatten zonder het "einde als" voor "Volgende i" te vergeten

 

 

1 like

Je bent een @remrem baas, daarmee begrijp ik beter hoe macro werkt. =)

 

De naam is gewoon de naam van het onderdeel, later neem ik gewoon de naam van de configuratie

(De T1, T2, T3, etc.. worden configuraties en niet langer onderdelen)

De naam van de config is niet zo belangrijk, zolang ik maar het logboek van het onderdeel in de naam van de Dxf krijg.

 

Ik voeg het betreffende document toe

 

 


corniere.zip

We naderen de perfectie.

 

Om het probleem van het platte patroon te omzeilen,  heb ik afgeleide configuraties gemaakt in plaats van de klassieke cofiguraties.

Dus ik eindig met alleen mijn uitgevouwen met de juiste naam die eraan is gekoppeld.

 

Gewoon @remrem als je een kijkje kunt nemen in mijn kamerfamilie, kijk of je hetzelfde zou hebben gedaan.

 

Nogmaals bedankt! =)


resultat_2.png
1 like

Kleine verbetering:

 

Om alles vlekkeloos te laten verlopen, wil ik de om van de kamer (PatchNoExtension) vervangen door een persoonlijke eigenschap.

 

Ik heb in mijn familie van kamers en in mijn eigenschappen een "type" regel toegevoegd

Ik zou graag willen dat het verschijnt in de naam van de dxf.

Voorbeeld: T1 (type) LG 16455 (configuratienaam).dxf