| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Layer in automatisch erstellter DXF-Datei (2869 mal gelesen)
|
Roman1000 Mitglied
Beiträge: 6 Registriert: 13.03.2008
|
erstellt am: 14. Mrz. 2008 08:14 <-- editieren / zitieren --> Unities abgeben:
Moin allerseits! Ich habe ein Makro geschrieben, das aus einer Baugruppe bestimmte Blechteile abwickelt und als DXF-Datei speichert. Den Datenexport übernimmt das DataIO-Objekt. Hier mal die Deklaration: Code: Dim oDataIO As DataIO Dim sOut As String sOut = "FLAT PATTERN DXF?" _ + "AcadVersion=R12" _ + "&OuterProfileLayer=Aussenkontur" _ + "&InteriorProfilesLayer=Innenkonturen" _ + ""
Den OuterProfileLayer aus Inventor benenne ich als "Aussenkontur", den InteriorProfilesLayer als "Innenkonturen". In die DXF schreibe ich dann folgendermaßen: Code: 'DXF WLA erstellen Dim oDoc_WLA As Document Dim DXFWLA As String DXFWLA = "WLA.dxf" Set oDoc_WLA = oApp.Documents.Open(WLA, False) Set oDataIO = oDoc_WLA.ComponentDefinition.DataIO oDataIO.WriteDataToFile sOut, PfadOUT & DXFWLA Call oDoc_WLA.Close(True)
Ich nutze für die erstellung der Blechteile ein Stanzwerkzeug mit Rundungen. Um das Stanzwerkzeug zu platzieren erstelle ich eine Skizze mit Mittelpunkten. Wenn ich die DXF-Dateien mit meinem Makro erstelle, werden bei den DXFs automatisch zwei zusätzliche Layer erstellt: IV_ARC_CENTERS für die Mittelpunkte der Bögen sowie IV_TOOL_CENTER_DOWN für die "Ansetzpunkte" der Stanzwerkzeuge.
Wenn ich jetzt im CAM-Programm (CNCcut zum Laserschneiden) die DXF öffne und die Schneidbahnen simuliere, fährt das Programm zuerst die Konturen ab, danach aber auch die Punkte auf den Layern IV_ARC_CENTERS und IV_TOOL_CENTER_DOWN. Jetzt zu meiner Frage: Ist es möglich die beiden Layer nicht mit in die DXF zu schreiben? Wenn ich in Autocad die Datei öffne, die beiden Layer deaktiviere und nur den Inhalt von "Außenkontur" und "Innenkonturen" angezeigt bekomme, diesen dann per 'Kopieren mit Basispunkt' in eine neue Datei kopiere, liest das CAM-Programm die Datei richtig und schneidet auch nur die gewünschten Konturen. In der DXF sind ja die Bogenmittelpunkte ohnehin enthalten: Code: AUSSENKONTUR 10 0.0 20 490.0 30 0.0 11 70.0 21 490.0 31 0.0 0 ARC 5 1F0 8
Somit kann ich ja eigentlich auf die Layer verzichten. Im voraus schon mal vielen Dank für die Hilfe! Grüße Roman Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf G Mitglied Unternehmer
Beiträge: 44 Registriert: 29.10.2004 IV8, SPI PIV 3000 GK Nvidia Qudro4 380XGL
|
erstellt am: 17. Mrz. 2008 19:15 <-- editieren / zitieren --> Unities abgeben: Nur für Roman1000
Hallo Roman, dafür hätte ich drei Vorschläge, wobei ich nur den letzten praktiziere und du die anderen selbst probieren müsstest.
1. Du suchst und machst eine Vorgabe wie + "&ARCCENTERSLayer=" oder mit einem ungültigen DXF Layer wie "&ARCCENTERSLayer=.,;" ich weiß weder ob diese Optionen existieren oder ohne fehler duchlaufen also testen wenn es geht ist es vielleicht am einfachsten. 2. du rufst die DXF datei per VBA automatisierung in Deinem autocad auf und erledigst dort das löschen der Dateils mit VBA, speicherst und schließt die Datei. Das geht sogar in einem unsichtbaren Autocad. 3. Du legst eine Funktion in *.lsp an die sämtliche erforderlichen nacharbeiten erledigt und die Automatisch ausgeführt wird wenn du eine Zeichnung öffnest. Letzteres praktizieren wir mit sehr vielen Nacharbeiten wie Kontourverschließen, Aussenkontouren und Innenkontouren in eine bestimmte Laufrichtung zwingen und Startpunkt ganz links oben. Leider haben wir dann noch einige Dinge die sich nicht automatisieren lassen und deshalb können wir das schließen und wegspeichern nicht automatisieren aber es hilft schon immer einen aufgeräumten Status herstellen. In meiner Blechausgabe sind auch oft an den Bohrungen Halbkreise und Volkreise übereinander weil diese für beide Blechseiten ausgegeben werden. Für Senkungen braucht es auch eine Lösung - also eine große Spielwiese. Viel Vergnügen wünscht der Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roman1000 Mitglied
Beiträge: 6 Registriert: 13.03.2008
|
erstellt am: 05. Mai. 2008 13:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, und erstmal vielen Dank für die schnelle Hilfe. Methode 1 hab ich als erstes ausprobiert, ich habe den Layer "&ARCCENTERSLayer=.;," genannt, ihm also einen für Autocad ungültigen Namen gegeben. Als der Layer dann nach öffnen der Zeichnung nicht existierte, war die Freude groß. Aber Autocad ist ja auch nicht doof, hat den Inhalt des Layers "&ARCCENTERSLayer" einfach in den Layer 0 gepackt. Den Layer "&ARCCENTERSLayer", der die Bogenmittelpunkte beschreibt, kann ich auch nicht einfach über das Layerfenster löschen, die erscheinende Fehlermeldung sagt, daß ich keine Layer mit Objekten löschen kann. Nun habe ich folgendes ausprobiert: Ich öffne die mit meinem VBA-Makro erstellte DXF ganz normal in Autocad. Hier deaktiviere ich in der Layersteuerung die Layer, die ich zum Laserschneiden nicht gebrauchen kann, also bekomme ich nur meine Innen- und Außenkonturen angezeigt. Diese markiere ich, dann "Kopieren mit Basispunkt", eine neue Datei geöffnet und eingefügt. Dann habe ich keine "störenden" Layer mehr, sondern nur die Konturen, die ich brauche. Jetzt mein Gedanke: Kann man das mit einem sogenannten "unsichtbaren Autocad" hinbekommen? Ich bin nicht so der LISP-Profi, daher löse ich das ganze lieber per VBA, aber was nicht ist, das kann man lernen Für einen Lösungsansatz wäre ich sehr dankbar! Grüße Roman Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SKING Mitglied Konstrukteur
Beiträge: 30 Registriert: 01.08.2007 Inventor 9
|
erstellt am: 08. Mai. 2008 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für Roman1000
Hallo Roman1000, um die lässtigen Punkte loszuwerden, gehe ich folgendermaßen vor: (natürlich alle Abläufe mit VBA in Inventor) 1. DXF von der Abwicklung erstellen 2. eine idw-Vorlage die ohne Rahmen und Schriftkopf ist öffnen 3. die erstellte DXF importieren ( dabei lässt Inventor die Punkte weg) 4. die Zeichnung als DXF speichern In der idw-Vorlage kann man auch gleich die Verdecktelinien und Gewindelinie sowie alle Layer die man nichtbenötigt ausschalten, damit diese nicht in der DXF auftauchen. Ich hoffe Du kannst damit was anfangen. Gruß SKING Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
TimC Mitglied
Beiträge: 21 Registriert: 26.02.2008
|
erstellt am: 08. Mai. 2008 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für Roman1000
Zitat: Original erstellt von Roman1000:
Den Datenexport übernimmt das DataIO-Objekt. Hier mal die Deklaration:Code: Dim oDataIO As DataIO Dim sOut As String sOut = "FLAT PATTERN DXF?" _ + "AcadVersion=R12" _ + "&OuterProfileLayer=Aussenkontur" _ + "&InteriorProfilesLayer=Innenkonturen" _ + ""
Den [i]OuterProfileLayer aus Inventor benenne ich als "Aussenkontur", den InteriorProfilesLayer als "Innenkonturen".[/i]
Hallo Roman, Du kannst dem Inventor mittels "&InvisibleLayers=" die Layer übergeben die du nicht exportieren möchtest... Dadurch ist die Nachbearbeitung durch AutoCAD überflüssig. Gruß, Tim [Diese Nachricht wurde von TimC am 08. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roman1000 Mitglied
Beiträge: 6 Registriert: 13.03.2008
|
erstellt am: 13. Mai. 2008 07:08 <-- editieren / zitieren --> Unities abgeben:
|
Eman1 Mitglied Maschinenbau Ingenieur
Beiträge: 33 Registriert: 22.02.2007 SW 2016 SP5, WIN 10 X64, NVIDIA Quadro M4000, INVENTOR 2010, PAC4SW, TOTAL COMMANDER
|
erstellt am: 23. Dez. 2008 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für Roman1000
Hello Everyone, Kann mir jemand sagen ob der eintrag "invisibleLayers" in 2009 funktioniert. Bei mir wird the layer "aux" immer sichtbar exportiert. Ist das ein program-error oder ist da etwas am code falsch (siehe unten) sOut = "FLAT PATTERN DXF?" _ + "AcadVersion=R12" _ + "&OuterProfileLayer=cut" _ + "&InteriorProfilesLayer=cut" _ + "&FeatureProfilesLayer=aux" _ + "&TangentLayer=aux" _ + "&BendLayer=aux" _ + "&ToolCenterLayer=punch" _ + "&ArcCentersLayer=punch" _ + "&InvisibleLayers=aux" _ + "&MergeProfilesIntoPolyline=TRUE" _ + "&MergeOuterContour=true" _ ------------------ XP Pro, Inventor 2009 & SW 08, Grafic Quadro 750XL, Ram 1500,CPU 3.0 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|