| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Brauche Hilfe! (1630 mal gelesen)
|
Franklyn572 Mitglied
 Beiträge: 6 Registriert: 08.03.2006
|
erstellt am: 08. Mrz. 2006 08:01 <-- editieren / zitieren --> Unities abgeben:         
Hallo an alle Experten! Ich bin VBA-Autocad Anfänger. Ich möchte den Flächenschwerpunkt einer beliebig erstellter Region mittels VBA Code berechnen lassen. Ich habe mir das Buch "Autocad programmieren mit VBA" gekauft - leider wird auf so ein Beispiel nicht eingegangen. Ich bin am Verzweifeln weil ich bis nächste Woche ein Beispiel zu VBA programmieren unter Autocad presentieren soll. Wer kann mir da weiterhelfen. mfg Franz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH

 Beiträge: 4191 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 08. Mrz. 2006 08:35 <-- editieren / zitieren --> Unities abgeben:          Nur für Franklyn572
Hallo Franz, wo ist denn genau das Problem? Berechnen brauchst du bei einer Region nichts, da dies bereist als Eigenschaft des Objektes seitens AutoCAD zur Verfügung gestellt wird. Du musst zur Objektwahl auffordern und dann die Eigenschaften des Objektes z.B. in einer msgbox zur Ansicht bringen. In dem Buch ist sicher beschrieben, wie man Auswahlsätze bildet, wie man Eigenschaften von Objekten ermittelt, ... Bei Fragen ... Grüße Holger
------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Franklyn572 Mitglied
 Beiträge: 6 Registriert: 08.03.2006
|
erstellt am: 08. Mrz. 2006 13:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo Holger !! Danke für Deine schnelle Antwort! Ich glaube der Einlesevorgang der Region wird über: Variablen Deklaration usw. .......................... 'Einlesen der Region Prompt = "Wählen Sie eine Region: " ThisDrawing.Utility.GetEntity Object, PickedPt, Prompt Mein Problem ist nur, wenn ich die Region nun gewählt habe, wie ich die Eigenschaften der Region wie Schwerpunkt oder auch Flächeneinheiten usw. ermitteln kann. Die Ausgabe durch eine msgbox dürfte kein Problem darstellen (hoffe ich zumindest!!!) Vielleicht könntest du mir da weiterhelfen das wär echt super weil ich bin schon am verzweifeln! Danke im voraus mfg Franz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 08. Mrz. 2006 14:12 <-- editieren / zitieren --> Unities abgeben:          Nur für Franklyn572
Hallo Franz, nutze das Lokalfenster und setz' auch mal nen F1 auf 'centroid' ab;-) HTH Nancy --
Code:
Sub a() Dim r, x Set r = ThisDrawing.ModelSpace(0) Stop 'Lokalfenster sh. r.Area ----------> x = r.Centroid Debug.Print x(0); x(1)End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Franklyn572 Mitglied
 Beiträge: 6 Registriert: 08.03.2006
|
erstellt am: 10. Mrz. 2006 18:21 <-- editieren / zitieren --> Unities abgeben:         
Hallo startrek! Danke für die Antwort Sorry dass ich dich nochmal belästigen muss aber ich brings einfach nicht zusammen dass ich eine beliebige Fläche (Region) einlese und das der Flächenschwerpunkt berechnet wird und auf der Region als Punkt ausgegeben wird. In der Hilfe steht zwar ein Beispiel mit einem Volumenkörper (Quader), dieser wird aber zuerst generiert und dann der Flächenschwerpunkt ausgegeben (als Zahlenwert) d.h.: hier kommt es auch zu keinem Einlesevorgang. Ich hoffe du weißt was ich meine? Wie gesagt ich bin ein kompletter Anfänger und bitte deshalb um weitere Hilfe Bye Franz 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. Mrz. 2006 18:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Franklyn572
Hallo Franz, Probier mal folgendes: Public Sub test() Dim Object As Object Dim promt As String Dim Pickedpoint As Variant On Local Error Resume Next promt = "Objekt wählen:" Utility.GetEntity Object, Pickedpoint, promt If TypeName(Object) <> "Nothing" Then MsgBox Object.ObjectName & vbCr & " Fläche = " & Object.Area End If End Sub Da kannst du das Object auswählen und es wird dir die Fläche zurück gegeben. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 10. Mrz. 2006 19:20 <-- editieren / zitieren --> Unities abgeben:          Nur für Franklyn572
Hallo Franz, okay, hier das ultimative Freitags-Centroid-Code-Beispiel mit Punkteinfügen;-) Viel Spass, HTH , Nancy --
Code:
Sub Franz() Dim ent As AcadEntity, p, SP, flag As Boolean On Error Resume Next Do ThisDrawing.Utility.GetEntity ent, p, "Objekt wählen:" If Err Then Exit Sub If TypeName(ent) = "IAcadRegion" Or _ TypeName(ent) = "IAcad3DSolid" Then SP = ent.Centroid If UBound(SP) = 1 Then 'wenn Region ReDim Preserve SP(2) SP(2) = 0 End If ThisDrawing.ModelSpace.AddPoint SP flag = 1 End If If flag Then Exit Do ThisDrawing.Utility.Prompt "no valid object " Loop End Sub
[Diese Nachricht wurde von startrek am 10. Mrz. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
startrek Moderator Architekt
   
 Beiträge: 1361 Registriert: 13.02.2003 .
|
erstellt am: 10. Mrz. 2006 21:28 <-- editieren / zitieren --> Unities abgeben:          Nur für Franklyn572
Hallo nochmal, eh's zusehr verwirrt, hier nochmal was F1 auf Centroid sagt:
Code:
object.Centroid object 3DSolid, Region The object or objects this property applies to. Centroid Variant (two-element array of doubles); read-only The 2D coordinate representing the centroid. Remarks The centroid is returned as X and Y coordinates defined as a variant.
Nur mal als Anmerkung, IMHO steht da etwas Käse in der Hilfe;-)Sie stimmt insofern, wenn man zB ein Rechteck erzeugt, dies in eine Region verwandelt, und dann den Centroid der Region abfragt. Da erhält man tatsächlich zwei Elemente als Return, also Centroid(0) und Centroid(1), resp. x und y. Bei 3DSolids allerdings ist Retval ein Feld von 3 Elementen, also da gibts auch ein centroid(2), also z. Das wollte ich nur mal noch vorsichtshalber sagen, da ich wiegesagt finde die Hilfe gibt das etwas hm... - naja sagen wir mal - nicht 100% korrekt rüber. Und da AddPoint unbedingt einen Z-Wert, also ein drittes Element braucht, hab' ich das halt - wenn nicht vorhanden - dazugemogelt;-) Gruss Nancy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Franklyn572 Mitglied
 Beiträge: 6 Registriert: 08.03.2006
|
erstellt am: 11. Mrz. 2006 17:52 <-- editieren / zitieren --> Unities abgeben:         
|