| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: Rechteck zeichen (1141 mal gelesen)
|
Beyerlein Mitglied Praktikant
 Beiträge: 4 Registriert: 10.11.2004 ACAD 2000i,Map,NT
|
erstellt am: 25. Nov. 2004 16:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich hoffe dass ich als Frischling in dem Metier ACAD und VBA keine banale Frage stelle. Ich möchte ein Rechteck zeichen. Das kann ich als Polylinie machen, ok. In ACAD gibt es den Befehl _rectangle wo man nur 2 Punkte noch eingeben muss. Ich habe schon einige Zeit in der Hilfe verbracht, aber nichts passendes dafür gefunden. Kann mir jemand sagen wo ich genau suchen muss? Danke. Ralf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Proxy Ehrenmitglied Stateless-DHCP v6-Paketfragmentierer
    
 Beiträge: 1629 Registriert: 13.11.2003 Tastaturen, Mäuse, Pladden, Monitore, ..., einige AutoCADs 200x & SWX 2kX
|
erstellt am: 25. Nov. 2004 19:23 <-- editieren / zitieren --> Unities abgeben:          Nur für Beyerlein
Alle "Objekte" wie Rechteck gibt es genauso weinig wie es überhaupt den Löffel nicht gibt den ich gerade mittels Gedankenkraft ohne Ergebnisse verbiegen möchte, ergo => Code:
Public Sub Rectangle() Dim objPL As AcadLWPolyline Dim objUtil As Object Dim objSpace As AcadBlock Dim dblPnts(7) As Double Dim varPnt1 As Variant Dim varPnt2 As Variant Dim varPnt3 As Variant Dim varPnt4 As Variant Dim strPrmt As String On Error GoTo Err_Control Set objUtil = ThisDrawing.Utility If ThisDrawing.ActiveSpace = acModelSpace Then Set objSpace = ThisDrawing.ModelSpace Else Set objSpace = ThisDrawing.PaperSpace End If strPrmt = vbCr & "First corner " varPnt1 = objUtil.GetPoint(Prompt:=strPrmt) strPrmt = "Opposite Corner: " varPnt3 = objUtil.GetCorner(varPnt1, strPrmt) objUtil.CreateTypedArray varPnt2, vbDouble, _ varPnt3(0), varPnt1(1), 0 objUtil.CreateTypedArray varPnt4, vbDouble, _ varPnt1(0), varPnt3(1), 0 dblPnts(0) = varPnt1(0) dblPnts(1) = varPnt1(1) dblPnts(2) = varPnt2(0) dblPnts(3) = varPnt2(1) dblPnts(4) = varPnt3(0) dblPnts(5) = varPnt3(1) dblPnts(6) = varPnt4(0) dblPnts(7) = varPnt4(1) Set objPL = objSpace.AddLightWeightPolyline(dblPnts) objPL.Closed = True Exit_Here: Exit Sub Err_Control: Select Case Err.Number 'Add your Case selections here Case Else MsgBox Err.Description Resume Exit_Here End Select End Sub
Es muss alles was nicht im Objektmodell vorgesehen ist, selber erzeugt werden,da ein "einfaches" Rechteck über sehr viele Definitionen definiert werden kann. ------------------ "Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?" Read the whole story: The Autodesk File ca. 890 Seiten | 7500 KB PDF [Diese Nachricht wurde von Proxy am 25. Nov. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beyerlein Mitglied Praktikant
 Beiträge: 4 Registriert: 10.11.2004 ACAD 2000i,Map,NT
|
erstellt am: 26. Nov. 2004 10:18 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen Proxy, also ich habe jetzt gelernt, dass wenn etwas nach langer Suche nicht in der Hilfe oder Objektkatalog steht, ich es anders machen kann/soll/muss. Danke für dein Tipp, mein Progrämmchen läuft. Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |