Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Brauche Hilfe!

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Franklyn572 an!   Senden Sie eine Private Message an Franklyn572  Schreiben Sie einen Gästebucheintrag für Franklyn572

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 08. Mrz. 2006 08:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4191
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 08. Mrz. 2006 08:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Franklyn572 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Franklyn572 an!   Senden Sie eine Private Message an Franklyn572  Schreiben Sie einen Gästebucheintrag für Franklyn572

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 08. Mrz. 2006 13:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 08. Mrz. 2006 14:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Franklyn572 10 Unities + Antwort hilfreich

Hallo Franz,

nutze das Lokalfenster und setz' auch mal nen F1 auf 'centroid' ab;-)

HTHHope this helps (Hoffe, es hilft weiter) 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


Sehen Sie sich das Profil von Franklyn572 an!   Senden Sie eine Private Message an Franklyn572  Schreiben Sie einen Gästebucheintrag für Franklyn572

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 10. Mrz. 2006 18:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Carsten1210 an!   Senden Sie eine Private Message an Carsten1210  Schreiben Sie einen Gästebucheintrag für Carsten1210

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Franklyn572 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 10. Mrz. 2006 19:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Franklyn572 10 Unities + Antwort hilfreich

Hallo Franz,

okay, hier das ultimative Freitags-Centroid-Code-Beispiel mit Punkteinfügen;-)

Viel Spass,
HTHHope this helps (Hoffe, es hilft weiter), 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


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 10. Mrz. 2006 21:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Franklyn572 10 Unities + Antwort hilfreich

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, IMHOIn my humble oppinion (Meiner Meinung nach) 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


Sehen Sie sich das Profil von Franklyn572 an!   Senden Sie eine Private Message an Franklyn572  Schreiben Sie einen Gästebucheintrag für Franklyn572

Beiträge: 6
Registriert: 08.03.2006

erstellt am: 11. Mrz. 2006 17:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!!
Es funktioniert

Ich weiß gar nicht wie ich euch Danken soll!!

Echt super!

Mfg
Franz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz