Makroexport aufgeklappt dxf BIS

Hallo ihr alle

Ich komme auf den Vorwurf zurück, der in dieser Frage erwähnt wird.

Zusammenfassend lässt sich sagen, dass ich auf der einen Seite eine Excel-Datei habe, die den Auftrag des Kunden darstellt, und auf der anderen Seite eine parametrisierte Solidworks-Datei.

Ich möchte einfach, dass Sw jede der Konfigurationen meiner Teilefamilie auffaltet und sie in dxf mit dem Namen der Konfiguration exportiert.

 

Also habe ich das Makro hier heruntergeladen.

 

Aber ich komme bei einigen Punkten nicht weiter.

- Wenn ich das Makro starte, erstellt es durch das Lesen meiner Teilefamilie ungefaltete Zustände (Flat Pattern) für alle meine Konfigurationen. Kein Problem, aber das Problem ist, dass es auch diese Konfigurationen exportiert, so dass ich am Ende doppelte Teile habe.

 

- Mein Teil muss 2 Mal neu erstellt werden, damit die Probleme korrekt aufgelöst werden. Also ich möchte, dass Sw vor dem Export jeder Config das Teil 2 mal vor jeder dxf-Aufnahme neu aufbaut.

 

Ich denke, das war's auch schon...

Damit wäre ich fast am Ende meines "Projekts"

 

Danke =)

 

 

1 „Gefällt mir“

Zusätzliche Informationen für diejenigen, die es nicht wissen, ich habe keine Kenntnisse über Vba ^^

 

Ich habe den Siebdruck des Basismakros angehängt


macro_de_base.png

Für die Rekonstruktion der Teile:

Verwendet die Methode: Part.ForceRebuild3

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

und hier (für alle Konfigurationen): http://help.solidworks.com/2015/english/api/sldworksapi/Forcibly_Rebuild_All_Configurations_Example_VB.htm

2 „Gefällt mir“

Im aktuellen Makro habe ich:

 

bRebuild = swModel.ForceRebuild3(Falsch)

Wenn Sie Ihr "falsch" in "wahr" ändern, löst das das Problem nicht?

1 „Gefällt mir“

Sie müssen sicherstellen, dass Sie das richtige Setup neu erstellen. Hier ist es das "Flat Pattern", das Sie interessiert.

Entweder, wie im zweiten Beispiel, erstellen Sie eine Liste aller Konfigurationen und erstellen sie nacheinander neu.

Oder Sie stellen sicher, dass Sie die richtige Konfiguration mit dieser Methode auswählen: swModel.ShowConfiguration2(sConfigName)

Anschließend erstellen Sie das Modell neu.

2 „Gefällt mir“

@Coin37coin:

Dies ist ein Rückgabewert, mit dem Sie feststellen können, ob die Rekonstruktion Fehler zurückgegeben hat: http://help.solidworks.com/2015/english/api/sldworksapi/SOLIDWORKS.Interop.sldworks~SOLIDWORKS.Interop.sldworks.IModelDoc2~ForceRebuild3.html

2 „Gefällt mir“

Auf der anderen Seite verstehe ich das Problem nicht, wenn du sagst :

 

"- Wenn ich das Makro starte, erstellt es durch das Lesen meiner Teilefamilie ungefaltete Zustände (Flat Pattern) für alle meine Konfigurationen. Keine große Sache, aber das Problem ist, dass es auch diese Konfigurationen exportiert, so dass ich am Ende doppelte Teile habe." ... Ist es nicht das, was Sie fragen, wenn Sie sagen: "Ich möchte nur, dass Sw jede der Konfigurationen in meiner Teilefamilie entfaltet, wenn Sie das Makro starten und es mit dem Namen der Konfiguration nach dxf exportieren"?

 

(Ich sage nicht, dass du falsch liegst, ich sage, dass ich ;) nicht verstehe)

 

Bearbeiten: Haaa ok Remrem. Deshalb funktioniert es nicht so, wie ich es mir wünsche, sowohl das Wahre als auch das Falsche. Ich dachte, Sie würden eine Funktion ein- oder ausschalten

1 „Gefällt mir“

Yes@remrem
,

Grundsätzlich sind mir "gefaltete" Konfigurationen egal.

Was mich interessiert, ist, alle Flatpattern-Konfigurationen zu exportieren, aber ohne dass Flat Pattern im Namen erscheint.

 

Im beigefügten Beispiel habe ich nur eine einzelne Konfiguration erstellt, um einen Test durchzuführen.

Die Konfiguration heißt "1625"

Ich bekomme diese Dateien

 

 


resultat.png

@Coincoin, wenn ich grundsätzlich nur eine Konfiguration auf beiden möchte

 

Ich will nur die Entfaltung des Raumes. Also ja, nur die "Flat Pattern"-Konfiguration, aber Entfernen des Flatpattern-Suffixes

1 „Gefällt mir“

Angesichts des Codes des Makros ist es normal:

Seit:

  • Sie öffnen die SW-Datei.
  • Sie listen die Konfigurationen auf.
  • Für jede Konfiguration:
    • Sie wählen die Konfiguration aus
    • Sie bauen neu auf
    • Sie exportieren die Entfaltungsansicht mit dem Namen der config dnas dem Namen der dxf-Datei

 

Haben Sie eine Möglichkeit, die erkannten Konfigurationen zu unterscheiden?

Sind alle Dateien aufgeklappt?

Können Sie Ihren vollständigen Code in einer txt posten??

2 „Gefällt mir“

Das ist der Teil, den ich nur schwer begreifen kann:

 

"FilePath als Zeichenfolge dimmen
Pfadgröße so lange dimmen
Dim PathNoExtension als Zeichenfolge
Dim NewFilePath als Zeichenfolge

DateiPfad = swModel.GetPfadName
PfadGröße = Zeichenfolgen.Len(Dateipfad)
PfadNoExtension = Saiten.Links(DateiPfad, Pfadgröße - 6)

NewFilePath = PfadNoExtension + sConfigName & ". DXF"

Abwicklung exportieren
bRet = swModel.ExportFlatPatternView(NewFilePath, 1)

Weiter i

Ende Sub"

 

Was ich daraus ableite, exportiert Sw jede Konfiguration mit dem Namen des Teils, den Namen der Konfiguration mit .dxf

Und dann alle "Flat Pattern"-Konfigurationen exportieren

Das stimmt?

 

 

@remrem

 

Um meine verschiedenen Teile zu erkennen, gibt es seinen Namen (Typ 1) und seine Längenkonfiguration (z.B. 1625)

Oder T1 1625.dxf, am besten wäre es, T1 LG 1625.dxf zu haben

 

Ich hänge das Makro an

 

Dort schaffe ich es, den Teilenamen "LG"config name.dxf zu erhalten

+ Teilename "LG" "Konfigurationsname" flaches Muster.dxf


macro_export_famille_de_piece_dxf.txt

Nein, es wird ein neuer Name erstellt und dann das flatPattern exportiert, indem das neue daran angehängt wird

 

1 „Gefällt mir“

Hier ist die kommentierte Textdatei.


macro_export_famille_de_piece_dxf.txt
1 „Gefällt mir“

Hier ist ein Bild mit Farben zum besseren Verständnis.

Erstellt mit Notepad++

 

[Bearbeiten: ]

Für den "Namen" ist es eine Eigenschaft?

Ist die Länge eine Eigenschaft oder nur iclus im Konfigurationsnamen?

Können Sie mir ein Standardteil für Tests zusenden?


capture.png
2 „Gefällt mir“

Um das Problem zu umgehen, würde ich Ihnen raten, die folgende Zeile nach "FilePath=swModel.GetPathName" hinzuzufügen

 

if String.Left(sConfigName, pathSize-15) = "SM-FLAT-PATTERN" then 'Prüfe, ob die letzten 15 Zeichen des Namens mit SM-FLAT-PATTERN übereinstimmen  

Nächstes i' Wenn ja, nächste Konfiguration

oder

 

Und danach den normalen Verlauf des Makros fortzusetzen, ohne das "Ende wenn" vor dem "Nächsten i" zu vergessen

 

 

1 „Gefällt mir“

Du bist ein @remrem Chef, damit verstehe ich besser, wie Makro funktioniert. =)

 

Der Name ist nur der Name des Teils, später nehme ich einfach den Namen der Konfiguration

(Die T1, T2, T3 usw. werden zu Konfigurationen und nicht mehr zu Teilen)

Der Name der Konfiguration ist nicht allzu wichtig, solange ich das Protokoll des Teils im Namen der Dxf bekomme.

 

Ich füge das betreffende Dokument bei

 

 


corniere.zip

Wir nähern uns der Perfektion.

 

Um das Problem der Abflachung zu umgehen,  habe ich anstelle der klassischen Konfigurationen abgeleitete Konfigurationen erstellt.

Am Ende habe ich also nur meine entfaltete mit dem richtigen Namen, der damit verbunden ist.

 

Nur @remrem, wenn Sie einen Blick auf meine Zimmerfamilie werfen können, sehen Sie, ob Sie das Gleiche getan hätten.

 

Danke noch einmal! =)


resultat_2.png
1 „Gefällt mir“

Kleine Verbesserung:

 

Um alles fehlerfrei zu machen, möchte ich das om des Raumes (PatchNoExtension) durch eine persönliche Eigenschaft ersetzen.

 

Ich habe in meiner Zimmerfamilie und in meinen Unterkünften eine Zeile "Typ" hinzugefügt

Ich möchte, dass es im Namen des DXF erscheint.

Beispiel: T1(Typ) LG 16455(Konfigurationsname).dxf