| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: AUTOCAD VBA (1372 mal gelesen)
|
eilovliz Mitglied Technischer Zeichner

 Beiträge: 48 Registriert: 24.06.2004
|
erstellt am: 24. Jun. 2004 07:30 <-- editieren / zitieren --> Unities abgeben:         
hy leute! erstmal find ich das forum superinteressant und echt hilfreich! aber bei einem Problem komm ich dennnoch nicht weiter! und zwar! es geht um vba. ich möchte über einen button einen block aus einem Verzeichnis in Autocad 2002 einfügen! ich hab zwar schon herrausgefunden das es den befehl "ThisDrawing.ModelSpace.InsertBlock" gibt aber ich weis nicht wie ich den Pfad und die x,y,z position angebe. kann mir bitte wer helfen! danke Im vorraus. MFG EilovLiu
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MartinM Mitglied
 
 Beiträge: 122 Registriert: 27.11.2001 ACAD Map2015 3D, W7 x64 Prof. SP3
|
erstellt am: 28. Jun. 2004 10:25 <-- editieren / zitieren --> Unities abgeben:          Nur für eilovliz
Hallo EilovLiu, mal auf die schnelle.... Dim blockRefObj As AcadBlockReference Dim dblInsertPoint(0 To 2) As Double Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblInsertPoint, "C:\Temp\Block.dwg", 1#, 1#, 1#, 0) ...ich hoffe es hilft dir weiter. viele Grüsse Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
eilovliz Mitglied Technischer Zeichner

 Beiträge: 48 Registriert: 24.06.2004
|
erstellt am: 30. Jun. 2004 17:47 <-- editieren / zitieren --> Unities abgeben:         
Hallo Martin! danke das du dir zeit genommen hast mir eine antwort u schreiben. wenn ich es so mache Private Sub CommandButton1_Click() Dim blockRefObj As AcadBlockReference Dim dblInsertPoint(0 To 2) As Double Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblInsertPoint, "C:\block.dwg", 1#, 1#, 1#, 0) End Sub dann müsste ich theoretisch durch den button click einen block einfügen können aber ich bekomme immer einen Laufzeitfehler! ich hab auch einige sachen probiert aber irgendwie funktioniert das nicht. wenn du noch zeit hast und dir noch was einfällt würd ich mich sehr freun und es würde mir sehr helfen. danke für alles Grüße eilovliz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MartinM Mitglied
 
 Beiträge: 122 Registriert: 27.11.2001 ACAD Map2015 3D, W7 x64 Prof. SP3
|
erstellt am: 01. Jul. 2004 08:14 <-- editieren / zitieren --> Unities abgeben:          Nur für eilovliz
Hallo EilovLiu, es werden hier noch keine Fehler abgefangen, d.h. du musst sicherstellen dass der Block (in meinem Beispiel C:\Temp\Block.dwg) auch existiert. Des weiteren musst du überlegen, wie du den Einsetzpunkt (Koordinaten) übergibst - dieses habe ich in mein Beispiel noch eingebaut (durch Klick des Anwenders). Dim blockRefObj As AcadBlockReference Dim dblInsertPoint(0 To 2) As Double dblInsertPoint = ThisDrawing.Utility.GetPoint(, "BlockPosition angeben ([ENTER] für Abbruch): ") Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(dblInsertPoint, "C:\Temp\Block.dwg", 1#, 1#, 1#, 0) viele Grüsse Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Marco Lorenz Mitglied Softwareentwickler, freier Inventor & AutoCAD Händler

 Beiträge: 59 Registriert: 18.09.2001 Win NT,2k,XP Pro Acad+Mechanical2k-2005, Inventor 5-9
|
erstellt am: 18. Jul. 2004 23:49 <-- editieren / zitieren --> Unities abgeben:          Nur für eilovliz
Mit der InsertBlock-Methode gehts zwar, aber Du hast den Block nicht am Cursor sichtbar, wenn Du den Einfügepunkt vorher zeigst. Probiers mal damit: Public Sub test() Dim xScale As Double Dim yScale As Double xScale = 2.1 yScale = 1.25 ThisDrawing.SendCommand _ "(command ""-_insert"" ""test1"" Pause " & xScale & " " & yScale & " 0)" & vbCr End Sub Aber Achtung: Falls Du mehr als eine Pause machst (z.B. auch noch für Skalierfaktor oder Einfügewinkel), dann läuft VBA asynchron weiter (bei einer Pause funktionierts seit 2000i)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |