| |
 | 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: Insert block durch knopf drück (2807 mal gelesen)
|
dw Mitglied cad

 Beiträge: 45 Registriert: 29.06.2007
|
erstellt am: 07. Dez. 2007 15:10 <-- editieren / zitieren --> Unities abgeben:         
|
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 07. Dez. 2007 21:33 <-- editieren / zitieren --> Unities abgeben:          Nur für dw
Hallo dw, warum willst Du mit SendCommand den Umweg über die Befehlszeile machen. Probiers mal mit der InsertBlock Methode: Dim insertionPnt(0 To 2) As Double Dim blockRefObj As AcadBlockReference insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0 Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "D:\Autocad\glass.dwg", 1#, 1#, 1#, 0) Natürlich müßtest Du vorher abfragen wohin der Punkt gesetzt werden soll und evtl. Maßstäbe festlegen. Grüße, Klaus PS: Füll doch mal Dein Profil aus (SystemInfo), bei manchen Anfragen kann das ganz hilfreich sein. Außerdem kann Korrekturlesen den anderen Forumslesern vielleicht helfen Deine Anfrage schneller zu verstehen (Stichwort: Tippfehler) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dw Mitglied cad

 Beiträge: 45 Registriert: 29.06.2007
|
erstellt am: 09. Dez. 2007 20:50 <-- editieren / zitieren --> Unities abgeben:         
Danke für dein antword, habe es jetzt zo gemacht aber es wurde mir sehr intresieren wie ich das alles inerhab VBA behalten kann. und type feller kommen vor weil ich Hollander bin sorry... Dim startPnt As Variant 'Het startpunt van dat object, nodig om hoek te bepalen. Dim basePnt As Variant 'Het aanwijspunt van dat object. frmtrusstype.Hide ThisDrawing.Layers.Add ("Eurotruss_FD_31") ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("Eurotruss_FD_31") basePnt = ThisDrawing.Utility.GetPoint(, "Basis punkt angeben:") '(, "" & vbCr & "Basis punkt angeben:") MsgBox "nu komt de rest" ThisDrawing.SendCommand ("_-insert" & vbCr) ThisDrawing.SendCommand ("D:\support\glass.dwg " & vbCr & "basePnt" & vbCr & vbCr & vbCr)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 10. Dez. 2007 08:01 <-- editieren / zitieren --> Unities abgeben:          Nur für dw
Hi dw, Wie Klaus es schon geschrieben hat, musst du folgendes machen: Anstatt:
Code: ThisDrawing.SendCommand ("_-insert" & vbCr) ThisDrawing.SendCommand ("D:\support\glass.dwg " & vbCr & "basePnt" & vbCr & vbCr & vbCr)
musst du das nehmen:
Code: Dim blockRefObj As AcadBlockReference Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "D:\Autocad\glass.dwg", 1#, 1#, 1#, 0)
Gruß, Carsten Edit: Ein Holländer aus der Schweiz?!
[Diese Nachricht wurde von Carsten1210 am 10. Dez. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin

 Beiträge: 2855 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2025 Plateia, Canalis Visual Basic
|
erstellt am: 10. Dez. 2007 12:29 <-- editieren / zitieren --> Unities abgeben:          Nur für dw
Hallo dw, hab Dir den Code noch mal zusammengestellt: Code: Dim startPnt As Variant 'Het startpunt van dat object, nodig om hoek te bepalen. Dim basePnt As Variant 'Het aanwijspunt van dat object. Dim blockRefObj As AcadBlockReference frmtrusstype.Hide
ThisDrawing.Layers.Add ("Eurotruss_FD_31") ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item("Eurotruss_FD_31") basePnt = ThisDrawing.Utility.GetPoint(, "Basis punkt angeben:") MsgBox "nu komt de rest" ' Diese Zeilen sind nicht nötig,
' ThisDrawing.SendCommand ("_-insert" & vbCr) ' ThisDrawing.SendCommand ("D:\support\glass.dwg " & vbCr & "basePnt" & vbCr & vbCr & vbCr) ' dafür: Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(basePnt, "D:\Autocad\glass.dwg", 1#, 1#, 1#, 0) 'sofortiges zeichnen des Blockes blockRefObj.update
Nachteil dieser Methode ist aber dass Attribute nicht abgefragt werden sondern nur der Block gezeichnet wird. Das heißt: Du müßtest die Attribute in Deinem Formular vorher abfragen und dann diese ergänzen. Alternativ könntest Du natürlich auch einen String definieren mit den x,y - Koordinaten und diesen dem SendCommand mitgeben.
Code:
Dim KorText as String Dim SendString as StringKorText = Trim(Str(basePnt(0))) + "," + Trim(Str(basePnt(1))) ThisDrawing.SendCommand ("D:\support\glass.dwg " & vbCr & KorText & vbCr & vbCr & vbCr & vbCr)
Grüße in die Schweiz, Klaus [Diese Nachricht wurde von KlaK am 10. Dez. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dw Mitglied cad

 Beiträge: 45 Registriert: 29.06.2007
|
erstellt am: 11. Dez. 2007 13:28 <-- editieren / zitieren --> Unities abgeben:         
Es funktioniert wunderbar aber wie kann ich jetzt sagen das ich selbst eine grade einfugen will. Set blockRefObj = ThisDrawing.ModelSpace.InsertBlock(basePnt, "D:\Autocad\glass.dwg", 1#, 1#, 1#, 0) was wird gemeint mit 1#, und was muss ich da ändern das ich selbst die Ecke bestimmen kann?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 11. Dez. 2007 14:27 <-- editieren / zitieren --> Unities abgeben:          Nur für dw
|
dw Mitglied cad

 Beiträge: 45 Registriert: 29.06.2007
|
erstellt am: 11. Dez. 2007 15:33 <-- editieren / zitieren --> Unities abgeben:         
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
   
 Beiträge: 1360 Registriert: 24.07.2002 AutoCAD ACA 2024 Solidworks 2022 Sp5 Enterprise PDM 2022 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell Precision 3660 Intel Core i9-12900K 32 GB Arbeitsspeicher 2x Dell U2415
|
erstellt am: 11. Dez. 2007 19:50 <-- editieren / zitieren --> Unities abgeben:          Nur für dw
|