| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Teledoor setzt erfolgreich auf Configure-to-Order mit CIDEON Conify , ein Anwenderbericht
|
Autor
|
Thema: Ordinatenbemassung, tausche X-Daten gegen Y-daten (1984 mal gelesen)
|
ktww Mitglied
Beiträge: 429 Registriert: 10.08.2009
|
erstellt am: 10. Aug. 2009 13:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Forum! Ich lese nun schon einige Zeit mit und hab nun eine Frage bezüglich der Ordinatenbemassung. Ich möchte einen Längenschnitt, der als Polylinie vorhanden ist, mit Hilfe der Ordinatenbemassung beschriften. Dies funktioniert für die Station (Länge auf X-Achse) mit der "Schnellbemassung" -> Koordinaten sehr gut. Hier braucht man nur die Polylinie auswählen und erhählt für jeden Scheitelpunkt der Polylinie die Station, welche ich unterhalb des Längenschnitts plazieren kann. Für die Höhendaten (Daten der Y-Achse) gibt es aber bei der "Schnellbemassung" nicht die Möglichkeit von X-Daten (Station) auf Y-Date(Höhen) umzustellen. Dies funktioniert nur wenn ich die Ordinatenbemassung einzeln aufrufe. Deshalb meine Frage: Kann ich eine bestehenden Ordinatenbemassung so verändern, dass mir anstelle der X-Daten nachträglich die Y-Daten angezeigt werden. Dies würde mir die Arbeit wesentlich erleichtern. Zur Erläuterung hab ich ein Beispiel als pdf angehängt. Die Inhalte beider Maßbänder sind Ordinatenbemassungen. Die Höhen musste ich einzeln mit dem Befehl für die Ordinatenbemassung erstellen (y-Daten auswehlen und Winkel auf 90° drehen). Einfacher wärs mit der Schnellbemassung und danach die Anzeige von x-Daten auf die y-Daten umzustellen. Ich hoffe auf Eure Hilfe Schöne Grüße ktww
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Aug. 2009 14:01 <-- editieren / zitieren -->
Hi, Du hast Civil und verwendest es nicht? Die Höhenpläne von Civil können das ohne wenn und aber! Alternativ würde ich eher den Weg von Blöcken mit Attributen und in diesen Schriftfelder wählen. Wenn der Höhenplan (der 0-Punkt dessen) koordinativ richtig liegt, dann geht das mit sehr wenig Aufwand. - alfred - ------------------ www.hollaus.at |
ktww Mitglied
Beiträge: 429 Registriert: 10.08.2009
|
erstellt am: 10. Aug. 2009 14:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred! Ich bekomme die Längenschnitte (Polylinien) aus einem Berechnungsprogramm (HEC-RAS) und es ist aus meiner Sicht einfacher die Bemassung mit dem reinen Autocad durchzuführen als mit Civil. Das importieren des Längenschnitts in einen Höhenplan ist meiner Meinung nach aufwendiger, zumal das Programm umso lieber abstürtzt, je mehr civil - Objekte verwendet werden. Darum versuche ich mit den reinen Autocad- Funktionen klar zu kommen. Schöne Grüße ktww Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 10. Aug. 2009 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für ktww
Hi, mal was auf die Schnelle... (defun c:xy-ord (/ en SelSet) ;; (xy-ord) (princ "\nX-Koordinatenbemaßung ") (if (setq SelSet (ssget '( (-4 . "<AND") (0 . "DIMENSION") (70 . 102) ;(-4 . "&" ) (70 . 6 ) (-4 . "AND>") ) ) ) (foreach x (mapcar (function cadr) (ssnamex SelSet)) (setq en (entget x)) (entmod (subst (cons 1 (strcat (cdr (assoc 1 en)) "X= " (rtos (car (cdr (assoc 13 en))) 2 2) " " "Y= " (rtos (cadr (cdr (assoc 13 en))) 2 2) ) ) (assoc 1 en) en ) ) (entupd x) ) ;_ foreach (princ "\n Mensch... Koordinatenbemaßung... war wohl nix?!") ) ;_ if (princ) ) !!!Achtung!!! Wertüberschreibung
------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." (www.uni-leipzig.de/~rotheh/elefant.htm) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ktww Mitglied
Beiträge: 429 Registriert: 10.08.2009
|
erstellt am: 10. Aug. 2009 17:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Dorfy! Vielen herzlichen Dank für dein LISP-Programm und deine Bemühungen. Ich habe es ausprobiert, es ist allerdings noch nicht ganz das was ich mir vorgestellt hab. Du ersetzt in deinem Programm den Messwert durch einen Text, der sich jedoch dann nicht mehr ändert wenn man den Griff des Messpunktes verschiebt. Ein Grund wieso ich den Längenschnitt mit der Ordinatenbemassung in den Maßbändern beschrifte ist, dass ich bei Änderungen des Längenschnittes nur die Griffe verschieben muss und er zeigt mir wieder die richtigen Werte an (Auch Überhöhungen lassen sich sehr gut damit berücksichtigen). Ich habe geglaubt, es gibt eine Möglichkeit das Bemassungsobjekt so zu ändern, dass es nachträglich den Y-Wert (Höhe) des Messpunktes anzeigt auch wenn davor, beim Erstellen, der X-Wert angezeigt wurde (weil ich ja die Schnellbemassung verwenden will). Trotzdem Danke für Deine Bemühung , Schöne grüße ktww
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 10. Aug. 2009 17:55 <-- editieren / zitieren -->
Hi, ich probier's halt nochmal ==> dynamische Blöcke mit Beschriftungsfeldern, schau Dir's mal an. Beschriftungsblock anklicken, dann kannst Du oben (bei der Profillinie) den Griff auf eine neue Höhe setzen, dann '_regen' nicht vergessen und der richtige Wert steht unten. Der Vorteil hierin liegt auch, dass in die Formeln der Höhenbeschriftung ev. auch noch Überhöhungsfaktor mit aufgenommen werden könnte. - alfred - ------------------ www.hollaus.at |
ktww Mitglied
Beiträge: 429 Registriert: 10.08.2009
|
erstellt am: 11. Aug. 2009 07:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred! Ich hab mir Deinen Block angesehen und er funktioniert sehr gut, aber es ist noch nicht ganz das was ich wollte. Ich werd Dir mein Problem nochmals genauer beschreiben. Ich hab einen Längenschnitt durch ein Gewässer mit 5 Wasserspiegellagen (Polylinien) welche jeder ca. 100 Segmente hat. Den Block muss ich als 500mal einfügen und 500mal die Griffe verschieben. Daher die Idee dies mit der Schnellbemassung (Befehl:SBEM) - Option "Koordinaten" zu machen. Hier brauch ich die Polylinie nur einmal anklicken und einmal die Position für das Maßband definieren und ich hab mit zwei Klicks das gesamte Maßband für die X-Daten=Station (erstellt aus Ordinatenbemassung). Mein Problem ist, dass das leider nur für die Station (X-Daten) und nicht für die Höhen (Y-Daten funktioniert). Daher die Idee, das Massband für die Höhen zuerst mit SBEM für die Station zu erstellen und danach die Ordinatenbemassung so einzustellen, dass er mir statt der Station die Höhen anzeigt. Ich hoffe ich habs verständlich erklärt. Der Grund weshalb ich es mit dem Befehl SBEM - Koordinaten machen möchte ist, das ich mir eine Menge Arbeit erspare. Eine Überhöhung kann ich über den Bemassungsstil und das BKS berücksichtigen. Trotzdem vielen Dank für Deine Bemühung! Schöne Grüße ktww Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 11. Aug. 2009 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für ktww
hi, na dann mal so neuen BemStil erstellen und (defun c:xy-ord2 (/ dp asatz n elemli) (princ "\nX-Koordinatenbemaßung ") (if (setq asatz (ssget '( (-4 . "<AND") (0 . "DIMENSION") (70 . 102) ;;(-4 . "&" ) (70 . 6 ) (-4 . "AND>") ) ) dp (getpoint "\Durchpunkt Koordinatenbemaßung: ") ) (progn (setq n 0) (repeat (sslength asatz) (setq elemli (cons (ssname asatz n) elemli) n (1+ n) ) ) (foreach x elemli (command "_dimordinate" (cdr (assoc 13 (entget x))) "Y" "W" 90 dp ) (vla-put-TextPosition (vlax-ename->vla-object (entlast)) (vlax-3D-point (list (car (cdr (assoc 11 (entget x)))) (cadr dp) ) ) ) ) ) (princ "\n Mensch... Koordinatenbemaßung... war wohl nix?!") ) (princ) ) ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." (www.uni-leipzig.de/~rotheh/elefant.htm) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GIGIMAN Mitglied TECHNIKER im THEATER
Beiträge: 395 Registriert: 22.06.2009 AUTOCAD 2007 - 2008 -2010 Expresstools - Windows XP
|
erstellt am: 11. Aug. 2009 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für ktww
Hi Kollegen hab mal für mein 2007 er so nen Block gebastelt ( mit Attribut + Schriftfeld - aber nicht dynamisch - vorerst WEIL: Das Problem ist, daß sich bei meinem Schriftfeld die Y und Z Werte vertauschen - dh ich muß im Schriftfeld das Z Häkchen anwählen um die Y- Koordinate auszulesen !) Funzt zwar - aber versteh ich nicht So, wie es alfred in seinem Block ( 2009) gelöst hat ( siehe oben ) ( und zwar mit PosHOEHEy) geht bei 2007 nicht - oder doch! Weis wer Bescheid
GIG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ktww Mitglied
Beiträge: 429 Registriert: 10.08.2009
|
erstellt am: 11. Aug. 2009 11:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Haiko! Dein Programm funktioniert total super, die Unities sind Dir sicher! Eine kleine Verbesserung wäre noch möglich, und zwar, das sich das Programm die erf. Daten aus einer Polylinie holt und nicht aus einer bestehenden Ordinatenbemassung. Ich wollte es selber probieren, mein LISP reicht dafür jedoch nicht aus. Der Grund ist, dass ich in den Plänen immer nur einmal die Station beschriften muss und danach mehere Maßbänder für unterschiedliche Wasserspiegellagen (Höhen) brauche. Wenn das auch noch klappt wäre es der reine Luxus. Ansonsten hast Du mir auch schon sehr weitergeholfen Schöne Grüße und vielen Dank Christoph Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 11. Aug. 2009 11:59 <-- editieren / zitieren -->
Hi, @GIGIMAN: Zitat: So, wie es alfred in seinem Block ( 2009) gelöst hat ( siehe oben ) ( und zwar mit PosHOEHEy) geht bei 2007 nicht - oder doch!
...hab's nicht probiert mit 2007, Du kannst aber als alternative einfach die Länge der 'Pseudo-BemaßungsLinie' nehmen, sollte auch funktionieren. Zitat: Das Problem ist, daß sich bei meinem Schriftfeld die Y und Z Werte vertauschen
...bei Deiner Zeichnungsart könnte ich mir vorstellen, dass Du ev. nur über ein verdrehtes BKS stolperst? Die Werte der Beschriftungen werden immer aus WCS geholt. Könnte ich da richtig liegen? - alfred - ------------------ www.hollaus.at |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 11. Aug. 2009 14:14 <-- editieren / zitieren --> Unities abgeben: Nur für ktww
Hi Christoph, weil's Spaß macht (defun c:xy-ord3 (/ ent dpy dpy vtex entlax) (if (and (setq ent (vl-catch-all-apply 'entsel (list "\nWähl mal ne Polylinie: ") ) ) (setq dpx (vl-catch-all-apply 'getpoint (list "\nX-Line: ") ) ) (setq dpy (vl-catch-all-apply 'getpoint (list "\nY-Line: ") ) ) (setq vtex (vl-remove-if-not (function (lambda (v /) (member (car v) '(10)))) (entget (car ent)) ) ) ) (foreach v vtex (command "_dimordinate" (cdr v) "X" (list (cadr v) (cadr dpx) ) ) (setq entlax (entlast)) (command "_dimordinate" (cdr v) "Y" "W" 90 dpy ) (vla-put-TextPosition (vlax-ename->vla-object (entlast)) (vlax-3D-point (list (car (cdr (assoc 11 (entget entlax)))) (cadr dpy) ) ) ) ) ) ) ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." (www.uni-leipzig.de/~rotheh/elefant.htm) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ktww Mitglied
Beiträge: 429 Registriert: 10.08.2009
|
erstellt am: 12. Aug. 2009 14:16 <-- editieren / zitieren --> Unities abgeben:
|
domda0 Mitglied
Beiträge: 149 Registriert: 21.04.2004 ACAD 2014
|
erstellt am: 12. Aug. 2009 16:41 <-- editieren / zitieren --> Unities abgeben: Nur für ktww
Hallo, bin erst jetzt zum testen gekommen, bei dem file im anhang sind ein paar blöcke enthalten die gesprengt werden sollten, leider verschwinden auch die attribute die eigentlich in texte umgewandelt werden sollten... jemand ne idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 12. Aug. 2009 17:13 <-- editieren / zitieren -->
Hi, wolltest Du nicht eigentlich hierher? Und dann hätte ich mit '_burst' probiert, es sind nur Attribute zu Text umgewandelt dazugekommen, es wäre mir nicht aufgefallen, dass welche verschwunden wären. Womit hast Du probiert? - alfred - ------------------ www.hollaus.at |