Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Flächennachweis

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  Flächennachweis (2057 mal gelesen)
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: 01. Feb. 2004 19:26    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 zusammen,

möglicherweise schreib' ich jetzt auch bissel Stuss, skusi,
ich komm' aber nicht auf den Trichter  , folgendes:

Ich versuche mich an einer Flächenberechnung und dachte halt dazu gleich die ADT-Object Lib's zu nehmen. Aber da tappse ich brutalst nebulös rum, auch F1 betreffend.

Alles was ich da fabriziert habe geht logischerweise nur bei rechteckigen Räumen, also Länge x Breite.

Sub test()
Dim areas As AecSpace
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("ss_1")
sset.SelectOnScreen
Open "areas_1.txt" For Output As #1
For Each areas In sset
Print #1, areas.Description & ";" & areas.Length & ";" & areas.Width
Next
Close #1
sset.Delete
End Sub

Da dies nun bissel wenig ist, ich aber mit der adt-Variante nimmer weiter komme, dachte ich nun an eine konventionelle Lösung via Polylinien.
Ich bräuchte aber eben den rechnerischen Nachweis, etwa nach so einem Schema oder ähnlich:

Raum1;Länge;Breite
; ;Länge;Breite
; ;Länge;Breite;/2

Raum2;Länge;Breite

Raum3;Länge;Breite
; ;Länge;Breite;/2
; ;Länge;Breite;/2

Wobei die m² Ergebnisse sekundär sind, da ich's eh in xls reinnehmen will, mir gehts nur um die Basisdaten, die den Raum beschreiben.

Sooo, nun meine 'Querbeet'-Fragen:

- wie geh' ichs an?

- wie bekomm' ich die n-Points einer Polylinie in Form von:
  point1 coord(0) & coord(1)
  point2 coord(0) & coord(1)
  ... usw, halt point(n)

- über Polylines überhaupt machbar oder 'Wahnsinn'?

- ADT & VBA, hat da hier schonmal wer damit gearbeitet & hätte ggf nen Tip?

lg Nancy
--
Shit makes the flowers grow and that's beautiful 

                                 

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 02. Feb. 2004 08:46    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 startrek 10 Unities + Antwort hilfreich

hi,
die Koordinaten einer Polylinie bekommst Du schonmal so:

Sub ReadPloyCoord()
Dim objAcad As AcadObject
Dim varCoord As Variant
Dim BasePnt
Dim sPointX, sPointY As Double

ThisDrawing.Utility.GetEntity objAcad, BasePnt, "Select a Polyline"
varCoord = objAcad.Coordinates'Koordinaten holen

sPointX = varCoord(0): sPointY = varCoord(1)' 1. Punkt festhalten für Prüfung ob geschlossen

For i = LBound(varCoord) To UBound(varCoord) Step 2' in zweier Schritten durchlaufen
    Debug.Print varCoord(i) & " / " & varCoord(i + 1)
Next
i = i - 2'zurück setzten auf letzten Punkt
If varCoord(i) = sPointX And varCoord(i + 1) = sPointY Then 'geschlossen?
    Debug.Print "closed"
Else
    Debug.Print "open"
End If
End Sub

Mir fehlt allerdings jetzt jeglicher Ansatz wie Du mit den Koordinaten die Fläche ausrechnen willst, wenn ich davon ausgehe das Du nicht nur Rechteckige Shapes hast.

Gruss,
Harry

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: 02. Feb. 2004 10: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

Morgen Harry,

Danke erstmal, das geht ja schonmal wunderbar.

Ich geb' Dir nun natürlich recht betreffs der weiteren Verwertung der coords, noch etwas confused ...
Meine Gedanken waren etwa, rein theoretisch, müsste man für jede pline einen Ursprung (0,0) setzen [da gab's ja hier schon was] und dann halt jede Koordinate mit der vorhergehenden vergleichen und Pythagoras und ... und ...
Keine Ahnung, wahrscheinlich 'Kult' ohne Ende.

CUSee you = Wir sehen uns Nancy

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 02. Feb. 2004 10: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 startrek 10 Unities + Antwort hilfreich

Flaeche=objPolyLine.area ???

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: 02. Feb. 2004 10:49    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

Hi Harry,

yups schon klar, aber eben der rechnerische Nachweis, zB:

Summe Fläche = 10
Teilfläche1: 2 * 2 = 4
Teilfläche2: 3 * 4 * 0,5 = 6

lg Nancy

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 02. Feb. 2004 11: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 Nur für startrek 10 Unities + Antwort hilfreich

getz nich lachen..

Fläche gipps schon, gut., nen Dreieck ists wenn die Anzahl der Koordinaten Paare 4 nicht übersteigt (oder 8 Werte), eine Segmentlänge können wir auch ermitteln z.B. aus den ersten beiden Koordinaten Paaren. Wenns denn nur für den Nachweis ist und A=g*h/2, dann würd ich erstmal mit h=A*2/g den fehlenden Wert ermitteln und mit Drucken. Quick'n Dirty aber führt zum Ziel.

Gruss,
Harry

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: 02. Feb. 2004 12:07    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

neeeeneee ich lach nicht  , thx

war zwischenzeitlich hierbei, das harkt aber noch bissel was deltaY angeht, kleiner Knoten im Kopf:

For i = LBound(varCoord) To UBound(varCoord) Step 4
Debug.Print varCoord(i) & " / " & varCoord(i + 1) & " / " & varCoord(i + 2) & " / " & varCoord(i + 3)
Debug.Print "deltaX " & varCoord(i + 2) - varCoord(i) & " deltaY " & varCoord(i + 3) - varCoord(i + 1)
Next

lg Nancy

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 02. Feb. 2004 13:27    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 startrek 10 Unities + Antwort hilfreich

bin ich auf dem richtigen Weg das Du einzelne Polygonzüge (Dreieck oder Rechteck) auswerten möchtest oder doch ein Vieleck und das dann rechnerisch zerlegen?

Harry

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: 02. Feb. 2004 13:43    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

okay, ich sag' mal 'Vieleck' oder eben im Grundriss 'Räume', die haben ja nun nicht nur immer 4 Ecken, sondern eben manchmal mehr oder 45° abgewinkelt oder so.

Nochwas, der 'Knoten' war das Step 4, ich habe da wieder Step 2 draus gemacht und den Rest gelassen, voila da gings 
(Naja bis auf den Laufzeitfehler beim letzten Punkt)

lg Nancy

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 02. Feb. 2004 14:03    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 startrek 10 Unities + Antwort hilfreich

dann schau mal hier unter 2.
http://www.informatik.tu-freiberg.de/lehre/ueb_material/office/excel_auf.html

lässt mir keine Ruhe, probier ich jetzt.

Bis denne!
Harry

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: 02. Feb. 2004 14:36    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

Mensch Harry, Danke für deinen Support & thx für den Link 

Ich bin mir jetzt nicht ganz sicher, denke aber auch, alles weitere in xls, dh. der Code liefer mir jetzt zB sowas:

deltaX 42,6016337897688 deltaY 0
deltaX 0 deltaY 47,5005143514831
deltaX -16,2585945120821 deltaY 0
deltaX 0 deltaY -20,3573632760519
deltaX -10,2902497212156 deltaY -12,132166109952
beep
deltaX -16,0527895564711 deltaY 0
deltaX 0 deltaY -15,0109849654792

Soo jetzt halt das ganze in eine *.txt oder gleich nach excel schreiben, oki, und dann mal weiterschaun ...

(Den Laufzeitfehler beim letzten Punkt hab' ich mal fahrlässig/grob mit on error resume next ignoriert)

BTWBy the way = Nebenbei bemerkt, ich wollte Dich aber nicht unbedingt aus der Ruhe bringen 

CUSee you = Wir sehen uns Nancy

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

harryk
Mitglied
Projektleiter


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

Beiträge: 124
Registriert: 19.08.2003

erstellt am: 03. Feb. 2004 04: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 startrek 10 Unities + Antwort hilfreich

so, dat funzt. Hat aber eher was mit Sportlichkeit zu tun. Soll heissen das ich mir die diese Code Snippets in die Datenbank schreibe und bei Bedarf dann in der Mittagspause für eine schnelle Lösung zusammen kloppe. Von selbst fallen mir solche Probleme ja nicht ein...

Danke für den Ansporn!
Harry

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