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