Flächenberechnung und Polylinien

Fragen und Anmerkungen zu den Lispprogrammen von CADwiesel
Antworten
Lapla

Flächenberechnung und Polylinien

Beitrag von Lapla » Fr 10. Jun 2005, 10:27

Mit Fla-Neu kann ich die Flächen von Polygone abziehen. Kann ich die Routine so abändern, daß das auch mit Polylinien (geschlossen) geht und kann ich als Ergebnis die Flächen auch durcheinander teilen. Ich möchte die GRZ(Grundflächenzahl) eines Bebauungsplans ermitteln. d.h. Gebäudeflächen durch Grundstücksfläche ergibt GRZ.
Danke

Jörg

Benutzeravatar
CADwiesel
Administrator
Beiträge: 487
Registriert: Mo 11. Jun 2018, 13:07
Kontaktdaten:

Beitrag von CADwiesel » Mo 13. Jun 2005, 07:44

Hai
Meineserachtens werden sowiso nur geschlossene Polygone von dem Programm betrachtet. Aber es ist kein Problem das so umzubauen, dass deine Anforderung erfüllt wird.
das einzige ist die Zusätzliche Berechnung, die eben die GRZ ausweist.
ich guck's mir nachher mal an
Gruß
BildCADwiesel
Besucht uns im CHAT

Benutzeravatar
CADwiesel
Administrator
Beiträge: 487
Registriert: Mo 11. Jun 2018, 13:07
Kontaktdaten:

Beitrag von CADwiesel » Mo 13. Jun 2005, 09:45

so, hier das Überarbeitete Tool

Code: Alles auswählen

(defun c:GRZ (/ dd tt t_2 fl1 fl2 grz inpkt md_zaehler)
  (setq tt (car (nentsel "Grundstücksfläche zeigen:")))
  (cond
    ((and (or (= (cdr (assoc 70 (entget tt))) 129)
              (= (cdr (assoc 70 (entget tt))) 1)
              ) ;_ end of or
          (= (cdr (assoc 0 (entget tt))) "LWPOLYLINE")
          ) ;_ end of and
     (redraw tt 3)
     (terpri)
     (princ "Abzugsfläche(n) zeigen:")
     (if (setq dd (ssget '((-4 . "<OR")
                           (-4 . "<AND")
                           (0 . "LWPOLYLINE")
                           (-4 . "<OR")
                           (70 . 129)
                           (70 . 1)
                           (-4 . "OR>")
                           (-4 . "AND>")
                           (-4 . "<AND")
                           (0 . "POLYLINE")
                           (-4 . "<OR")
                           (70 . 129)
                           (70 . 1)
                           (-4 . "OR>")
                           (-4 . "AND>")
                           (-4 . "OR>")
                           )
                         ) ;_ end of ssget
               ) ;_ end of setq
       (progn
         (terpri)
         (setq md_zaehler 0)
         (command "_.area" "a" "_o")
         (command tt "" "")
         (setq fl1 (getvar "area"))
         (command "_.area" "a" "_o")
         (repeat
           (sslength dd)
            (setq t_2 (ssname dd 0))
            (command t_2)
            (setq dd (ssdel t_2 dd))
            )                           ;ende rep
         (command "" "")
         (setq fl2 (getvar "area"))
         (setq grz (/ fl2 fl1))
         (setq inpkt (getpoint "Einfügepunkt für Flächenwerte:"))
         (entmake (LIST
                    '(0 . "TEXT")
                    (cons 8 (getvar "clayer"))
                    (CONS 10 inpkt)
                    '(40 . 0.35)
                    '(50 . 0)
                    (CONS 1 (strcat "GRZ= " (rtos grz 2 2)))
                    ) ;_ ende von LIST
                  ) ;_ end of entmake
                                        ;command
         )                              ;progn
       (princ "\nOhne Gebäudefläche geht hier nix")
       )                                ;if
     )
    ((null (PRINC "Nichts oder Falsch gewählt."))
     )
    ) ;_ end of cond
  (command "_.regen")
  (princ)
  )                                     ;defun
(prompt "\nProgramm ausführen mit > GRZ <")
Gruß
BildCADwiesel
Besucht uns im CHAT

Lapla
Newbie
Beiträge: 1
Registriert: Mo 3. Apr 2006, 09:34

verspäteter dank

Beitrag von Lapla » Mo 3. Apr 2006, 09:40

Hi cadwiesel,
:oops:
angeregt vom Interview in CADde hab ich das wiesel-forum nochmal angelesen und bin auf meine Frage zur GRZ gestoßen. Und auf Deine Antwort mit dem GRZ-Tool. Es tur mir richtig leid, daß ich damals nicht mehr nachgeschaut habe. GRZ ist Klasse. Hab mich jetzt richtig reggen lassen, oder gereggt, oder wie auch immer.
Nochmals : Vielen Dank

Jörg :oops:

Antworten