Hallo miteinander,
ich habe mich jetzt erst gestern in VB.NET und ObjectARX ganz oberflächlich eingearbeitet und wollte einfach mal folgendes zum Laufen bringen.
Ich wähle Teile aus einem 3D-Modell aus, starte meine .dll und dann soll er mir die Auswahl in die Zwischenablage kopieren, eine neue Zeichnungsdatei aus einer Vorlage erstellen und in die dann die Auswahl einfügen.
Die Befehle habe ich für sich genommen ausprobiert und sie funktionieren - eigentlich. Bei _copyclip ist mir allerdings aufgefallen, dass er mir die Auswahl wieder löscht und eine neue Auswahl haben möchte. Die muss ich dann mit Enter erst noch bestätigen. Ganz anders wie wenn ich zum Beispiel Strg+C drücke, dann hat er die Auswahl in die Zwischenablage kopiert. So hatte ich mir das eigentlich gedacht.
Deswegen wartet er jetzt, bis ich ihm die neue Auswahl gegeben habe, führt aber natürlich dann den Rest der Befehle schon aus.
Frage daher: wie kriege ich das hin, dass er ohne Rückfrage meine anfängliche Auswahl in die Zwischenablage kopiert und danach erst den weiteren Code ausführt?
Danke euch schon mal!
Und hier mein Code:
Code:
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Geometry
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Colors
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.CommonPublic Class Test
<CommandMethod("test")> _
Public Sub test()
' Aktive Auswahl wird in die Zwischenablage kopiert
Dim app As AcadApplication = Application.AcadApplication
app.ActiveDocument.SendCommand("_copyclip ")
' Öffnet eine neue Zeichnungsdatei aus dem Advanced Steel Template
' Wird kein Verzeichnisname angegeben, werden die Standardeinstellungen benutzt
' Notiz: Die neue Zeichnung wird aktiv gesetzt
Dim strTemplatePath As String = "C:\ProgramData\Graitec\Advance Steel\2012\Shared\Support\Templates\ASTemplate.dwt"
Dim acDocMgr As DocumentCollection = Application.DocumentManager
Dim acDoc As Document = acDocMgr.Add(strTemplatePath)
acDocMgr.MdiActiveDocument = acDoc
'Fügt die Auswahl in die neue Datei ein
app.ActiveDocument.SendCommand("_pasteclip 0,0,0 ")
app.ActiveDocument.SendCommand("_zoom _e ")
End Sub
End Class
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP