bart
16 november 2015 om 10:09
1
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
bart
16 november 2015 om 10:13
2
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
remrem
16 november 2015 om 10:21
3
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
bart
16 november 2015 om 10:26
4
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
remrem
16 november 2015 om 10:33
6
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
remrem
16 november 2015 om 10:36
7
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
bart
16 november 2015 om 10:43
9
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
bart
16 november 2015 om 10:47
10
@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
remrem
16 november 2015 om 10:53
11
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
bart
16 november 2015 om 10:54
12
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?
bart
16 november 2015 om 10:57
13
@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
remrem
16 november 2015 om 12:03
15
Hier is het tekstbestand met commentaar.
macro_export_famille_de_piece_dxf.txt
1 like
remrem
16 november 2015 om 12:05
16
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
bart
16 november 2015 om 12:57
18
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
bart
16 november 2015 om 13:05
19
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
bart
16 november 2015 om 13:21
20
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