| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Nummerirrung (2070 mal gelesen)
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 19. Jan. 2005 11:06 <-- editieren / zitieren --> Unities abgeben:
Hallo Nach dem ich schon mit Hilfe von CADmium ein Problem Heutee gelöst habe, steht der nächste in der reiche. Ich schreibe ein Nummerierung Tool . (defun C:NUMM (/ nr numeifp gtx) (setq nr (if (setq gtx (getint "\nStartnummer <0>")) (1- ant) 0 )) (while (setq numeifp (getpoint (strcat "\nEinfügepunkt für Nummer: "(itoa (setq nr (1+ nr)))" picken ->"))) ) ???? Jedoch ich will das er mir die Zahlen im einem Kreis schreibt, aber da ich relativ wenig Erfahrung mit lisp habe, bin ins Schwierigkeiten geraten. Könnte mir jemand helfen beim diesem Tool das die Zahlen im einem Kreis auf dem Bildschirm erscheinen. Gruß Roy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 19. Jan. 2005 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Erstelle dir einen Block (Am besten einen Kreis) namens z.B. NR mit einem "mittig zentriert" ausgerichteten ATTRIBUT z. B. NR. Dann fügst du mit (COMMAND "_INSERT... diesen Block ein und übergibst dabei gleich die Zahl als Zeichenkette für das Attribut. ------------------ Mit freundlichem Gruß Udo Hübner ---------- Der versteckte Fehler bleibt nie unentdeckt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 19. Jan. 2005 13:29 <-- editieren / zitieren --> Unities abgeben:
-------------------------------------------------------------------- "Dann fügst du mit (COMMAND "_INSERT... diesen Block ein und übergibst dabei gleich die Zahl als Zeichenkette für das Attribut." -------------------------------------------------------------------- Wie soll ich die Zahl als Zeichenkette für das Attribut übergeben wenn ich fragen darf. (setq nr (if (setq gtx (getint "\nStartnummer <0>")) (1- ant) 0 ))
(while (setq numeifp (getpoint (strcat "\nEinfügepunkt für Nummer: "(itoa (setq nr (1+ nr)))" picken ->"))) ) (command "_insert" "P:/nr.dwg" ??????) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 19. Jan. 2005 13:40 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 19. Jan. 2005 13:47 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Hi, da hatte ich mal was ähnliches rumliegen, vielleicht kann es als Inspiration oder aber abschreckendes Beispiel dienen :-) Code:
(defun C:KT (/ PKT TXT START_NUMMER KREISRADIUS TXT_KORD TXT_HOEHE TXT_XY EINGABE ) (if (null FAKTOR) (progn (initget "1 2 3 4 5") (setq EINGABE (getkword "\nKartierungsmaßstab...1=100, 2=200, 3=250, 4=500, 5=1000 [1/2/3/4/5]: " ) ) (cond ((= EINGABE "1") (setq FAKTOR 1)) ((= EINGABE "2") (setq FAKTOR 2)) ((= EINGABE "3") (setq FAKTOR 2.5)) ((= EINGABE "4") (setq FAKTOR 5)) ((= EINGABE "5") (setq FAKTOR 10)) ) ) ) (setq KREISRADIUS (* 0.05 FAKTOR)) (setq TXT_KORD (* 0.08 FAKTOR)) (setq TXT_HOEHE (* 0.18 FAKTOR)) (setq TXT_XY (strcat "@" (rtos TXT_KORD 2 2) "," (rtos TXT_KORD 2 2))) (if (null START_NUMMER) (setq START_NUMMER (getint "\nStart Pkt-Nummer: ")) ) (setq PKT 't) (while PKT (setq PKT (getpoint (strcat "\nKoordinate für " (itoa START_NUMMER) " eingeben: " ) ) ) (if (/= PKT NIL) (progn (command "_circle" PKT KREISRADIUS) (command "_text" TXT_XY TXT_HOEHE "100" START_NUMMER) (setq START_NUMMER (1+ START_NUMMER)) ) ;end progn ) ;end if ) ;end while (princ) ) ;;; (princ "\nKART_PKT, Punkte mit Punktnummer kartieren... \nAufruf mit KT." ) (princ)
... ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 20. Jan. 2005 09:29 <-- editieren / zitieren --> Unities abgeben:
Hallo Marc Ich habe deine Inspiration war genommen und dein Code so bearbeitet: (defun C:Num (/ KREISRADIUS TXT_KORD TXT_KORD TXT_HOEHE TXT_XY START_NUMMER PKT) (setq KREISRADIUS 14.0) (setq TXT_KORD 1.6) (setq TXT_HOEHE 7.0) (setq TXT_XY (strcat "@" (rtos TXT_KORD 2 2) "," (rtos TXT_KORD 2 2))) (if (null START_NUMMER) (setq START_NUMMER (getint "\nStart Pkt-Nummer: ")) ) (setq PKT 't) (while PKT (setq PKT (getpoint (strcat "\nKoordinate für " (itoa START_NUMMER) " eingeben: " ) ) ) (if (/= PKT NIL) (progn (command "layer" "machen" "TEXT5" "") (command "_circle" PKT KREISRADIUS) (command "_text" TXT_HOEHE "100" START_NUMMER) (setq START_NUMMER (1+ START_NUMMER)) ) ;end progn ) ;end if );end while ) Aber die Zahlen werden nicht gerade geschrieben, kannst du mir ein Tipp geben wie soll ich das bearbeiten. Gruß Roy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 20. Jan. 2005 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Hi, die "100" in (command "_text" TXT_HOEHE "100" START_NUMMER) steht bei mir eigentlich für "100 gon, wenn Null-Richtung im Norden ist". Mein Acad ist vermessungstechnisch eingestellt: Code:
(setvar "AUNITS" 2) ;_ Winkeleinheiten "Grad" (setvar "AUPREC" 3) ;_ Winkelnachkommastellen 3 (setvar "ANGDIR" 1) ;_ Winkelrichtung "Im Uhrzeigersinn" (setvar "ANGBASE" (* 2 pi (/ 90.0 360)) ;_0-Richtung Norden )
Du mußt mal schauen, wie das bei Dir eingestellt ist (Menü "Format" -> Einheiten) und den Winkelwert entsprechend Deinen Vorgaben verändern. Oder aber Du schreibst "100g", dann verwendet Acad für den Winkelwert 100 "Grad" (Neugrad) und nicht Dezimalgrad. Du könntest auch "90d" (d = Degree = Dezimalgrad) verwenden, aber diese Angaben beziehen sich auch immer auf den Drehsinn bzw. die aktuelle Nordrichtung. Guck einfach mal was Du per Hand beim erstellen eines Textes verwenden mußt, damit der Text "gerade" geschrieben wird... ------------------ Ciao, Marc [Diese Nachricht wurde von marc.scherer am 20. Jan. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 20. Jan. 2005 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Problem: (command "_text" TXT_HOEHE "100" START_NUMMER) Hier fehlt zuerst mal der Einfügepunkt TXT_XY und dann ist der Drehwinkel auf "100" eingestellt (Das würde nur für Vermesser Sinn machen, wenn ANGDIR=1 ANGBASE=100g und AUNITS=2 (Neugrad bzw. GON) besser: (command "_text" TXT_XY TXT_HOEHE 0.0 START_NUMMER)
------------------ Mit freundlichem Gruß Udo Hübner ---------- Der versteckte Fehler bleibt nie unentdeckt. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 20. Jan. 2005 12:09 <-- editieren / zitieren --> Unities abgeben:
|
mkl-cad Mitglied Technischer Zeichner
Beiträge: 378 Registriert: 23.07.2003 ACAD 2002 Express Tools 1-9 Architektural Desktop Windows XP Server Windows 2003 3 GHz Rechner 1 GB RAM 80 GB Festplatte ATI FireGL V3100 2 17" Flachbildschirme
|
erstellt am: 17. Feb. 2005 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Alternativvorschlag: (defun c:l-nummer ( / wert a r o o2 l) (setq wert 1 r -1 a (ssget "x" '((0 . "Insert") (2 . "L-nr")))) (if (= a nil)()(progn (repeat (sslength a) (setq r (+ r 1)) (setq o (ssname a r)) (setq o2 (atoi (cdr (assoc 1(entget(entnext o)))))) (if (= o2 nil)(setq o2 "0")()) (if (or (> o2 wert)(= o2 wert))(setq wert (+ 1 o2))()) ))) (setq l (getvar "clayer")) (setvar "clayer" "L-18"); Layer wählen Ob existiert muß hier noch geprüft werden (setvar "attdia" 0) (princ "\nEinfügepunkt:") (command "einfüge" "L-nr" "vf" (getvar "userr2") pause (getvar "userr2") "" "" (rtos wert)) ;Faktor hier durch userr2 gewählt (setvar "clayer" l) (setvar "attdia" 1) (princ) ) ------------------ Martin Viele Grüße aus dem schönen Münsterland! [Diese Nachricht wurde von mkl-cad am 17. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |