Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Layer in automatisch erstellter DXF-Datei

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Roman1000 an!   Senden Sie eine Private Message an Roman1000  Schreiben Sie einen Gästebucheintrag für Roman1000

Beiträge: 6
Registriert: 13.03.2008

erstellt am: 14. Mrz. 2008 08:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Ralf G an!   Senden Sie eine Private Message an Ralf G  Schreiben Sie einen Gästebucheintrag für Ralf G

Beiträge: 44
Registriert: 29.10.2004

IV8, SPI
PIV 3000 GK Nvidia Qudro4 380XGL

erstellt am: 17. Mrz. 2008 19:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roman1000 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Roman1000 an!   Senden Sie eine Private Message an Roman1000  Schreiben Sie einen Gästebucheintrag für Roman1000

Beiträge: 6
Registriert: 13.03.2008

erstellt am: 05. Mai. 2008 13:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von SKING an!   Senden Sie eine Private Message an SKING  Schreiben Sie einen Gästebucheintrag für SKING

Beiträge: 30
Registriert: 01.08.2007

Inventor 9

erstellt am: 08. Mai. 2008 12:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roman1000 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von TimC an!   Senden Sie eine Private Message an TimC  Schreiben Sie einen Gästebucheintrag für TimC

Beiträge: 21
Registriert: 26.02.2008

erstellt am: 08. Mai. 2008 13:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roman1000 10 Unities + Antwort hilfreich

 
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


Sehen Sie sich das Profil von Roman1000 an!   Senden Sie eine Private Message an Roman1000  Schreiben Sie einen Gästebucheintrag für Roman1000

Beiträge: 6
Registriert: 13.03.2008

erstellt am: 13. Mai. 2008 07:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für Eure Hilfe und die schnellen Antworten!

Wird sofort verwirklicht, jetzt macht der Arbeitsablauf richtig Laune!

Grüße

Roman

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Eman1
Mitglied
Maschinenbau Ingenieur


Sehen Sie sich das Profil von Eman1 an!   Senden Sie eine Private Message an Eman1  Schreiben Sie einen Gästebucheintrag für Eman1

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Roman1000 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz