| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: DWG in DGN Batchkonvertierung??? (2162 mal gelesen)
|
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 24. Jun. 2010 14:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe eine riesen Aufgabe vor mir. Ich soll mehrere hundert DWG-Dateien in das Microstation V8-Format mit AutoCAD bringen. Nun hole ich aber mal etwas weiter aus. Wir haben hier AIS 2008 im Einsatz, wobei wir mit Inventor konstruieren. Aufgrund der vorhandenen Subscrition könnten wir auch auf AutoCAD 2011 wechseln, wenn hier die Möglichkeiten der Konvertierung besser sind als im AutoCAD 2008. Nun hatte ich mir ein Macro vorgestellt, mit ungefähr folgender Funktion. Ich starte das Macro im AutoCAD. Dann muss ich ein Verzeichnis angeben, in dem die DWG-Dateien liegen und die DGN-Dateien abgelegt werden. Die SEED-Datei ist fest im Macro hinterlegt. Diese ist immer die gleiche. Nun ist meine Frage: Gibt es so ein Macro? Wenn nein, was ist das für ein Aufwand so eines zu schreiben? Für Tipps und Ratschläge immer offen.
Gruß SKYSURFER
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 24. Jun. 2010 15:02 <-- editieren / zitieren --> Unities abgeben:          Nur für SKYSURFER
|
Ex-Mitglied
|
erstellt am: 24. Jun. 2010 15:14 <-- editieren / zitieren -->
Hi, solange Du mit SendCommand durchkommst (mittels Befehl _-DGNEXPORT), dann sollte es eigentlich nur ein paar Minuten sein. Wobei ich glaube, dass der Befehl erst später als mit 2008 gekommen ist, also wird dafür der Einsatz von 2011 sicher vorteilhaft sein. - alfred - ------------------ www.hollaus.at |
Soldnerkugel Mitglied
 
 Beiträge: 131 Registriert: 29.01.2010 Win 7, AutoCAD Civil 3D 2015, SketchUp, CarlsonSurvCE
|
erstellt am: 24. Jun. 2010 16:27 <-- editieren / zitieren --> Unities abgeben:          Nur für SKYSURFER
|
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 25. Jun. 2010 08:00 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Soldnerkugel: da war's alleine hätte ich da wohl noch bis nächste Woche danach gesucht. (wiedermal: )Danke.
Hallo Soldnerkugel, du hast anscheinend schon mehr verstanden wie ich. Gruß SKYSURFER
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 25. Jun. 2010 08:40 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von a.n.: Hi,solange Du mit SendCommand durchkommst (mittels Befehl _-DGNEXPORT), dann sollte es eigentlich nur ein paar Minuten sein. Wobei ich glaube, dass der Befehl erst später als mit 2008 gekommen ist, also wird dafür der Einsatz von 2011 sicher vorteilhaft sein. - alfred -
Hallo a.n., wie schon geschrieben, AutoCAD 2011 ist nicht das Problem. Das habe ich im Schrank liegen. Ich habe aber noch nicht so den Plan wie ich mit AutoCAD VBA überhaupt anfangen muss. Gibt es irgendwo eim paar Anleitungen und Beispiele? Gruß SKYSURFER
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 25. Jun. 2010 09:32 <-- editieren / zitieren -->
Hi, was ist denn Dein aktueller Stand? Wenn es das erste mal ist, dass Du mit VBA etwas machen willst, dann wirds nicht einfach, wenn Du überhaupt das erste mal was programmierungsartiges machst, dann such Dir ein Schulungsunternehmen, das Dir ein paar Tage Wissen auf's Aug drückt. Hier im Forum jetzt die Klicks zu beschreiben, wie Du den VBA-Editor startest, dort Code hineintipst, mit Debug den Lauf überprüfst, ..... überschreitet den Sinn des Forums. Beschreib bitte mal, was Dein aktueller Wissensstand ist, sonst wissen wir nicht, wo anfangen. Alternativ schau Dir bitte CADmiums Beitrag oben an, da brauchst Du gar nicht programmieren. - alfred - ------------------ www.hollaus.at |
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 25. Jun. 2010 11:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo a.n., also mit AutoCAD VBA habe ich noch nichts gemacht. Da kenne ich mich null aus. Mit Inventor VBA habe ich schon was gemacht, bzw kann die Macros lesen und verstehen. Mit PHP und MySQL habe ich eigene Websiten mit Bildergalerie, Gästebuch, ... geschrieben. Natürlich kann man PHP nicht mit VBA vergleichen. Aber das grundlegende Verständnis für ein Programmiersprache ist vorhanden. Ich hatte halt gehofft, dass hier jemand im Forum das gleiche Problem hatte wie ich uns dafür schon eine Lösung ausgearbeitet hat. Somit hätte ich diese nur anpassen müssen. Zum Scripgenerator: Welchen meint ihr? zufllig den: http://www.74mph.com/
oder diesen: http://www.dotsoft.com/superscript.htm Gruß SKYSURFER
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 25. Jun. 2010 15:27 <-- editieren / zitieren --> Unities abgeben:         
@CADmium so langsam aber sicher verstehe ich was du geschrieben hattest. verwendest du den im Mechanical unter Hilfsmittel -> Skript -> Skript-Generator ??? Gruß SKYSURFER p.s. ich vermute es war absicht nur das Bild zu posten und nicht das lisp
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 25. Jun. 2010 15:34 <-- editieren / zitieren --> Unities abgeben:          Nur für SKYSURFER
|
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 25. Jun. 2010 15:40 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von CADmium: nee .... wie gesagt, ich hab das was eigenes ... aber der unter Mech sollte doch einen Versuch wert sein, oder ?
Ist er. Er wird mich einen Teil des Wochenendes kosten. Aber egal. Ich will dabei auch etwas lernen. :D Zitat: Original erstellt von CADmium:
Ist immer die Frage des Aufwandes und für wen man das macht ? Normalo-user hat am liebsten einen Dialog (wie oben gepostet) mit einem OK-Button und gut.Wenn ich für mich selbst für den einmaligen Gebrauch was mache, sieht das rudimentärer aus...
Es sollen zum schluss mittels einer Anleitung auch, wie du so schön schreibst, Normalo-user arbeiten können. DAUs sind ausgeschlossen!!! Gruß SKYSURFER p.s. ein schönes WE
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 25. Jun. 2010 23:16 <-- editieren / zitieren -->
Hi, ein Ansatz zu Starten, allerdings wenig Fehlerhandling. Parameter sind in den CONST-Statements einstellbar. Code: Option ExplicitConst pDirName As String = "C:\TEMP" 'das Verzeichnis, dessen DWGs zu konvertieren sind Const pDgnVersionStr As String = "V8" 'zu exportierendes DGN-Format, kann "V7" oder "V8" sein Const pDgnUnitsStr As String = "HAUPTEINHEITEN" 'zu exportierende Einheiten, kann "HAUPTEINHEITEN" oder "UNTEREINHEITEN" sein Const pDgnMappingStr As String = "STANDARD" 'Mappingeinrichtung, muss definiert sein, sonst läuft das Script nicht ab Const pDgnSeedFile As String = "C:\Program Files\Autodesk\AutoCAD2011\UserDataCache\Template\V8-Metric-Seed3D.dgn" Public Sub CmdExecuteMultipleDWGs() Dim tApp As AcadApplication Set tApp = ThisDrawing.Application Dim tFileName As String tFileName = Dir(pDirName & "\*.dwg") 'erste DWG-Datei Do While Len(tFileName) > 0 If Not executeFile(tApp, pDirName & "\" & tFileName) Then Call MsgBox("Fehler bei Datei '" & tFileName & "'" & vbCrLf & "Script wird beendet", vbCritical) Exit Do End If tFileName = Dir 'naechste DWG-Datei oder leer, wenn es die letzte war Loop End Sub
Private Function executeFile(ByRef App As AcadApplication, ByVal FileName As String) As Boolean Dim tRetVal As Boolean On Error Resume Next Dim tDoc As AcadDocument Set tDoc = App.Documents.Open(FileName) If (Not (tDoc Is Nothing)) Then Dim tCmdStr As String tCmdStr = tCmdStr & "_-DGNEXPORT" & vbCr tCmdStr = tCmdStr & pDgnVersionStr & vbCr tCmdStr = tCmdStr & Left(FileName, Len(FileName) - 4) & ".dwg" & vbCr tCmdStr = tCmdStr & pDgnUnitsStr & vbCr tCmdStr = tCmdStr & pDgnMappingStr & vbCr tCmdStr = tCmdStr & pDgnSeedFile & vbCr Call tDoc.SendCommand(tCmdStr) Call tDoc.Close(False) If App.ActiveDocument.FullName = FileName Then 'dann konnte das Doc nicht geschlossen werden, voraussichtlich ist ' mit dem Ablauf des Scripts dann was passiert tRetVal = False Else tRetVal = True End If Else tRetVal = False End If On Error GoTo 0 executeFile = tRetVal End Function
HTH, - alfred -
------------------ www.hollaus.at |
SKYSURFER Mitglied Maschinenbautechniker
 
 Beiträge: 361 Registriert: 27.08.2004 WIN XP PRO SP2, AMD 64 3200 2* 512MB DDR400 ATI 9600XT AIP 2008 SP3
|
erstellt am: 01. Jul. 2010 09:57 <-- editieren / zitieren --> Unities abgeben:         
Hallo, sorry, dass ich mich erst jetzt melde. Vielen vielen Dank für das Macro. Leider hat es bei mir nicht funktioniert. Aber der "Fehler" muss irgendwo bei bei:
Code: If App.ActiveDocument.FullName = FileName Then
bzw den folgenden Zeilen sein, denn die Zeichnung wird im ACAD geladen.Nachdem sich aber die Aufgabenstellung geändert hat, wird das wohl nichts mit dem Macro. Denn ich habe noch viele Referez-Dateien in dem gleichen Verzeichnis. Diese werden aber schon automatisch als DGN erzeugt. Somit müsste man Filtern, welche eine Haupt-DWG ist, und welche nur Referenz-DWG ist. Gruß SKYSURFER
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Ex-Mitglied
|
erstellt am: 01. Jul. 2010 10:15 <-- editieren / zitieren -->
Hi, der Fehler kann zustandekommen, wenn keine Zeichnung geöffnet ist, ich habe es nur getestet, indem ich eine leere Zeichnung immer offen hatte. Abhilfe: zuvor mit Is Nothing prüfen, ob App.ActiveDocument überhaupt was ist. >> Denn ich habe noch viele Referez-Dateien in dem gleichen Verzeichnis
Na dann einen Filter, mit dem Du prüfst, ob Haupt oder Referenzzeichnung. Die Kriterien kenne ich aber nicht, hängt wohl von Eurer Struktur ab. Viel Erfolg, - alfred - ------------------ www.hollaus.at |