Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  MicroStation/PowerDraft (J, V8, XM, V8i)
  VBA für DWG/DXF Export

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
Autor Thema:  VBA für DWG/DXF Export (5423 mal gelesen)
dleckste
Mitglied


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

Beiträge: 4
Registriert: 03.03.2009

erstellt am: 26. Mai. 2010 17: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


Export_DWG.zip

 
Hallo

ich bin schon des längeren auf der Suche nach einer guten Lösung für den Eyport von Plänen usw.

Nach dem ich nun aber nichts gefunden habe, versuche ich mir mit VBA zu helfen.
Naja das ist fast wie Glaskugellesen

kurze Erklärung was ich vorhabe:

Wir arbeiten mit Powerdraft V8i und Speedikon M 8.11.7.25. Unsere Pläne werden alle mit dem Planmodul von Speedikon erzeugt.
Die hat zwar viele Vorteile aber auch einen gravierenden Nachteil wenn es um den Export von DWG/DXF geht.
Die enthaltenen Zeichnungen von Grundrissen/Schnitte/Ansichten sind miteinander verschachtelt, d.h. Elemente unterschiedlichster Ebenen
sind zusammengruppiert.
Um nun eine gute DWG zustande zu bekommen habe ich mir folgendes überlegt.
Einen leeren Plan in den ich die andere Plandateien via Powerdraft referenziere --> funktioniert bestens.
Dann habe ich eine naja zusammengebasteltes Makro das zuerst die Referenz mit der Datei zusammenfügt, und danach alle Elemente auswählt und die Sperren und Gruppierungen auflöst. --> funktioniert auch gut

Danach habe ich dann noch ein Makro aufgezeichnet das den Export anstartet und in ein definiertes Laufwerk ablegt. --> funktionert auch
## hier die erste Frage kann man eine Abfrage einbaue in der der Benutzer eine 5stellige Nummer eingeben muss, die dann vor den Dateinamen geschrieben wird.

Und nun zur Schlüsselfrage wie mache ich aus der *mvba ein Aufrufbares makro via Keyin?

Grüße
Daniel Eckstein


Hier der Code

Sub Export_Plan()

    Dim startPoint As Point3d
    Dim point As Point3d, point2 As Point3d
    Dim lngTemp As Long

'   Befehl starten
    CadInputQueue.SendCommand "REFERENCE MERGE ALL"

    CommandState.StartDefaultCommand

    CadInputQueue.SendCommand "POWERSELECT ALL"

    CadInputQueue.SendCommand "CHANGE UNLOCK "

    CadInputQueue.SendCommand "UNGROUP "
   
    Dim modalHandler As New Macro4ModalHandler
    AddModalDialogEventsHandler modalHandler

'   Die folgende Anweisung öffnet die modale Dialogbox "Datei exportieren"

'   Befehl starten
    CadInputQueue.SendCommand "DIALOG EXPORT"

    CadInputQueue.SendCommand "DMSG UPDATEDIALOG -400"

    CadInputQueue.SendCommand "DMSG UPDATEDIALOG -400"

    CadInputQueue.SendCommand "DMSG UPDATEDIALOG -400"

    RemoveModalDialogEventsHandler modalHandler
    CommandState.StartDefaultCommand
End Sub

Macro4ModalHandler


Implements IModalDialogEvents
Private Sub IModalDialogEvents_OnDialogClosed(ByVal DialogBoxName As String, ByVal DialogResult As MsdDialogBoxResult)

End Sub

Private Sub IModalDialogEvents_OnDialogOpened(ByVal DialogBoxName As String, DialogResult As MsdDialogBoxResult)

    If DialogBoxName = "Datei exportieren" Then

        CadInputQueue.SendCommand "MDL COMMAND MGDSHOOK,fileList_setDirectoryCmd \\linx007\Schnittstell\cad_dxf\"

        CadInputQueue.SendCommand "MDL COMMAND MGDSHOOK,fileList_setFileNameCmd DXF-Export"

    '   Entfernen Sie die folgende Zeile, damit der Benutzer die Dialogbox schließen kann.
       ' DialogResult = msdDialogBoxResultOK

    End If  ' Datei exportieren

End Sub

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

HeCader
Mitglied



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

Beiträge: 514
Registriert: 01.03.2007

Windows 10 Professional x64 SP1
Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz
2 Kern(e), 4 logische(r) Prozessor(en)
16 GB RAM
HD Graphics 4600
AutoCAD 2019
MicroStation ab V5 bis V8i SS4
ab und an auch CONNECT
VENTURIS ab 7.8

erstellt am: 27. Mai. 2010 08: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 dleckste 10 Unities + Antwort hilfreich

Original erstellt von dleckste:

Und nun zur Schlüsselfrage wie mache ich aus der *mvba ein Aufrufbares makro via Keyin?

Hallo Daniel,
ohne dass ich mir in der Kürze  den Inhalt der vba verinnerlicht hätte.

Wenn das mvba-Projekt geladen ist:
vba run Export_Plan

Dies kann auch in eine ACSII-Datei geschrieben werden und dann als Stapelverarbeitzng (ist in der Hilfe eigentlich ganz gut erklärt) ablaufen.
Viel Glück
 

------------------
Beste Grüße
HeCader

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

dleckste
Mitglied


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

Beiträge: 4
Registriert: 03.03.2009

erstellt am: 27. Mai. 2010 08: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

HeCader,

danke für den Tip. Leider kann ich kein Stapelverarbeitung anstarten lassen, da bei uns alle mit Powerdraft arbeiten. ICh habe zwar selbst Microstation drauf aber ich möchte auch nicht alle Dwg oder DXF erstellen.

Gruß Dleckste

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

HeCader
Mitglied



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

Beiträge: 514
Registriert: 01.03.2007

Windows 10 Professional x64 SP1
Intel(R) Core(TM) i7-4600M CPU @ 2.90GHz
2 Kern(e), 4 logische(r) Prozessor(en)
16 GB RAM
HD Graphics 4600
AutoCAD 2019
MicroStation ab V5 bis V8i SS4
ab und an auch CONNECT
VENTURIS ab 7.8

erstellt am: 27. Mai. 2010 13: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 Nur für dleckste 10 Unities + Antwort hilfreich

Hallo Daniel,
ich weiss nicht, was Powerdraft alles (nicht) kann.

aber ohne Stapelverarbeitung den Makroaufruf nur als KeyIn
vba run Export_Plan
auslösen.

------------------
Beste Grüße
HeCader

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

CADesign
Mitglied
IT Manager CAD/CAE


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

Beiträge: 247
Registriert: 26.07.2001

erstellt am: 26. Jan. 2012 16:11    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 dleckste 10 Unities + Antwort hilfreich


test_exp1a.mvba.txt

 
Hallo Forum,    

um das Thema nochmal aufzugreifen suchen wir die Möglichkeit V7/V8 DGN's nach DWG's zu EXPORTIEREN (nicht Save as..), leider bietet mir VBA "EXPORT" keine Möglichkeit als DWG Filter auszugeben, hingegen "SAVE AS" schon.
Hintergrund: File als DWG wird falsch erzeugt, wird vorgegaukelt das es eine DWG als Erweiterung ist, in Wirklichkeit ist es eine V8 DGN.    

Anhang: (File *.txt nach dem downloaden einfach entfernen)
Macro1 (SAVE AS) ist I.O.
Macro2 (EXPORT) ist nicht I.O.

-------
    CadInputQueue.SendKeyin "task sendtaskchangedasync"

    CadInputQueue.SendKeyin "task sendtaskchangedasync ""\Drawing"""
-------
werden hier (nach der Übernahme aus Save as..) nicht unterstützt

Bitte um Abhilfe, Danke!

Gruß Michael

------------------
Manchmal verliert man, manchmal gewinnen die anderen.

[Diese Nachricht wurde von CADesign am 30. Jan. 2012 editiert.]

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

LAG-FK
Mitglied
CAD-Techniker/Admin


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

Beiträge: 315
Registriert: 24.11.2010

MS-V8i-SS4 Vers. 08.11.09.833, PowerDraft-V8i-SS4 Vers. 08.11.09.833, MS-XM Vers. 08.09.02.82, FME-2013, Corel-X5, ACAD 2016, GeoMedia Plus

erstellt am: 30. Jan. 2012 14: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 dleckste 10 Unities + Antwort hilfreich


Stapelkonvertierung.gif

 
Hallo,

Also wenn ich das Thema richtig deute könnte -> Stapelkonvertierung die Lösung sein zu finden unter Extras dort hat man als Ausgabeformat MS v7 + v8, DWG u. DXF siehe Anhang zur Auswahl

Gruß
Franz

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

CADesign
Mitglied
IT Manager CAD/CAE


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

Beiträge: 247
Registriert: 26.07.2001

erstellt am: 30. Jan. 2012 14: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 dleckste 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von LAG-FK:
Hallo,

Also wenn ich das Thema richtig deute könnte -> Stapelkonvertierung die Lösung sein zu finden unter Extras dort hat man als Ausgabeformat MS v7 + v8, DWG u. DXF siehe Anhang zur Auswahl

Gruß
Franz


Hallo Franz,

die Stapelkonvertierung ist uns natürlich bekannt, wir benötigen MVBA Routienen, dies mit Export war nur ein Auszug für das Exportieren -> DWG nach der aufwendigen Modifikation der vielen Modelle.

Batch Process ist hier leider auch keine Lösung da einige Key-In Befehle hier nicht untertützt werden. MVBA hat hie wesentlich mehr Möglichkeiten.

Hintergrund ist die Fuktion "CadInputQueue.SendCommand "DIALOG EXPORT" für DWG Export wird hier irgend wie nicht komplett unterstützt, und bricht ab!?
Wir wollen diese Funktion nutzen weil hingegen "SAVE AS" die Daten (im Batch ca. 700 Modelle) im nachhinein unnötig wieder öffnet, das ist ein zus. Zeitverlust.

Gruß...Michael

------------------
Manchmal verliert man, manchmal gewinnen die anderen.

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

LAG-FK
Mitglied
CAD-Techniker/Admin


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

Beiträge: 315
Registriert: 24.11.2010

MS-V8i-SS4 Vers. 08.11.09.833, PowerDraft-V8i-SS4 Vers. 08.11.09.833, MS-XM Vers. 08.09.02.82, FME-2013, Corel-X5, ACAD 2016, GeoMedia Plus

erstellt am: 28. Feb. 2012 14:23    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 dleckste 10 Unities + Antwort hilfreich


savecopy.txt

 
Hallo,

Versuch doch mal den Inhalt aus dem txt siehe Anhang einzubauen es wird dabei zwar nur eine Kopie des DGN erzeugt aber immerhin ein echtes DWG od. DXF. Änderung ob DXF bzw. DWG kann man umstellen, wie im txt ersichtlich ist jetzt auf DWG wen Du auf DXF änderst kein Problem. Ich hatte nur kurz Zeit zum testen aber möglicherweise eine Hilfe für dein Problem.

Gruß
Franz

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

CADesign
Mitglied
IT Manager CAD/CAE


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

Beiträge: 247
Registriert: 26.07.2001

erstellt am: 04. Apr. 2012 11:43    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 dleckste 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von LAG-FK:
Hallo,

Versuch doch mal den Inhalt aus dem txt siehe Anhang einzubauen es wird dabei zwar nur eine Kopie des DGN erzeugt aber immerhin ein echtes DWG od. DXF. Änderung ob DXF bzw. DWG kann man umstellen, wie im txt ersichtlich ist jetzt auf DWG wen Du auf DXF änderst kein Problem. Ich hatte nur kurz Zeit zum testen aber möglicherweise eine Hilfe für dein Problem.

Gruß
Franz


Hallo Franz, vielen Dank dafür, hat ebenfalls funktioniert allersings auch mit SaveAs...,
wir haben die Möglichkeit gesucht die Modelle auf dem direkten Wege massenhaft zu exportieren ohne diese nochmal zu öffnen da es bei großen Modellen menge Zeit (DWG/DXF)benötigt wird u.a. bekommen wir Abstürze weil MS V8i leider bekannlich im Batch Cache't und abschmiert, da kann man aber in VBA eine begrenzte Anzahl an Daten festlegen, und MS neustarten lassen.

Mittlerweile haben wir die Lösung gefunden taatsächlich über die Key-In Befehle:

in VBA:    CadInputQueue.SendKeyin "export dwg"

So lassen sich auch DXF,V7,V8 Modelle auf dem direkten Wege ausleiten!

Gruß...Michael

------------------
Manchmal verliert man, manchmal gewinnen die anderen.

[Diese Nachricht wurde von CADesign am 04. Apr. 2012 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)2023 CAD.de | Impressum | Datenschutz