Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Gesamtfläche Regionen

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
Autor Thema:  Gesamtfläche Regionen (288 mal gelesen)
Lenzcad
Ehrenmitglied
Selbständiger Handwerker


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

Beiträge: 1500
Registriert: 21.10.2003

erstellt am: 22. Jul. 2004 13:17    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 Leute,
ich habe eine 3D-Zeichnung mit mit vielen einzelnen Regionen, alle liegen relativ nah zusammen. Ich brauche die Gesamtfläche aller Regionen. Mit "area" muß ich jedes einzelne Objekt anklicken, das dauert sehr lange und ich weiß zum Teil nicht mehr was ich bereits ausgewählt habe. Weiß jemand eine Lisp oder so was, bei der ich alle Objekte auf einmal auswählen kann.
Mit "Suchen" bin ich nicht fündig geworden.
Vielen Dank
Gruß Lenz

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 22. Jul. 2004 13:29    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 Lenzcad 10 Unities + Antwort hilfreich

evtl sollte du dir den Befehl _area mal genauer ansehen !

Acad spricht mit dir - du mußt nur zuhören
(weil das sehr leise ist, solltest du aber eher die Befehls+Statusleiste lesen)

Der Befehl kann ADDITIEREN !

------------------
- Sebastian -

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

Cadzia
Ehrenmitglied V.I.P. h.c.
CAD/Grafik-Dienstleister



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

Beiträge: 2912
Registriert: 02.07.2004

AutoCAD 2020 + MAP + WS.LandCAD
Bricscad V21 pro

erstellt am: 22. Jul. 2004 13:34    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 Lenzcad 10 Unities + Antwort hilfreich

für sowas verwende ich das geniale Tool "fla_ber" (von der Cadwiesel-Seite)


(defun c:fla_ber ( / t_2 Ss)

;;(if
;; (/= (findfile "md_fla.dwg")nil)
;;(progn

(setq Ss nil
t_2 nil)

(setq Ss (ssget ));'((0 . "LWPOLYLINE"))))
(if (not Ss) (princ (strcat "\nNichts gewählt."))
(progn
(command "_.area" "_a" "_o")
(while (setq t_2 (ssname Ss 0))
;;; (setq md_in (cdr (assoc 10 (entget t_2))))
;;; (setq md_rnr_in (ssget "X" t_2))
;;; (setq startp md_in)
(command t_2)
(setq Ss (ssdel t_2 Ss))
);while
(command "" "")
(princ "\n")
(princ
(strcat "\n*****Gesamtfläche: " (rtos (getvar "area") 2 5)))(terpri)
;(command "_.Insert" "md_fla" startp "1" "1" "0" (rtos (getvar "area")2 2))
);endprogn
);endif
(setq startp (getpoint "Einfügepunkt:"))
(command "_text" startp "2.5" "0" (rtos (getvar "area")2 2))

;;);ende progn
;;);end if
(princ)
)

------------------
Grüße Karin

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


Ex-Mitglied

erstellt am: 22. Jul. 2004 14:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von Cadzia:
für sowas verwende ich das geniale Tool "fla_ber" (von der Cadwiesel-Seite)

(command "area" ...
(getvar "area")


In Programmen empfiehlt sich besser diese Funktion zur Ermittlung der Fläche: (vlax-get-property object 'area)

Die Summenermittlung würde also einfach so aussehen:

(defun c:ss-flaeche (/ sset)
  (if (setq sset (ssget))
    (princ
      (strcat "Summe der Flächen: " (rtos (ss-flaeche sset) 2 10))
    )
  )
  (prin1)
)

(defun ss-flaeche (sset / fl fl-l)
  (foreach obj (ss-s2o sset)
    (if (and (vlax-property-available-p obj 'area)
    (setq fl (vlax-get-property obj 'area))
)
      (setq fl-l (cons fl fl-l))
    )
  )
  (apply '+ fl-l)
)

;;; Hilfsfunktion:
;;; macht aus einem Auswahlsatz eine Liste von VLA-Objekten
(defun ss-s2o (sset / eset counter)
  (setq counter 0)
  (if (= 'PICKSET (type sset))
    (repeat (sslength sset)
      (setq eset  (cons (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname sset counter))))) eset)
    counter (1+ counter)
      )
    )
  )
  eset
)

Tom Berger

------------------


Cadzia
Ehrenmitglied V.I.P. h.c.
CAD/Grafik-Dienstleister



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

Beiträge: 2912
Registriert: 02.07.2004

AutoCAD 2020 + MAP + WS.LandCAD
Bricscad V21 pro

erstellt am: 22. Jul. 2004 14:45    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 Lenzcad 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tom.berger:
In Programmen empfiehlt sich besser diese Funktion zur Ermittlung der Fläche: (vlax-get-property object 'area)


Warum ist das besser? beide Tools ermitteln exakt das gleiche Ergebnis. Das andere Tool hat zudem den Vorteil, dass man die Summe gleich als Text bekommt.

------------------
Grüße Karin

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


Ex-Mitglied

erstellt am: 22. Jul. 2004 14:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von Cadzia:
Warum ist das besser? beide Tools ermitteln exakt das gleiche Ergebnis. Das andere Tool hat zudem den Vorteil, dass man die Summe gleich als Text bekommt.

Es ist für den Normalanwender besser, weil der dann keine störenden Rückmeldungen des Befehls _AREA erhältst, der reagiert nämlich nicht auf CMDECHO usw.. Und dann ist das Ganze natürlich auch aus LISP-Sicht besser, weil sowohl der Endbenutzer-Befehl zur Verfügung steht als auch eine LISP-Funktion, die man überall einbauen kann, wo man sie benötigt. Und dann ist meine Funktion auch noch besser, weil sie prüft, ob für die gewählten Objekte überhaupt eine Flächeneigenschaft vorliegt. Deine Funktion gibt fälschlich die doppelte Kreisfläche zurück, wenn z.B. zuerst ein Kreis und dann eine Linie gewählt wird.

Und selbstverständlich wird eine Summe von dieser Funktion als Zahl zurück gegeben. Wer einen String benötigt, der macht das in LISP dann so: (setq summentext (rtos (ss-flaeche sset) 2 10))

Gruß
Tom Berger


------------------


Lenzcad
Ehrenmitglied
Selbständiger Handwerker


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

Beiträge: 1500
Registriert: 21.10.2003

erstellt am: 22. Jul. 2004 15:24    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

Vielen Dank, für die Menge nützlicher Antworten. Jetzt muß ich erst einmal probieren was bei mir passt.

Gruß Lenz

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


Ex-Mitglied

erstellt am: 22. Jul. 2004 15:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von Lenzcad:
Vielen Dank, für die Menge nützlicher Antworten. Jetzt muß ich erst einmal probieren was bei mir passt.

Gruß Lenz


Du kannst ja noch einen Befehl zum Erzeugen eines Textelements hinzufügen, womit auch die Sinnhaftigkeit des modularen Programmiersns nochmals unterstrichen wäre:

(defun c:ss-flaechentext (/ sset startp)
  (if (and (setq sset (ssget))
          (setq startp (getpoint "Texteinfügepunkt:"))
      )
      (command "_text" startp "2.5" "0" ((rtos (ss-flaeche sset) 2 10)))
  )
  (prin1)
)

Tom Berger

------------------


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)2023 CAD.de | Impressum | Datenschutz