| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Z Werte anschreiben lassen (3329 mal gelesen)
|
OtzeMachEd Mitglied Bauzeichner & CAD Systembetreuer
Beiträge: 201 Registriert: 30.05.2003 WIN XP Prof. ACAD 2010 ADT 2010 Express Tools
|
erstellt am: 18. Sep. 2003 10:20 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe eine Datei bekommen in der jede Menge Linien mit Z Höhen sind. An bestimmten Stellen möchte ich mir nun die Z Höhe anschreiben lassen. Entweder als Text mit einer Markierung z. B. kleines Kreuz am Pickpunkt oder als Block. Die Punkte möchte ich manuell auswählen. Hat jemand eine Idee wie man das schnell hinbekommt? Übrigens habe ich vorher gesucht aber nicht das Richtige gefunden. ------------------ Mit freundlichen Grüßen Otze Mach Ed Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2040 Registriert: 08.04.2002 AIS2009, PDSU 2012-2015, Plant 3D 2011-2015, NavisWorks 2010-2015, Win7 64bit SP1, Intel Core i7 870, 16 GB RAM, Quadro 2000D
|
erstellt am: 18. Sep. 2003 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
mal was ganz simples dazu (höhe wird als text am ausgewählten punkt geschrieben mit aktuellem textstil und texhöhe - aktueller textstil mus höhe 0 haben ^c^c(command "text" (setq p1 (getpoint))"" "" (caddr p1)) bei eingetragener höhe im texstil ^c^c(command "text" (setq p1 (getpoint))"" (caddr p1)) mit block dürfte auch kein problem sein nur müsste ich mehr informationen haben (wiviele kommastellen etc?)... aber ich schätz mal das cadwiesel schon was im baukasten hat *G*
------------------ mfg Siegfried Schachinger http://www.tbschatz.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OtzeMachEd Mitglied Bauzeichner & CAD Systembetreuer
Beiträge: 201 Registriert: 30.05.2003 WIN XP Prof. ACAD 2010 ADT 2010 Express Tools
|
erstellt am: 18. Sep. 2003 12:07 <-- editieren / zitieren --> Unities abgeben:
Danke für die erste Hilfe! Bei Cadwiesel hab ich leider nichts gefunden. Ich brauche 2 Stellen hinter dem Komma. Wenn Du oder jemand anderes hier im Forum das mit einem Block schafft, wäre das klasse. Ich stelle mir den Block optisch so vor: x 25.05 ------------------ Mit freundlichen Grüßen Otze Mach Ed
[Diese Nachricht wurde von OtzeMachEd am 18. September 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 18. Sep. 2003 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
sowas? (defun C:koord (/ STYLE_LIST MD_ERR FF pkt1 pkt2 pktlst pt1 pt2 pt3 el zz ename pflag ) (vl-load-com) (command "_ucs" "_w") (Setq pkt1 (Getpoint "\nPunkt wählen ")) (While (not (null pkt1)) (prompt "\nPosition des Textes: ") (command "_UCS" "_O" (trans pkt1 1 0)) (setq pt1 (strcat "X=" (rtos (car pkt1)2 0)) pt2 (strcat "Y=" (rtos (cadr pkt1)2 0)) pt3 (strcat "Z=" (rtos (caddr pkt1)2 0)) ) ;_ end of setq (SETQ ZZ (entlast)) (if (= (cdr(assoc 0(entget zz)))"INSERT") (progn (command "_point" "0,0,0") (setq zz (entlast)) (setq pflag T) ) ) (Command "_.leader" (trans pkt1 0 1) pause "M" pt1 pt2 pt3 "" ) ;_ end of Command (setq pkt2 nil) (setq el (entnext zz)) (setq ename (vlax-ename->vla-object el)) (vla-put-arrowheadtype ename acArrowDotBlank) (command "_ucs" "_w") (Setq pkt1 (Getpoint "\nPunkt wählen ")) (if pflag (entdel zz) ) ) ;_ end of While (princ) ) ;_ end of defun ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OtzeMachEd Mitglied Bauzeichner & CAD Systembetreuer
Beiträge: 201 Registriert: 30.05.2003 WIN XP Prof. ACAD 2010 ADT 2010 Express Tools
|
erstellt am: 18. Sep. 2003 14:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Cadwiesel, das ist es leider nicht so ganz, (obwohl das klasse ist) ich brauche nur die Höhe ohne Koordinaten. Super wäre ein Block mit dem Text als Attribut. Nur statt manueller Texteingabe soll die LISP die Höhe von dem gepickten Linienendpunkt abgreifen und anschreiben. Wenn Du Zeit hast, dass können doch sicher auch andere gebrauchen! Danke!! ------------------ Mit freundlichen Grüßen Otze Mach Ed Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 18. Sep. 2003 16:26 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
|
OtzeMachEd Mitglied Bauzeichner & CAD Systembetreuer
Beiträge: 201 Registriert: 30.05.2003 WIN XP Prof. ACAD 2010 ADT 2010 Express Tools
|
erstellt am: 18. Sep. 2003 16:29 <-- editieren / zitieren --> Unities abgeben:
|
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3358 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 18. Sep. 2003 16:40 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
|
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2040 Registriert: 08.04.2002 AIS2009, PDSU 2012-2015, Plant 3D 2011-2015, NavisWorks 2010-2015, Win7 64bit SP1, Intel Core i7 870, 16 GB RAM, Quadro 2000D
|
erstellt am: 18. Sep. 2003 18:48 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
so guckst du hier: (defun c:hkote () (if (not (tblsearch "BLOCK" "HKOTE")) (exit)) (setq attdia-s (getvar "attdia")) (setq dimzin-s (getvar "dimzin")) (setvar "attdia" 0) (setvar "dimzin" 0) (command "_-insert" "hkote" (setq p1 (getpoint "\nPunkt wählen: ")) "" "" "" (rtos (caddr p1) 2 2)) (setvar "attdia" attdia-s) (setvar "dimzin" dimzin-s) ) wenn in der zeichnung ein block "hkote" existiert wird er an dem geklickten punkt eingefügt und z-wert wird auf 2 kommastellen in das attribut geschrieben. das ganzefunktionert wenn: 1. in der dwg bereits der block "hkote" definiert ist (ansonsten bricht das lisp einfach ab) 2. dieser block genau 1 attribut hat- in dieses wird die höhe geschrieben. der block kann also je nachdem wie du ihn haben willst gestallten - nur auf den basispunkt achten da er ja dort eingefügt wird. die variablen "attdia" und "dimzin" werden nach dem lisp wieder auf den anfganswert zurückgestellt. hoffe das ist es jetzt was du meintest? ------------------ mfg Siegfried Schachinger http://www.tbschatz.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OtzeMachEd Mitglied Bauzeichner & CAD Systembetreuer
Beiträge: 201 Registriert: 30.05.2003 WIN XP Prof. ACAD 2010 ADT 2010 Express Tools
|
erstellt am: 19. Sep. 2003 07:27 <-- editieren / zitieren --> Unities abgeben:
|
wwplus Mitglied Architekt
Beiträge: 172 Registriert: 22.09.2003 Windows 7(x64) Windows XP Autocad ADT 2004 bis 2011 Autocad LT 2004 bis 20113D Studio Viz 2008
|
erstellt am: 03. Mai. 2004 17:25 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
hallo ich habe gerade dein lisp-tool probiert. es ist im grunde genau dass was ich brauche außer 1. anstelle der z-Koordinate die Y-Koordinate 2. kann ich den Block hkote auch durch einen anderslautenden Block z.B. Hkote_gefüllt ersetzten. gruss andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 03. Mai. 2004 21:00 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
UNgetestet:(defun c:hkote () (if (not (tblsearch "BLOCK" "BLOCKNAME")) (exit)) (setq attdia-s (getvar "attdia")) (setq dimzin-s (getvar "dimzin")) (setvar "attdia" 0) (setvar "dimzin" 0) (command "_-insert" "BLOCKNAME" (setq p1 (getpoint "\nPunkt wählen: ")) "" "" "" (rtos (cadr p1) 2 2)) (setvar "attdia" attdia-s) (setvar "dimzin" dimzin-s) ) Statt Blockname ist natürlich der Name des Blockes einzutragen im Code ------------------ - Sebastian - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wwplus Mitglied Architekt
Beiträge: 172 Registriert: 22.09.2003 Windows 7(x64) Windows XP Autocad ADT 2004 bis 2011 Autocad LT 2004 bis 20113D Studio Viz 2008
|
erstellt am: 04. Mai. 2004 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
vielen dank, ich sehe zwar keinen unterschied was die z bzw y koordinate beträgt aber hauptsache es funktioniert. vielen dank andreas ps gibt es ein buch mit dem man das schreiben von LISP lernern kann??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 04. Mai. 2004 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
(command "_-insert" "BLOCKNAME" (setq p1 (getpoint "\nPunkt wählen: ")) "" "" "" (rtos (cadr p1) 2 2)) hatte ich extra FETT markiert... P1 hat den Koordinatenwert des gepickten Punktes gespeichert zB.: (183.772 36.436 0.0) (car P1)=X (cadr P1)=Y (caddr P1)=Z ... Lisp lernen..: Auch hier wieder: Nutze die Suchfunktion in "Rund um AutoCAD" und im LISP-Forum . Ja es gibt Bücher, Online-Handbücher (im Lispforum) und auch Tutorial´s im Web. Sowie kl. "Lisp-Kurse" zB bei www.defun.de welche auch unter www.autodesk.de zu finden sein müßten. ------------------ - Sebastian - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2040 Registriert: 08.04.2002 AIS2009, PDSU 2012-2015, Plant 3D 2011-2015, NavisWorks 2010-2015, Win7 64bit SP1, Intel Core i7 870, 16 GB RAM, Quadro 2000D
|
erstellt am: 04. Mai. 2004 08:46 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
Zitat: Original erstellt von cadffm: [b]UNgetestet:...(command "_-insert" "BLOCKNAME" (setq p1 (getpoint "\nPunkt wählen: ")) "" "" "" (rtos (cadr p1) 2 2))...[/B]
das detail ist "(cadr p1)" anstelle von "(caddr p1)" du hast ne liste mit x,y,z also dem punkt (car p1) liest die x-koordinate von p1 aus, (cadr p1) die y- und (caddr p1) die z-koordinate [EDIT] wieder mal zu langsam *G* ------------------ mfg Siegfried Schachinger http://www.tbschatz.at [Diese Nachricht wurde von Schachinger am 04. Mai. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wwplus Mitglied Architekt
Beiträge: 172 Registriert: 22.09.2003 Windows 7(x64) Windows XP Autocad ADT 2004 bis 2011 Autocad LT 2004 bis 20113D Studio Viz 2008
|
erstellt am: 04. Mai. 2004 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
vielen fdank, diesen kleinen aber feinen unterschied habe ich wohl übersehen. jetzt hätte ich noch eine frage : wie muß ich den LISP-Files verändern um 1. ein "+" vor allen positiven Zahlen zu haben 2. ein "m" als Maßeinheit hinter dem Koordinatenwert zu erhalten gruss andreas ps. ihr seid die besten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 04. Mai. 2004 09:02 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
|
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 04. Mai. 2004 21:53 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
Hi, und so bekommst Du das "+" vor positive Werte und das "±" falls Du mal die Null triffst. Einfach die (command "_-insert".....)-Zeile gegen das hier austauschen: (command "_-insert" "BLOCKNAME" (setq p1 (getpoint "\nPunkt wählen: ")) "" "" "" (strcat (cond ((zerop (cadr p1)) "%%p") ((not (minusp (cadr p1))) "+") (t "") ) (rtos (cadr p1) 2 2) "m" ) ) Gruß CADchup
------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wwplus Mitglied Architekt
Beiträge: 172 Registriert: 22.09.2003 Windows 7(x64) Windows XP Autocad ADT 2004 bis 2011 Autocad LT 2004 bis 20113D Studio Viz 2008
|
erstellt am: 05. Mai. 2004 08:59 <-- editieren / zitieren --> Unities abgeben: Nur für OtzeMachEd
|