Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  DXF per I-Logic

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: Inventor besser verstehen - Fläche löschen
Autor Thema:   DXF per I-Logic (4911 mal gelesen)
aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 02. Mai. 2013 08:16    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 Moin,

ich bin auf der Suche nach einer I-Logic Regel die erst dann eine DXF Datei beim speichern der Zeichnungsableitung erstellt wenn es bereits eine DXF Datei auf dem Laufwerk gibt.

Der Sinn dahinter soll sein das einmalig per Hand eine DXF erstellt wird wenn es nötig ist und diese Datei dann immer mit dem aktuellen Stand überschrieben wird um eine aktuelle DXF für den Zuschnitt zu haben.

Als Erweiterung wäre es noch nett wenn die Datei nicht im Arbeitsverzeichnis sondern auf einem Server abgelegt wird an den die Werkstattkollegen dran kommen.

mfg Uwe

------------------
mfg Uwe

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

mikromeister
Mitglied
Dipl.Ing


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

Beiträge: 289
Registriert: 18.12.2003

IV 2018 @ Win10 + Vault basic

erstellt am: 06. Mai. 2013 12:22    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 aquadody 10 Unities + Antwort hilfreich

Kannst du nicht einfach prinzipiell ein dxf erstellen und aktualisieren?
Bei mir wird per i-logic auf Kommando immer gleichzeitig ein dwf ein pdf und ein dxf erstellt.
Dann hat man automatisch immer was man braucht und der Rest ist halt Müll.

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 07. Mai. 2013 07:16    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,

ja grundsätzlich funktioniert das, auch mit iLogic.

Interessant wäre halt ein Automatismus der erst dann die Neutralformate aktualisiert wenn ich sie einmal händisch erstellt habe.

------------------
mfg Uwe

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 23. Mai. 2013 10:26    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 Zusammen,

kann mir denn keiner weiterhelfen?

Ich kann mir irgendwie nicht vorstellen das es nicht möglich sein soll Neutralformate per I-Logic Regel auf ein anderes Laufwerk als das Arbeitsverzeichnis zu speichern...

Da bin ich wohl gezwungen Geld in die Hand zu nehmen und uns einen Job programmieren zu lassen....

------------------
mfg Uwe

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

muellc
Ehrenmitglied V.I.P. h.c.
Inventor Administrator



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

Beiträge: 3476
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 23. Mai. 2013 10:37    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 aquadody 10 Unities + Antwort hilfreich

Wenn du doch mit PSP arbeitest, dann lass doch den jobserver diese Arbeit machen.
Bei uns werden bei der Freigabe der Dokumente automatisch PDF und DXF erzeugt.
Da an einer Freigegebenen Zeichnung ja keiner mehr was ändern kann, reicht das vollkommen aus.

------------------
Gruß, Gandhi
It's not a bug, it's a feature!

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

77Andreas
Mitglied
Techniker


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

Beiträge: 244
Registriert: 17.10.2012

Win 7 SP1.0 / 64 bit / IV 2014

erstellt am: 23. Mai. 2013 10:41    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 aquadody 10 Unities + Antwort hilfreich

DXF - auslesen in iLogic

'Pfad & Dateinamen auslesen lassen
path_and_name = ThisDoc.PathAndFileName(False) ' without extension
'Dokument als DXFverntlichen
ThisDoc.Document.SaveAs(path_and_name & ".DXF" , True)


Vielleicht hilft das.....
Nicht vergessen dies in eine VORLAGE einzubauen!

------------------
-----------------------------
Thxs  77Andreas

Tippfehler sind gewollt

Einen Vorsprung im Leben hat, wer da anpackt, wo die anderen erst einmal reden.
John F. Kennedy

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 23. Mai. 2013 10: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

@muellc

"leider" arbeiten wir nicht mehr mit PSP da sind nur noch unsere Altdaten, wir sind auf Vault umgestiegen und da geht das leider nicht im Standard.

@77Andreas
Die Regel legt doch aber die DXF "nur" am Ursprungsort ab oder?

------------------
mfg Uwe

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

muellc
Ehrenmitglied V.I.P. h.c.
Inventor Administrator



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

Beiträge: 3476
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 23. Mai. 2013 11:31    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 aquadody 10 Unities + Antwort hilfreich

Ja, der Pfad wird anhand der IDW ausgelesen.
Wenn du alle deine DXF in einen zentralen Ordner legen willst könnte dir das hier helfen:

Code:

' Get the DXF translator Add-In.
Dim DXFAddIn As TranslatorAddIn
DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
'Set a reference to the active document (the document to be published).
Dim oDocument As Document
oDocument = ThisApplication.ActiveDocument
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
' Create a NameValueMap object
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
' Create a DataMedium object
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
' Check whether the translator has 'SaveCopyAs' options
If DXFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
Dim strIniFile As String
strIniFile = "C:\temp\dxfout.ini"
' Create the name-value that specifies the ini file to use.
oOptions.Value("Export_Acad_IniFile") = strIniFile
End If
'Set the destination file name
oPath = "C:\test\"
oName = ThisDoc.FileName(False) ' without extension
oDataMedium.FileName = oPath & oName & ".dxf"
'oDataMedium.FileName = ThisDoc.PathAndFileName(False) & ".dxf"
'Publish document.
DXFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
'Launch the dxf file in whatever application Windows is set to open this document type with
'i = MessageBox.Show("Preview the DXF file?", "Title",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
'If i = vbYes Then ThisDoc.Launch(oDataMedium.FileName)

Das ist eine abwandlung des von Inventor mitgelieferten Snippets, daher auch die verweise auf die Ini Dateien im Code.

Unter oPath legst du den Ordner fest, in dem die Dateien gespeichert werden sollen.

------------------
Gruß, Gandhi
It's not a bug, it's a feature!

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 23. Mai. 2013 11:47    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

Hi,

super das ist schon nahe dran an meiner Wunschvorstellung, leider legt er dann ja alle DXF Dateien in den selben Ordner oder?

Es wäre noch besser wenn er die Daten dann in der gleichen Ordnerstruktur ablegen würde wie auf dem Lokalen LW, nur eben auf dem Server. Die Struktur ist schon vorhanden da dort die DWFs abgelegt werden.

Kann man dazu evtl. den Pfad zurechtschneiden?

Lokale Ablage:
C:\Ebene1\Konstruktion\....
Server:
X:\Ebene1\Ebene2\Konstruktion\.....

Unterhalb Konstruktion gleichen sich die Strukturen.


------------------
mfg Uwe

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

muellc
Ehrenmitglied V.I.P. h.c.
Inventor Administrator



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

Beiträge: 3476
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 23. Mai. 2013 12:12    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 aquadody 10 Unities + Antwort hilfreich

Da bin ich ehrlich gesagt überfragt, da meine iLogic kenntnisse eher Bruchstückhaft sind.

Problematisch finde ich hier allerdings die Wiederverwendung der Teile, wenn du ein Bauteil aus einem alten Projekt in deiner Konstruktion verwendest, liegt die DXF davon trotzdem noch im alten Projektordner.

Ein eindeutiger Dateiname in einem Sammelordner würde hier weniger Sucharbeit machen.

------------------
Gruß, Gandhi
It's not a bug, it's a feature!

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 23. Mai. 2013 15:30    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

Ja, das mit der Mehrfachverwendung macht mir auch ab und an Kopfschmerzen, kommt aber so selten vor das wir meist ein neues Bauteil erzeugen. Bei uns ist es schon ein Serienteil wenn es mal 4 Stück davon gibt, von daher ist das nicht so ein riesen Aufwand.

------------------
mfg Uwe

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

muellc
Ehrenmitglied V.I.P. h.c.
Inventor Administrator



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

Beiträge: 3476
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 23. Mai. 2013 16:00    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 aquadody 10 Unities + Antwort hilfreich

Code:

path_and_name = ThisDoc.PathAndFileName(False) ' without extension
newname = "d" & Right(path_and_name,Len(path_and_name)-1)
ThisDoc.Document.SaveAs(newname & ".DXF" , True)

Dieser Code liest den Pfad und Dateinamen aus, Ändert den Laufwerksbuchstaben in d und speichert als DXF ab.
Allerdings werden hierbei keine Unterordner angelegt, wenn also die Ordnerstruktur noch nicht vorhanden ist gibt es eine Fehlermeldung

------------------
Gruß, Gandhi
It's not a bug, it's a feature!

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

muellc
Ehrenmitglied V.I.P. h.c.
Inventor Administrator



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

Beiträge: 3476
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 24. Mai. 2013 13:02    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 aquadody 10 Unities + Antwort hilfreich

So, zum Abschluss noch eine Funktion die auch Verzeichnuisse anlegt.

Code:

Alterpfad = ThisDoc.Path
Dateiname = ThisDoc.FileName(False) ' without extension
Neueslaufwerk = "D:\" 'hier kommt der neue Laufwerksbuchstabe hin
Dateiendung = ".DXF" 'hier die gewünschte Dateiendung eintragen
Neuerpfad = Neueslaufwerk & Right(Alterpfad,Len(Alterpfad)-3) & "\"

If Not System.IO.Directory.Exists(Neuerpfad) Then
    System.IO.Directory.CreateDirectory(Neuerpfad)
End If

ThisDoc.Document.SaveAs(Neuerpfad & Dateiname & Dateiendung , True)


Unter "Neueslaufwerk" einfach den gewünschten Laufwerksbuchstaben angeben.
Auf diesem Laufwerk wird dann die gleiche Ordnerstruktur erstellt, in der deine Startdatei liegt.

------------------
Gruß, Gandhi
It's not a bug, it's a feature!

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 24. Mai. 2013 13:27    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 Moin,

sehr sehr schön, genau das hab ich gesucht, perfekt.

------------------
mfg Uwe

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

pietro46
Mitglied
Technischer Zeichner / Konstrukteure


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

Beiträge: 12
Registriert: 28.01.2009

erstellt am: 26. Jun. 2013 14:25    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 aquadody 10 Unities + Antwort hilfreich

Hallo noch einmal zusammen.

Ich habe genau so die Code eingegeben
path_and_name = ThisDoc.PathAndFileName(False) ' without extension
newname = "d" & Right(path_and_name,Len(path_and_name)-1)
ThisDoc.Document.SaveAs(newname & ".DXF" , True)

Aber kommt bei mir ein Fehler

Fehler in Regel: SaveDXF in Dokument: Zeichnung4
Das Argument Length muss größer als oder gleich 0 (null) sein.

Kann jemand mir weiter helfen?
Danke voraus

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

muellc
Ehrenmitglied V.I.P. h.c.
Inventor Administrator



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

Beiträge: 3476
Registriert: 30.11.2006

Inventor 2017.4.12 64 bit
Windows 10 Enterprise 64 bit
3DEXPERIENCE R2016x
--------------------
HP Z-Book 15 G4
32 Gig Ram
NVIDIA Quadro M2200
2x HP E243i

erstellt am: 26. Jun. 2013 21:20    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 aquadody 10 Unities + Antwort hilfreich

Existiert der gewünschte Ordner auf dem Laufwerk d?

absonsten muss der Befehl hier ausgeführt werden:

Code:
If Not System.IO.Directory.Exists(Neuerpfad) Then
    System.IO.Directory.CreateDirectory(Neuerpfad)
End If

oder dumusst die Verzeichnisse per Hand erstellen

Deswegen hatte ich in meinem Code auch Pfad und Dateiname voneinander getrennt.

------------------
Gruß, Gandhi
It's not a bug, it's a feature!

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 15. Dez. 2016 10:16    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 aquadody 10 Unities + Antwort hilfreich

Hallo zusammen!

Ich würde den Beitrag gerne nochmals aus der Versenkung holen und dabei auf eine -meiner Meinung nach- noch nicht geklärte Frage eingehen:

Wie kann man der Regel sagen, dass bereits vorhandene Dateien ohne Rückfrage überschrieben werden sollen? Mein Code basiert auf dem o.g. und läuft halbwegs, allerdings hätte ich gerne beim Ausführen der Regel die alten Dateien durch neue, gleichnamige Dateien überschrieben.

Kann das die Regel überhaupt oder ist die Rückfrage unabhängig vom Inventor irgendwo in Windows versteckt? Wenn ja, wie komme ich da ran?

Danke!
Thomas

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

aquadody
Mitglied
Konstrukteur


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

Beiträge: 100
Registriert: 21.01.2008

Dell Precision 7540
32GB RAM
Windows 10
NVIDIA Quadro RTX3000
Inventor 2020.1
Vault 2020

erstellt am: 15. Dez. 2016 11:25    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

Hi,

die dxf wird bei mir immer Kommentarlos überschrieben, anders würde es ja keinen Sinn machen.

mfg Uwe

------------------
mfg Uwe

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

Ruzy5624
Mitglied
Konstruktionsleiter / staatl. gepr. Techniker


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

Beiträge: 276
Registriert: 01.07.2015

Product Design Suite 2018 Ultimate
Visual Studio 2017
Windows 10 Pro
Intel Xeon E3-1245 v5 @ 3,5GHz
Nvidia Quadro M4000 8GB
RAM 32GB
2x 24" Monitore FullHD
SpaceMouse Pro

erstellt am: 15. Dez. 2016 12:31    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 aquadody 10 Unities + Antwort hilfreich

Genau so ist es... Die Datei wird immer wortlos überschrieben,
vorausgesetzt das überschreiben ist möglich.

Möglich wäre das Überschreiben zum Beispiel nicht, wenn einer die Datei noch geöffnet hat, wenn die Datei in einem Pfad liegt wo der Anwender nicht die notwendigen Rechte besitzt.

Das Überschreiben der Datei könnte man abfangen mit einer If-Verzweigung, in zum Beispiel dieser From:

Code:
If System.IO.FileExists("DateiPfadUndName") then
'Hier der Code der ausgeführt wird falls Datei bereits vorhanden ist
Else
'Hier der Code der ausgeführt wird falls die Datei noch nicht vorhanden ist
End If

------------------
Mit Besten Grüßen

Ruzy5624

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 15. Dez. 2016 16:06    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 aquadody 10 Unities + Antwort hilfreich

Hallo zusammen!

Bei mir ist das eben leider nicht der Fall, ich werde bei bestehenden Dateien immer gefragt, ob ich diese ersetzen will. Der Code unterscheidet sich aber nicht von o.g., lediglich die Namensfindung wurde an unsere Bedürfnisse angepasst.

Im Ordner selbst kann ich die Dateien ohne Probleme von Hand löschen, dann werden die aktualisierten Dateien logischerweise auch ohne Rückfrage erzeugt.

Interessanterweise meint AutoCAD beim öffnen der Dateien, dass diese derzeit benutzt werden und deshalb nur schreibgeschützt geöffnet werden können, obwohl nachweislich kein anderer die Datei offen hat.

Kann mir jemand einen Wink mit dem Zaunpfahl geben, wo das Problem liegen könnte?

Danke!
Thomas

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

Ruzy5624
Mitglied
Konstruktionsleiter / staatl. gepr. Techniker


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

Beiträge: 276
Registriert: 01.07.2015

Product Design Suite 2018 Ultimate
Visual Studio 2017
Windows 10 Pro
Intel Xeon E3-1245 v5 @ 3,5GHz
Nvidia Quadro M4000 8GB
RAM 32GB
2x 24" Monitore FullHD
SpaceMouse Pro

erstellt am: 15. Dez. 2016 19: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 Nur für aquadody 10 Unities + Antwort hilfreich

Nochmal für mein Verständnis...

Wenn due eine Datei als beispielsweise DXF mittels des Codes exportierst dann fragt er dich ob du die bestehende Datei ersetzten willst und du kannst dies mit ja oder nein beantworten?
Oder wirft er einen Fehler, der besagt das die DXF Datei nicht erzeugt werden kann?

------------------
Mit Besten Grüßen

Ruzy5624

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 16. Dez. 2016 08:44    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 aquadody 10 Unities + Antwort hilfreich

Hallo Ruzy!

Er fragt mich, ob ich überschreiben will.
Das bestätige ich mit ok, er arbeitet und fragt mich für das nächste Blatt der Zeichnung.

Grüße,
Thomas

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

Ruzy5624
Mitglied
Konstruktionsleiter / staatl. gepr. Techniker


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

Beiträge: 276
Registriert: 01.07.2015

Product Design Suite 2018 Ultimate
Visual Studio 2017
Windows 10 Pro
Intel Xeon E3-1245 v5 @ 3,5GHz
Nvidia Quadro M4000 8GB
RAM 32GB
2x 24" Monitore FullHD
SpaceMouse Pro

erstellt am: 16. Dez. 2016 09:20    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 aquadody 10 Unities + Antwort hilfreich

Hmm das wundert mich...

und du hast den Code von muellc verwendet?

Genau diesen habe ich eben gerade auch nochmal kopiert und getestet und bei mir überschreibt er die bestehende Datei wortlos.

Hast du am Code Änderungen vorgenommen?
Wenn ja dann stell uns deinen Code doch nochmal zur Verfügung, dann werfen wir gerne nochmal einen Blick drauf und suchen den möglichen Fehler.

------------------
Mit Besten Grüßen

Ruzy5624

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 16. Dez. 2016 11:29    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 aquadody 10 Unities + Antwort hilfreich

Hallo!

Danke für deine Mühen,
hier ist meine Abwandlung des Codes;
Der Zielort der DXF-Dateien sind wie der Quellort der IDW´s auch ein eingebundenes Netzwerklaufwerk

Grüße,
Thomas

Code:

'Dateityp des Modells wird erkannt (.iam oder .ipt)
oModellTyp = Right(ThisDoc.FileName(True), 4)
If oModellTyp = ".idw" Then
' Get the DXF translator Add-In.
Dim DXFAddIn As TranslatorAddIn
DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
'Set a reference to the active document (the document to be published).
Dim oDocument As Document
oDocument = ThisApplication.ActiveDocument
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
' Create a NameValueMap object
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
' Create a DataMedium object
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
' Check whether the translator has 'SaveCopyAs' options
If DXFAddIn.HasSaveCopyAsOptions(oDocument, oContext, oOptions) Then
Dim strIniFile As String
strIniFile = "L:\Inventor\0000\_Allgemein\Design Data 2016\DWG-DXF\exportdxf.ini"
' Create the name-value that specifies the ini file to use.
oOptions.Value("Export_Acad_IniFile") = strIniFile
End If

oProject = Left(ThisDoc.FileName(False),5) 'without extension
oBaugruppe = ThisDoc.FileName(False) 'without extension
'Hier den Ort zum Abspeichern der DXF-Daten eingeben (x:\xx\xxxxxx\)
oPath = "L:\Export\DXF\"
oName = ThisDoc.FileName(False) ' without extension
'Zusammensetzen von Pfad und Dateiname für DXF
oFolder = oPath & oProject & "\" & oName & "\"
oDataMedium.FileName = oPath & oProject & "\" & oName & "\" & oNameBlatt & ".dxf"
'Prüfen ob es den Ordner gibt, wenn nicht wird er erstellt
If Not System.IO.Directory.Exists(oFolder) Then
    System.IO.Directory.CreateDirectory(oFolder)
End If



'Publish document.
DXFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)
'>>>>> Zur Vorschau der DXF Datei die nächsten 2 Zeilen scharf schalten
'i = MessageBox.Show("Preview the DXF file?", "Title",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
'If i = vbYes Then ThisDoc.Launch(oDataMedium.FileName)
End If

'Textausgabe: Erfolg
MessageBox.Show("Fertig!","Status",MessageBoxButtons.OK)

'End If


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

Ruzy5624
Mitglied
Konstruktionsleiter / staatl. gepr. Techniker


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

Beiträge: 276
Registriert: 01.07.2015

Product Design Suite 2018 Ultimate
Visual Studio 2017
Windows 10 Pro
Intel Xeon E3-1245 v5 @ 3,5GHz
Nvidia Quadro M4000 8GB
RAM 32GB
2x 24" Monitore FullHD
SpaceMouse Pro

erstellt am: 20. Dez. 2016 18:44    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 aquadody 10 Unities + Antwort hilfreich

Sry, hat leider etwas gedauert bis ich die nötige Zeit gefunden habe...

Ich habe deinen Code mal übernommen und etwas abgeändert.
Dem String "oNameBlatt" hast du nichts zugewiesen, weshalb alle DXFs namenlos waren.

Aber die eigentliche Frage war, ob er die Dateien wortlos überschreibt. Ja das tut er bei mir mit dem Code.

Ich kann mir nicht vorstellen warum er das bei dir nicht tut 

Hier nochmal der Code wie ich ihn getestet habe:

Code:
Sub Main
'Prüfen ob Dokument eine Zeichnung ist
Dim oDoc As Document = ThisApplication.ActiveDocument
If oDoc.DocumentType <> DocumentTypeEnum.kDrawingDocumentObject Then Exit Sub
' Get the DXF translator Add-In.
Dim DXFAddIn As TranslatorAddIn
DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
'Set a reference to the active document (the document to be published).
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
' Create a NameValueMap object
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
' Create a DataMedium object
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
' Check whether the translator has 'SaveCopyAs' options
If DXFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
' Create the name-value that specifies the ini file to use.
oOptions.Value("Export_Acad_IniFile") = "Pfad zu ini Datei"
End If
oProject = Left(ThisDoc.FileName(False),5) 'without extension
oBaugruppe = ThisDoc.FileName(False) 'without extension
'Hier den Ort zum Abspeichern der DXF-Daten eingeben (x:\xx\xxxxxx\)
oPath = "Ablagepfad"
oName = ThisDoc.FileName(False) ' without extension
'Zusammensetzen von Pfad und Dateiname für DXF
oFolder = oPath & oProject & "\"
oDataMedium.FileName = oFolder & oName & ".dxf"
'Prüfen ob es den Ordner gibt, wenn nicht wird er erstellt
If Not System.IO.Directory.Exists(oFolder) Then
    System.IO.Directory.CreateDirectory(oFolder)
End If
'Publish document.
DXFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)
MessageBox.Show("Fertig!","Status",MessageBoxButtons.OK)
End Sub

------------------
Mit Besten Grüßen

Ruzy5624

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 22. Dez. 2016 08:28    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 aquadody 10 Unities + Antwort hilfreich

Hallo Ruzy!

Vielen Dank für deine Mühen, echt toll!
Mit meinem Code haben unsere DXF´s alle die richtigen Bezeichnungen und liegen in den automatisch erzeugten Ordnerstrukturen.

Ich habe bei meinem letzten Post leider vergessen etwas zu erwähnen:
Im Vorfeld zum DXF-Export läuft eine weitere externe Regel, die die Blätter unserer Zeichnungen entsprechend der Erstansicht umbenennt. (Code hänge ich ganz unten an)

Beispiel:
Name der auf dem Zeichnungsblatt dargestellten IPT: "xxxxx-yyy-zzz-001"
Name der IDW selbst "aaaaa-bbb-ccc-000-ZEICHNUNG"
Name des Zeichnungsblattes nach dem auto. Umbenennen "xxxxx-yyy-zzz-001"
Pfad und Name der DXF-Datei: [...]\xxxxx\aaaaa-bbb-ccc-000-ZEICHNUNG\_xxxxx-yyy-zzz-001.dxf
(woher auch immer das _ vor xxxxx kommt?!)

Kann das Überschreiben damit zusammenhängen, dass:
- es sich bei mir um externe Regeln handelt
- das DXF-ini-file irgendwie reinpfuscht
- die DXF lt. Autocad beim öffnen gerade durch einen anderen Benutzer bearbeitet werden, obwohl das definitiv nicht der Fall ist und auch der Inventor zuvor geschlossen wurde?

Bei deinem Code steigt mir die externe Regel immer aus:

System.Runtime.InteropServices.COMException (0x80004005): Unbekannter Fehler (Ausnahme von HRESULT: 0x80004005 (E_FAIL))
  bei System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
  bei Inventor.TranslatorAddIn.SaveCopyAs(Object SourceObject, TranslationContext Context, NameValueMap Options, DataMedium TargetData)
  bei LmiRuleScript.Main()
  bei Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
  bei iLogic.RuleEvalContainer.ExecRuleEval(String execRule)

Danke und Gruß,
Thomas


Code:
Sub Main
    If TypeOf ThisDoc.Document Is DrawingDocument Then
        Dim dwgDoc as DrawingDocument = ThisDoc.Document'
Dim sheetNames As New Dictionary(Of String, ArrayList)
        'Count all the sheets per part
For Each dwgSheet As Sheet In dwgDoc.Sheets
            If dwgSheet.DrawingViews.Count > 0 Then
                modelFile = dwgSheet.DrawingViews(1).ReferencedDocumentDescriptor.FullDocumentName
                modelDoc = dwgSheet.DrawingViews(1).ReferencedDocumentDescriptor.ReferencedDocument
                prtNumber = modelDoc.PropertySets("Design Tracking Properties").Item("Part Number").Value
                If Not String.IsNullOrEmpty(prtNumber) Then
If Not sheetNames.ContainsKey(prtNumber) Then
sheetNames.Add(prtNumber, New ArrayList({1, 0}))
Else
sheetCount = sheetNames(prtNumber)(0)
sheetCount = sheetCount + 1
sheetNames(prtNumber)(0) = sheetCount
End If
End If
End If
Next
For Each dwgSheet As Sheet In dwgDoc.Sheets
            If dwgSheet.DrawingViews.Count > 0 Then
                modelFile = dwgSheet.DrawingViews(1).ReferencedDocumentDescriptor.FullDocumentName
                modelDoc = dwgSheet.DrawingViews(1).ReferencedDocumentDescriptor.ReferencedDocument
                prtNumber = modelDoc.PropertySets("Design Tracking Properties").Item("Part Number").Value
prtRev = modelDoc.PropertySets("Summary Information").Item("Revision Number").Value
                If Not String.IsNullOrEmpty(prtNumber) Then
If Not String.IsNullOrEmpty(prtRev) Then
prtRev = String.Format(" - Rev {0}", prtRev)
End If
sheetOf = ""
sheetCount = sheetNames(prtNumber)(0)
If sheetCount > 1 Then
sheetNames(prtNumber)(1) = sheetNames(prtNumber)(1) + 1
sheetOf = String.Format(" Sheet {0}", sheetNames(prtNumber)(1))
End If
                    dwgSheet.Name = prtNumber & sheetOf & prtRev
                End If
            End If
        Next
    End If
End Sub

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 02. Jan. 2017 11: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 aquadody 10 Unities + Antwort hilfreich

Hallo liebe CAD.de Gemeinde!

Ich hoffe, Ihr seid alle gut in das neue Jahr gerutscht.
(Wir haben uns leider verlaufen und standen um 12 Uhr mitten in einem Wald bei 0m Sicht (Nebel).. Dementsprechend gabs für mich heuer kein Feuerwerk   )

Habt Ihr denn noch eine Idee woran es liegen könnte, dass unsere Systeme partout keine Dateien ohne Rückfrage überschreiben wollen?

Es gibt im Code ja Folgendes:

Code:
If Not System.IO.Directory.Exists(Neuerpfad) Then
    System.IO.Directory.CreateDirectory(Neuerpfad)

Könnte man etwas Ähnliches mit File anstatt mit Directory aufbauen?
Das ist zwar ein Ansatz von einer anderen Seite, aber könnte das funktionieren?

1) Prüfen ob zu erzeugende Datei bereits vorhanden
2) Vorhandene Datei löschen
3) Neue Datei erstellen

Grüße,
Thomas

[Diese Nachricht wurde von Barbatoss am 02. Jan. 2017 editiert.]

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

ftg
Mitglied
Technischer Sklave


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

Beiträge: 550
Registriert: 16.09.2004

DELL Xeon Workstation
Windows 10 Pro (besser als sein Ruf...)
Inventor Pro 2016
PSP 2011
GAIN Collaboration

erstellt am: 02. Jan. 2017 14:52    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 aquadody 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Barbatoss:

Habt Ihr denn noch eine Idee woran es liegen könnte, dass unsere Systeme partout keine Dateien ohne Rückfrage überschreiben wollen?

Moin,

du sagst ja dass dein Zielordner im Netz liegt.
Somit kann es fast auch nur an den Sicherheitseinstellungen / Richtlinien etc. vom Server liegen.
Da würde ich die Admins mal drauf ansetzen, die können im Server auch mal die Dateioperationen loggen und schauen wieso es knallt.
Notfalls auch mal den Ordner nicht als Map sondern als UNC angeben und schauen was dann passiert.

Die Translator-Addins welche du mit dem Script ansprichst juckt es überhaupt nicht ob die Datei existiert oder nicht.
Machen wir täglich zig mal mit eigenen Addins und hatten das Problem noch nie.

Somit hätte sich dann auch der andere Teil deiner Frage wahrscheinlich erledigt, wenn dich der Server nicht überschreiben lässt,
gehe ich mal davon aus, dass er auch das Löschen einer Datei nicht zulassen wird.
(So eine "Lösung" wäre eh von hinten durch die Brust geschossen)

------------------
mfg
ftg

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 02. Jan. 2017 15:00    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 aquadody 10 Unities + Antwort hilfreich

Hallo FTG!

Danke für deine Rückmeldung!

Wenn ich keine Berechtigungen auf dem Server habe, dann dürfte ich die Dateien eigentlich auch nicht über "wollen Sie überschreiben? --> ja" überschreiben können oder? Bzw. dürfte ich im Explorer dann auch nicht umbenennen, erzeugen, löschen etc...
Ich habe das Makro jetzt eben auf einen lokalen Pfad bei mir auf der Festplatte gezogen.
Gleiches Verhalten. Aber bei mir auf dem Laufwerk bin ich doch als Admin auch Admin?! 

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

ftg
Mitglied
Technischer Sklave


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

Beiträge: 550
Registriert: 16.09.2004

DELL Xeon Workstation
Windows 10 Pro (besser als sein Ruf...)
Inventor Pro 2016
PSP 2011
GAIN Collaboration

erstellt am: 03. Jan. 2017 05:39    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 aquadody 10 Unities + Antwort hilfreich

Moin,

muss wohl an Ilogic selbst liegen, wie gesagt in einem normalen Addin kann ich das nicht nachvollziehen, da würde bei uns keins der Exportplugins mehr funktionieren.
Eine mögliche Lösung hab ich bei Autodesk selbst gefunden, hier hat wohl jemand ein ähnliches Problem .

In Post Nr.8 beschwert sich einer, dass er immer bestätigen muss, wenn seine Zeichnung aus mehreren Blättern besteht.

------------------
mfg
ftg

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 03. Jan. 2017 11:25    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 aquadody 10 Unities + Antwort hilfreich

Mahlzeit allerseits!

Ich habe jetzt die etwas grobschlächtige Variante in Anlehnung an deinen geposteten Link (danke dafür!) zusammengebastelt und es funktioniert. Das freut mich!
Code hänge ich unten an!
Auch sollte es mit unserer Ablagestruktur zu keinen Problemen kommen, die ja denkbar sind wenn ich von verschiedenen Zeichnungsdateien in den gleichen Zielordner abspeichern möchte.

Jetzt gibt es nurnoch zwei Schönheitsfehler, die mich stören. Hoffentlich finde ich da noch was dazu:
1) Ich zähle für die Messagebox die Dateien, die im Ordner vorhanden sind, eigentlich möchte ich aber auch nur vorhandene DXF-Dateien zählen.
2) Ich rufe das DXF-Addin einmal mit IF und einmal mit ELSEIF auf, damit ich in der Messagebox bei "Abbruch" nicht die gleiche Funktion wie bei "Nein" auslöse. Das verdient sicherlich auch keinen Preis für besonders gute Programmierung 

An alle Beteiligten ein DICKES Dankeschön für Rat, Tat und Geduld!

Grüße,
Thomas


Code:

Sub Main
'Prüfen ob Dokument eine Zeichnung ist
Dim oDoc As Document = ThisApplication.ActiveDocument
If oDoc.DocumentType <> DocumentTypeEnum.kDrawingDocumentObject Then Exit Sub
' Get the DXF translator Add-In.
Dim DXFAddIn As TranslatorAddIn
DXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
'Set a reference to the active document (the document to be published).
Dim oContext As TranslationContext
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
' Create a NameValueMap object
Dim oOptions As NameValueMap
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
' Create a DataMedium object
Dim oDataMedium As DataMedium
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium
' Check whether the translator has 'SaveCopyAs' options

If DXFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
' Create the name-value that specifies the ini file to use.
oOptions.Value("Export_Acad_IniFile") = "L:\Inventor\0000\_Allgemein\Design Data 2016\DWG-DXF\exportdxf.ini"
End If
oProject = Left(ThisDoc.FileName(False),5) 'without extension
oBaugruppe = ThisDoc.FileName(False) 'without extension

'Specifiy target-path for dxf-export (x:\xx\xxxxxx\)
oPath = "L:\Export\DXF\"
oName = ThisDoc.FileName(False) ' without extension

'Combine path and name for dxf-target folder/name
oFolder = oPath & oProject & "\" & oName & "\"
oDataMedium.FileName = oPath & oProject & "\" & oName & "\" & oNameBlatt & ".dxf"

'Search for existing folder, create if not existing
If Not System.IO.Directory.Exists(oFolder) Then
  System.IO.Directory.CreateDirectory(oFolder)
End If
'Count existing files in folder
Dim counter = My.Computer.FileSystem.GetFiles(oPath & oProject & "\" & oName & "\")

'query for action
question = MessageBox.Show("Alle gefundenen DXF-Dateien im Ordner löschen?" _
& vbNewLine & "" _
& vbNewLine & "Anzahl = " & CStr(counter.Count) _
& vbNewLine & "" _
& vbNewLine & "Nein = Einzelauswahl" , "WARNUNG", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Warning)

'set condition based on answer
    If question = vbYes Then
'Kill all *.dxf-Files in folder
Kill(oPath & oProject & "\" & oName & "\" & "*.dxf")
'Publish document.
DXFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)
MessageBox.Show("Fertig!","Status",MessageBoxButtons.OK)
ElseIf question = vbNo Then
'Publish document.
DXFAddIn.SaveCopyAs(oDoc, oContext, oOptions, oDataMedium)
MessageBox.Show("Fertig!","Status",MessageBoxButtons.OK)
End If
End Sub

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

ftg
Mitglied
Technischer Sklave


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

Beiträge: 550
Registriert: 16.09.2004

DELL Xeon Workstation
Windows 10 Pro (besser als sein Ruf...)
Inventor Pro 2016
PSP 2011
GAIN Collaboration

erstellt am: 03. Jan. 2017 11:41    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 aquadody 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Barbatoss:

1) Ich zähle für die Messagebox die Dateien, die im Ordner vorhanden sind, eigentlich möchte ich aber auch nur vorhandene DXF-Dateien zählen.

Moin,

eigentlich solltest du bei der GetFiles() Methode noch eine Wildcard (*.dxf) als Parameter mitgeben können.
Ich mach normalerweise nix mit Ilogic, aber bei VB.Net bzw. C# sollte das gleich sein, sind ja native .Net Methoden.

Daher schau am besten mal bei MSDN nach.

Wenns funktioniert schaut keiner ob der Code "schön" ist.
Mit wachsender Erfahrung erledigt sich sowas von selbst, man schreibt seine "Jugendsünden" halt irgendwann neu.
Bei dir zählt momentan das Erfolgserlebnis <Ha, habs hingekriegt!> 

------------------
mfg
ftg

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 03. Jan. 2017 16:24    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 aquadody 10 Unities + Antwort hilfreich

Da hast du natürlich absolut recht!

Ich habe gerade noch eine kleine Ergänzung eingebaut, da beim bisherigen Code auch bei einem leeren Ordner die Rückfrage "Willst du überschreiben?" bringt... auch wenn 0 Daten überschrieben werden könnten, weshalb dann ein Fehler auftaucht.

Eine Sache ist und bleibt mir jedoch ein Rätsel.
Wieso funktioniert das Ganze erst bei einer IDW, die über mehr als ein Blatt verfügt? Wenn wirklich nur ein Blatt vorhanden ist, so erzeugt mir der Code im richtigen Ordner eine Datei ohne Namen, also ".dxf"..  , die Zufriedenheit ist hart erkämpft :-)

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

ftg
Mitglied
Technischer Sklave


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

Beiträge: 550
Registriert: 16.09.2004

DELL Xeon Workstation
Windows 10 Pro (besser als sein Ruf...)
Inventor Pro 2016
PSP 2011
GAIN Collaboration

erstellt am: 03. Jan. 2017 17:40    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 aquadody 10 Unities + Antwort hilfreich

Moin,

ein Grund wieso ich ILogic nie angefasst hab ist einfach die fehlende Debug-Möglichkeit und der unkomfortable Editor.
Ich mach mein Zeug in Visual Studio da kann ich sowas mal schnell aufbauen und ausprobieren.

Mit solchen zusammenkopierten Codefragmenten bin ich auch schon auf die Nase gefallen,meistens kapiert man eh nicht
immer 100% genau was die da grade treiben und wenn mal der Wurm drin ist verbringt man viel Zeit den Fehler zu finden.
Hat man mal das Prinzip von dem verstanden was man grade machen will, ist es oft besser das ganze nochmal sauber,im
eigenen Stil neu aufzusetzen und Schritt für Schritt zu testen.

Ohne Debugger würde ich hier mal überall wo du Variablen belegst und Pfade zusammenbaust eine Messagebox einbauen, die dir
zeigt was denn nun grade drinsteht.
Wahrscheinlich ist irgendwo ein logischer Fehler drin, der unter Umständen einen leeren Dateinamen zurückgibt.
Es gibt auch eine Trace-Funktion in ILogic (Trace.WriteLine(Zeigmeinendxfnamen)) ,um da aber den Output zu sehen brauchst du noch
nen Logger wie sowas hier: https://technet.microsoft.com/en-us/sysinternals/bb896647


------------------
mfg
ftg

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

Big-Daddy
Mitglied
Konstrukteur


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

Beiträge: 47
Registriert: 08.04.2015

erstellt am: 03. Mrz. 2017 09:36    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 aquadody 10 Unities + Antwort hilfreich

Hallo zusammen,
ich habe auch eine Frage zu den Layern beim DXF Export.

Ich mache aus meiner Abwicklung eine DXF Datei, was bisher auch problemlos funktioniert. Die inneren und äußeren Konturen werden auf den gleichen Layer "Kontur" gesetzt.

Jetzt meine Frage, wenn ich in meiner .ipt ein Stanzwerkzeug einfüge wird daraus ja ein "IFeature" Kann man die "IFeatures" bzw die eingefügen Stanzwerkzeuge auf einen anderen Layer legen lassen??

Mein bisheriger Code:

Code:
'**Document definieren
Dim oDoc As Document = ThisDoc.Document
Dim oCompDef As SheetMetalComponentDefinition = oDoc.ComponentDefinition
Dim Version As String

Title = ThisDoc.FileName (False)
Pfad = ThisDoc.Path
altPfad = Right(Pfad,Len(Pfad)-3) & "\"
NeuPfad = "K:\" & altPfad
Version = iProperties.Value("Summary", "Keywords")

Dim sFname As String '**Variable für Namen deklarieren

'**Variable für Abwicklungsoptionen deklarieren und mit Werten füllen
Dim sOut As String = "FLAT PATTERN DWG?AcadVersion=2013&OuterProfileLayer=Kontur&InteriorProfilesLayer=Kontur&InvisibleLayers=IV_UNCONSUMEND_SKETCHES;IV_ALTREP_BACK;IV_ALTREP_FRONT;IV_ARC_CENTERS;IV_TOOL_CENTER_DOWN ;IV_TOOL_CENTER;IV_AR  C_CE  NTERS;IV_TANGENT;IV_BEND;IV_BEND_DOWN&SplineTolerance Double 0.01"


'**Prüfung ob eine Abwicklung vorhanden ist:
    If oCompDef.HasFlatPattern = False Then 'wenn nein dann abwickeln
        oCompDef.Unfold
    Else 'ansonsten editieren
        oCompDef.FlatPattern.Edit
    End If

If Version = "" Then

'**Dokumentennamen auslesen und daraus Name und Pfad für DXF Datei erstellen
sFname = oDoc.PropertySets.Item("Design Tracking Properties").item("Part Number").Value
sFname = NeuPfad + Title + ".dxf"

Else

'**Dokumentennamen auslesen und daraus Name und Pfad für DXF Datei erstellen
sFname = oDoc.PropertySets.Item("Design Tracking Properties").item("Part Number").Value
sFname = NeuPfad + Title + "_" + Version + ".dxf"

End If

'Falls das Verzeichnis nicht exisitiert wird es erstellt
If Not System.IO.Directory.Exists(NeuPfad) Then
    System.IO.Directory.CreateDirectory(NeuPfad)
End If

'**Daten schreiben
oCompDef.DataIO.WriteDataToFile(sOut, sFname)

'**Abwicklung verlassen
oCompDef.flatpattern.exitedit



Vielen Dank im vorraus

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 23. Okt. 2017 10:32    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 aquadody 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Barbatoss:
Da hast du natürlich absolut recht!

Ich habe gerade noch eine kleine Ergänzung eingebaut, da beim bisherigen Code auch bei einem leeren Ordner die Rückfrage "Willst du überschreiben?" bringt... auch wenn 0 Daten überschrieben werden könnten, weshalb dann ein Fehler auftaucht.

Eine Sache ist und bleibt mir jedoch ein Rätsel.
Wieso funktioniert das Ganze erst bei einer IDW, die über mehr als ein Blatt verfügt? Wenn wirklich nur ein Blatt vorhanden ist, so erzeugt mir der Code im richtigen Ordner eine Datei ohne Namen, also ".dxf"..   , die Zufriedenheit ist hart erkämpft :-)


Hallo zusammen!

Ich möchte nochmal auf diesen ominösen Effekt zu sprechen kommen une kurz eure Schwarmintelligenz anzapfen.
Das Problem scheint hier einfach zu sein, dass ich nicht an die gewünschten Namen rankomme

Wenn ich in meinem Code den Blattnamen anzeigen lasse:

Code:
'Get the sheet-name
MessageBox.Show(ActiveSheet.Name, "Title")

dann wird dieser korrekt ausgegeben!

Wenn ich den Blattnamen dann aber übergeben möchte in ein Element oNameblatt (zuvor als String deklariert) und das Ergebnis anzeigen lasse

Code:
oNameblatt = ActiveSheet.Name(False) 'without extension
    MessageBox.Show(oNameblatt, "Title")

dann läuft irgendwas schief;

Was muss ich denn machen um den Blattnamen in oNameblatt zu übergeben?

Besten Dank,
Thomas

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

RolandD
Mitglied



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

Beiträge: 459
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (1909)
AIP 2020.3
Dell U3417W

erstellt am: 23. Okt. 2017 11:04    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 aquadody 10 Unities + Antwort hilfreich

Hallo Thomas,

welche Extension deines Blattes willst du denn weglassen????

------------------
Gruß Roland

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

Barbatoss
Mitglied
Ingenieur


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

Beiträge: 38
Registriert: 17.02.2016

Inventor Professional 2018
Build 227 - Release 2018.2
Intel Xeon E5-1620 v3
32GB DDR4
Nvidia Quadro K2200
Win10 Pro

erstellt am: 23. Okt. 2017 11:07    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 aquadody 10 Unities + Antwort hilfreich

Hallo zusammen,

ich habe das Monster jetzt gezähmt, es tut was ich von ihm möchte!
Nachdem ich mit meinen alten Codeschnipseln nicht mehr zurecht gekommen bin, habe ich mir selbst folgendes zusammengebastelt; Vielleicht kann es der ein oder andere verwenden..

Grüße,
Tom

Code:
Sub Main
'Prüfen ob Dokument eine Zeichnung ist
    Dim oDoc As Document = ThisApplication.ActiveDocument
    If oDoc.DocumentType <> DocumentTypeEnum.kDrawingDocumentObject Then Exit Sub

Dim oNameBlatt As String
Dim oSheetName As String
Dim oSheetNameMod As String
Dim oSheetNr As String
Dim erste_Seite As String
Dim oSheets As Sheet
Dim oDXFAddIn As TranslatorAddIn
Dim oContext As TranslationContext
Dim oOptions As NameValueMap
Dim oDataMedium As DataMedium
oPath = "L:\Export\DXF\"
erste_Seite = ""

oDXFAddIn = ThisApplication.ApplicationAddIns.ItemById("{C24E3AC4-122E-11D5-8E91-0010B541CD80}")
oDocument = ThisApplication.ActiveDocument
oContext = ThisApplication.TransientObjects.CreateTranslationContext
oContext.Type = IOMechanismEnum.kFileBrowseIOMechanism
oOptions = ThisApplication.TransientObjects.CreateNameValueMap
oDataMedium = ThisApplication.TransientObjects.CreateDataMedium

If oDXFAddIn.HasSaveCopyAsOptions(oDoc, oContext, oOptions) Then
' Create the name-value that specifies the ini file to use.
oOptions.Value("Export_Acad_IniFile") = "L:\Inventor\0000\_Allgemein\Design Data 2018\DWG-DXF\exportdxf_neu.ini"
End If

For Each oSheets in oDoc.Sheets
oSheets.Activate
oSheet = ActiveSheet
oFileName = ThisDoc.FileName(False) 'ohne Erweiterung
oSheetNr = Right(oSheet.Name,1) 'Blattnummer
OSheetName = oSheet.Name 'Blattname ohne Blattnummer
'MessageBox.Show(OSheetName, "Name mit :")
Dim oLength As Integer
oLength = Len(OSheetName)-2
'MessageBox.Show(oLength, "Länge")
OSheetNameMod = Left(OSheetName, oLength)
'MessageBox.Show(OSheetNameMod, "Mod")
oProject = Left(oSheet.Name,5)
oAssembly = Left(oSheet.Name,13)&"-000"
oFolder = oPath & oProject & "\" & oAssembly & "\"

If oSheetNr = "1" Then erste_Seite = oSheet.Name
oDataMedium.FileName = oPath & oProject & "\" & oAssembly & "\" & oSheetNameMod & ".dxf"
'MessageBox.Show(oDataMedium.FileName, "Pfad")
'MessageBox.Show(oFolder, "zu erzeugender Pfad")
'Search for existing folder, create if not existing
If Not System.IO.Directory.Exists(oFolder) Then
System.IO.Directory.CreateDirectory(oFolder)
End If
'Search for existing DXF-export in folder, delete if existing
If System.IO.File.Exists(ActiveSheet.Name) Then
System.IO.File.Delete(ActiveSheet.Name)
End If

oDXFAddIn.SaveCopyAs(oDocument, oContext, oOptions, oDataMedium)

Next

End Sub


[Diese Nachricht wurde von Barbatoss am 23. Okt. 2017 editiert.]

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)2020 CAD.de | Impressum | Datenschutz