Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Auf- & Abtrags fläche ermitteln

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:  Auf- & Abtrags fläche ermitteln (1561 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 12. Jun. 2012 14: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


Drawing1.zip

 
Hallo!

Ich stehe noch am Anfang einer Routine. Ziel soll es später einmal sein, Volumen zwischen einzelnen Querprofilen entlang einer Achse bezüglich des Geländeniveaus zu ermitteln. Also Auf- und Abtragsmengen.

Mein Problem ist jetzt, dass ich zwar zwei Linien, einmal für das befindlige Geländeniveau und einmal für das neue Trasseniveau habe. Aber nicht sagen kann, wie die Linien zueinander liegen. Sprich wann soll aufgetragen bzw. abgetragen werden ?
In der dwg, sieht man jewels die Geländehöhen weiss und die neuen Höhen rot. (mal zu ausprobieren)

Code:


;;; Ermittle befindlige Geländeprofil aus 2 gewählten Geländepunkten

;;; obj;      Textobjekt
;;; bef_h;    befindlige höhe zahlwert
;;; bef_p;    befindlige höhe koordinate
;;; bef_list; Liste aus höhe und koordinate

(alert "\nEntnommene Höhenangaben liegen in einer Flucht! ")
(repeat 2
(while
  (not
    (and
      (setq obj (car (entsel "\nWähle 2 Geländehöhen !")))
      (not
(if (/= (cdr(assoc 0 (entget OBJ))) "TEXT")
  (princ "\nkein Text gewählt")
  )
)
      (setq bef_h (atof (cdr (assoc 1 (entget obj)))) )
      (setq bef_p (cdr (assoc 10 (entget obj))))
      (setq bef_list (cons (cons bef_h bef_p) bef_list))
      )
    )
  )
  (princ)
  )

;;; Ermittle Oberbau daten

;;; obj;      Textobjekt
;;; ny_ob;    neuer Oberbau Qneigung, breite, stärke
;;; ny_h;    neue höhe oberkante asfalt oberbau
;;; ny_p;    Mittelpunkt der neuen trasse
;;; ny_di;    Strecke zw. terassenmitte und letzt angegeb.bef.  Geländepunkt
;;; ny_dh;    Höhenunterschied zw. terassemitte und letzt angegeb. bef. Geländepunkt

(while
  (not
    (and
      (setq obj (car (entsel "\nWähle die neue Geländehöhe in der Terassenmitte !")))
(if (/= (cdr(assoc 0 (entget OBJ))) "TEXT")
  (princ "\nkein Text gewählt")
  (setq ny_ob (list (set 'a (/ (getreal "\nWert für Querneigung in [%] ") 100))
    (set 'a (getreal "\nWert für Oberbau breite in [m] "))
    (set 'a (getreal "\nWert für Oberbau stärke in [m] "))
    )
)
  )
      (setq ny_h (atof (cdr (assoc 1 (entget obj)))))
      (setq ny_p (cdr (assoc 10 (entget obj))))
      (setq ny_di (distance (list (nth 0 bef_p) (nth 1 bef_p)) (list (nth 0 ny_p) (nth 1 ny_p))))
      (setq ny_dh (- ny_h bef_h (nth 2 ny_ob)))
      )
    )
  (princ)
  )

;;; Erzeuge Geländeprofil mit Eintrag des neuen Strassenkörpers

;;; bef_di;  Abstand der zwei gew. geländepunkte
;;; bef_dh;  Höhenunterschied zw. den zwei geländepunkten
;;; bef_gf;  resultierendes Gefälle
;;; ip;      Einfügepunkt querschnitt

(progn
  (cond
    ((= bef_list
      (setq bef_di (distance (cdar bef_list) (cdadr bef_list)))
      (setq bef_dh (- (caar bef_list) (caadr bef_list)))
      (setq bef_gf (/ bef_dh bef_di))
      (setq ip (getpoint "\nEinfügepunkt setzen! "))
      )
    )
    )
  (entmake (list (cons 0 "LINE") (cons 67 0) (cons 410 "Model") (cons 8 "0")
(cons 10 (setq ip (list (+ 1 (nth 0 ip)) (+ 1 (nth 1 ip)))))
(cons 11 (setq ip (list (+ (nth 0 ip) bef_di) (+ (* bef_di bef_gf) (nth  1 ip)) 0.0)))
)
  )
  )


;;; t_mi;    Trassen mittelpunkt
;;; t_li;    Trassen punkt links
;;; t_re;    Trassen punkt rechts

(progn
  (cond
    ((= ny_ob
(setq t_mi (list (- (nth 0 ip) ny_di)
(+ (nth 1 ip) ny_dh)
(nth 2 ip)
)
      )
(setq t_li (list (- (nth 0 t_mi) (/ (nth 1 ny_ob) 2) (nth 2 ny_ob))
(+ (nth 1 t_mi) (* (nth 0 ny_ob) (+ (/ (nth 1 ny_ob) 2) (nth 2 ny_ob))))
(nth 2 ip)
)
      )
(setq t_re (list (+ (nth 0 t_li) (+ (nth 1 ny_ob) (nth 2 ny_ob) (nth 2 ny_ob)))
(+ (nth 1 t_li) (* (nth 0 ny_ob) (+ (nth 1 ny_ob) (nth 2 ny_ob) (nth 2 ny_ob))))
(nth 2 ip)
)
      )
)
    )
    )
  (entmake (list (cons 0 "LINE") (cons 67 0) (cons 410 "Model") (cons 8 "0")
(cons 10 t_li) (cons 11 t_re)
)
  )
  )


Die Sizze unterhalb meiner Zeichnung verdeutlicht vllt. besser meine Aufgabe.

------------------
Gruss Dirk

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

Brischke
Moderator
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: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 12. Jun. 2012 15: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 cadplayer 10 Unities + Antwort hilfreich

... du willst also die Volumen ermitteln. Dann wäre für mich der logische Ansatz, dass man entsptrechend der Geometrie 3D-Körper erzeugt und von diesen dann die Schnittmengen/Differnz bildet.

Wäre das nicht ein Ansatz?

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 12. Jun. 2012 15: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

Prinzipiell habe ich nix dagegen. Nur habe ich keine Erfahrung mit Solids (erzeugen/auswerten) bzw. wie ich eine Schnittmenge rechnen kann. Lässt sich das in ein paar Zeilen erklären?

Was brauche ich denn um einen Volumenkörper in Acad zu erzeugen ?

Was lässt sich da mit Eingriff von Autolisp erreichen ?

Muss ich mir Solids erzeugen, um dann volumen zu ermitteln ?

Inwieweit muss ich mit visual Eingriff zurecht kommen ?

------------------
Gruss Dirk

[Diese Nachricht wurde von cadplayer am 12. Jun. 2012 editiert.]

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

Brischke
Moderator
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: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 12. Jun. 2012 16:41    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 cadplayer 10 Unities + Antwort hilfreich

... im 3d geht es wohl am Besten mit (Command .. ) genauso, wie man dies eben händisch machen würde.

also, müßtest du schauen, wie du das ganze von Hand angehen würdest.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 12. Jun. 2012 16:55    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

Danke für die Info

------------------
Gruss Dirk

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 12. Jun. 2012 18:18    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 cadplayer 10 Unities + Antwort hilfreich

Du hast doch AutoCAD Cvil 3D - das sind diese Berechnungsfunktionen doch schon eingebaut - warum nutzt du keine Profilkörper, Achsen und Querschnitte, keine DGMs und Massenermittlung aus Querprofilen nach VB 21.003 oder VB 21.013?

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 12. Jun. 2012 20: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

Manchmal ist das wie mit kanonen auf Spatz   en schiessen. Will ich dagegen mal einen erdwall ermitteln brauche ich kein dgm achse profil u. Rs. Ich suche da halt nach etwas smarten.

------------------
Gruss Dirk

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 12. Jun. 2012 21:50    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 cadplayer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von cadplayer:
Manchmal ist das wie mit kanonen auf Spatz     en schiessen. Will ich dagegen mal einen erdwall ermitteln brauche ich kein dgm achse profil u. Rs. Ich suche da halt nach etwas smarten.



Im Gegenteil, mit Erdwällen sollte man anfangen die Civil Funktionen zu benutzen. Das sind übersichtliche Bauwerke, da ist das Regelprofil einfach und man kann die Schnitte leicht kontrollieren, sogar noch die Erdmassen.
Später kann man dann auch aufwändigere Straßenbauwerke angehen, dann hat man schon die nötige Erfahrung.

------------------
Mit freundlichem Gruß

Udo Hübner
www.CAD-Huebner.de

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 13. Jun. 2012 15: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

Code:


;;; Ermittle befindlige Geländeprofil aus 2 gewählten Geländepunkten

;;; obj;      Textobjekt
;;; bef_h;    befindlige höhe zahlwert
;;; bef_p;    befindlige höhe koordinate
;;; bef_list; Liste aus höhe und koordinate

(alert "\nEntnommene Höhenangaben liegen in einer Flucht! ")
(repeat 2
(while
  (not
    (and
      (setq obj (car (entsel "\nWähle 2 Geländehöhen !")))
      (not
(if (/= (cdr(assoc 0 (entget OBJ))) "TEXT")
  (princ "\nkein Text gewählt")
  )
)
      (setq bef_h (atof (cdr (assoc 1 (entget obj)))) )
      (setq bef_p (cdr (assoc 10 (entget obj))))
      (setq bef_list (cons (cons bef_h bef_p) bef_list))
      )
    )
  )
  (princ)
  )

;;; Ermittle Oberbau daten

;;; obj;      Textobjekt
;;; ny_ob;    neuer Oberbau Qneigung, breite, stärke
;;; ny_h;    neue höhe oberkante asfalt oberbau
;;; ny_p;    Mittelpunkt der neuen trasse
;;; ny_di;    Strecke zw. terassenmitte und letzt angegeb.bef.  Geländepunkt
;;; ny_dh;    Höhenunterschied zw. terassemitte und letzt angegeb. bef. Geländepunkt

(while
  (not
    (and
      (setq obj (car (entsel "\nWähle die neue Geländehöhe in der Trassenmitte !")))
(if (/= (cdr(assoc 0 (entget OBJ))) "TEXT")
  (princ "\nkein Text gewählt")
  (setq ny_ob (list (set 'a (/ (getreal "\nWert für Querneigung in [%] ") 100))
    (set 'a (getreal "\nWert für Oberbau breite in [m] "))
    (set 'a (getreal "\nWert für Oberbau stärke in [m] "))
    )
)
  )
      (setq ny_h (atof (cdr (assoc 1 (entget obj)))))
      (setq ny_p (cdr (assoc 10 (entget obj))))
      (setq ny_di (distance (list (nth 0 bef_p) (nth 1 bef_p)) (list (nth 0 ny_p) (nth 1 ny_p))))
      (setq ny_dh (- ny_h bef_h (nth 2 ny_ob)))
      )
    )
  (princ)
  )

;;; Erzeuge Geländeprofil mit Eintrag des neuen Strassenkörpers

;;; bef_di;  Abstand der zwei gew. geländepunkte
;;; bef_dh;  Höhenunterschied zw. den zwei geländepunkten
;;; bef_gf;  resultierendes Gefälle
;;; ip;      Einfügepunkt querschnitt

(progn
  (cond
    ((= bef_list
(setq bef_di (distance (cdar bef_list) (cdadr bef_list)))
(setq bef_dh (- (caar bef_list) (caadr bef_list)))
        (setq bef_gf (/ bef_dh bef_di))
        (setq ip (getpoint "\nEinfügepunkt setzen! "))
      )
    )
    )
  )

(entmake (list (cons 0 "LINE") (cons 67 0) (cons 410 "Model") (cons 8 "0")
      (setq bef_li (cons 10 (setq ip (list (+ 1 (nth 0 ip)) (+ 1 (nth 1 ip)) (nth 2 ip)))))
      (setq bef_re (cons 11 (setq ip (list (+ (nth 0 ip) bef_di) (+ (* bef_di bef_gf) (nth  1 ip)) 0.0))))
      )
)


;;; t_mi;    Trassen mittelpunkt
;;; t_li;    Trassen punkt links
;;; t_re;    Trassen punkt rechts

(progn
  (cond
    ((= ny_ob
(setq t_mi (list (- (nth 0 ip) ny_di)
(+ (nth 1 ip) ny_dh)
(nth 2 ip)
)
      )
(setq t_li (list (- (nth 0 t_mi) (/ (nth 1 ny_ob) 2) (nth 2 ny_ob))
(+ (nth 1 t_mi) (* (nth 0 ny_ob) (+ (/ (nth 1 ny_ob) 2) (nth 2 ny_ob))))
(nth 2 ip)
)
      )
(setq t_re (list (+ (nth 0 t_li) (+ (nth 1 ny_ob) (nth 2 ny_ob) (nth 2 ny_ob)))
(+ (nth 1 t_li) (* (nth 0 ny_ob) (+ (nth 1 ny_ob) (nth 2 ny_ob) (nth 2 ny_ob))))
(nth 2 ip)
)
      )
)
    )
    )
  )

(entmake (list (cons 0 "LINE") (cons 67 0) (cons 410 "Model") (cons 8 "0")
      (cons 10 t_li) (cons 11 t_re)
      )
)

;;; Ermittlung der Auf- und Abtragsflächen

;;; t_wi;      Trassen querneigung
;;; t_li_s;    Trassen böschungspunkt links
;;; t_re_s;    Trassen böschungspunkt rechts

(if (not c:cal)(arxload "geomcal"))
(setq bef_li (cdr bef_li))
(setq bef_re (cdr bef_re))
(setq t_bef_s (inters t_li t_re bef_li bef_re))

(progn
  (cond
;;;  liegt Gelände links über der Trasse, dann Abtrag mit 4:1 Gefälle
    ((> (nth 1 bef_li) (nth 1 t_li))
    (setq t_wi (+ (angle t_li t_re) (* 104.0362 (/ pi 180))))
    (setq t_li_s (polar t_li t_wi 1.0))
    (setq t_li_s (cal "ill (t_li,t_li_s,bef_li,bef_re)"))
    )
;;;  liegt Gelände links unter der Trasse, dann Auftrag mit 1:1 Gefälle
    ((< (nth 1 bef_li) (nth 1 t_li))
    (setq t_wi (+ (angle t_li t_re) (* 225.0 (/ pi 180))))
    (setq t_li_s (polar t_li t_wi 1.0))
    (setq t_li_s (cal "ill (t_li,t_li_s,bef_li,bef_re)"))
    )
    )
  )
(progn
  (cond
;;;  liegt Gelände rechts über der Trasse, dann Abtrag mit 4:1 Gefälle
    ((> (nth 1 bef_re) (nth 1 t_re))
    (setq t_wi (+ (angle t_li t_re) (* 75.9638 (/ pi 180))))
    (setq t_re_s (polar t_re t_wi 1.0))
    (setq t_re_s (cal "ill (t_re,t_re_s,bef_li,bef_re)"))
    )
;;; liegt Gelände rechts unter der Trasse, dann Aufrag mit 1:1 Gefälle
    ((< (nth 1 bef_re) (nth 1 t_li))
    (setq t_wi (+ (angle t_li t_re) (* 135.0 (/ pi 180))))
    (setq t_re_s (polar t_re t_wi 1.0))
    (setq t_re_s (cal "ill (t_re,t_re_s,bef_li,bef_re)"))
    )
    )
  )

(entmake (list (cons 0 "LINE") (cons 67 0) (cons 410 "Model") (cons 8 "0")
      (cons 10 t_li) (cons 11 t_li_s)
      )
)
(entmake (list (cons 0 "LINE") (cons 67 0) (cons 410 "Model") (cons 8 "0")
      (cons 10 t_re) (cons 11 t_re_s)
      )
)

;;; Berechnung der Auf- und Abtragsflächen

(progn
  (cond

;;; wenn die Trasse links unter dem Gelände liegt
   
    ((< (nth 1 t_li) (nth 1 t_li_s))
    (cond
      ((> (nth 1 t_re) (nth 1 t_re_s))
(command "_pline" t_bef_s t_li t_li_s "_c" "")
(command "_area" "_o" (entlast))
(setq fl_ab (getvar "area"))
)
      )
   
    (command "_pline" t_bef_s t_re t_re_s "_c" "")
    (command "_area" "_o" (entlast))
    (setq fl_au (getvar "area"))
    )

;;; wenn die Trasse rechts unter dem Gelände liegt

    ((< (nth 1 t_re) (nth 1 t_re_s))
    (cond
      ((< (nth 1 t_re) (nth 1 t_re_s))
(command "_pline" t_bef_s t_re t_re_s "_c" "")
(command "_area" "_o" (entlast))
(setq fl_ab (getvar "area"))
)
      )
   
    (command "_pline" t_li_s t_bef_s t_li "_c" "")
    (command "_area" "_o" (entlast))
    (setq fl_au (getvar "area"))
    )

;;; wenn die Trasse über dem Gelände liegt
   
    ((> (nth 1 t_li) (nth 1 t_li_s))
    (cond
      ((> (nth 1 t_re) (nth 1 t_re_s))
(command "_pline" t_li_s t_li t_re t_re_s "_c" "")
(command "_area" "_o" (entlast))
(setq fl_au (getvar "area"))
)
      )
    )

    )
  )


Bei dem code würde mir noch gefallen, wenn die erzeugten linien bis auf die Polylinien am Ende gelöscht werden.
Im Prinzip war es nur eine Hilfe sie zu erzeugen, um zu sehen wo ich "lande". Ich kann die entmake zeilen aber nicht einfach löschen. Dann fällt der ganze code zusammen.

Wie ist es besser bei so einer Aufgabe vorzugehen?

------------------
Gruss Dirk

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

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 14. Jun. 2012 07:25    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 cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,
ungetestet:

(setq awsDel (ssadd))

nach dem jeweiligen entmaken der Linien:
(ssadd (entlast) awsDel)

am Schluss des Programms:

(command "_.erase" awsDel "")

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 14. Jun. 2012 09:51    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

Danke Jörn - das funzt.
Ein anderes Problem bei dem Krautsalad von mir, es sind nicht alle Bedingungen richtig erfüllt, um die command-zeilen am Ende ausführen zu können.
Meine überlegung ist folgende:

1) Es werden 2 Geländehöhen (als Text) in einem Querprofil zur Trassenachse gewählt
2) Gleich im Anschluss im selbigen Querprofil wird die neue OK Asfalt (als Text) gewählt
3) Es wird gefragt nach der Querneigung, der Breite und Stärke des Oberbaus

-> Bestimmung bef. Gelände mit bef_li und bef_re (Gelände links und rechts der Trasse)
-> Bestimmung der Trassenoberkante t_li und t_re

-> Die Punkte t_li_s und t_re_s ergeben sich aus der Sicht im Querprofil vom Schnitt Geländelinie mit Böschungslinie

4) liegt die Trasseoberkante über dem Gelände wird aufgeschüttet mit einer Böschung von 1:1
-> entspricht der Fläche aus dem Polygon von t_li, t_re, t_re_s und t_li_s

  liegt die Trasseoberkante unter dem Gelände wird abgetragen mit einer Böschung 4:1

  kreuzt die Trasseoberkante die Geländelinie wird teils ab- und aufgetragen

-> Ich hab das gelöst, indem ich frage ober der y-wert von t_li und t_re über oder unter bef_li und bef_re liegen
  und daraus t_li_s und t_re_s ermittelt

Da liegt der Fehler !!!
Weil es zu keiner Berechnung kommt, sobald die Trassenoberkante links oder rechts auf der Geländekante liegen

Stelle ich es zu kompliziert an oder wie könnte ich den Fall einbauen, wenn quasi t_li = t_li_s oder t_re = t_re_s ist ?


------------------
Gruss Dirk

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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

Windows 10
64bit system
Autocad Civil3d 2020 ENGLISH
Visual Studio 2019
OpenDCL.Runtime.9<P>

erstellt am: 14. Jun. 2012 15:13    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

Nach den Reaktionen überdenke ich nochmal alles, vielleicht gehts auch anders... Jedenfalls danke für die feedbacks!

------------------
Gruss Dirk

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