| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Zahl Hochzählen (2439 mal gelesen)
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 17. Feb. 2003 12:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Lispler Kann mir das Programm jemand so ändern das ich textstil und höhe selber vorher festlegen kann, ohne das ich den stil Standard änder muss, und Layer auf den Aktuellen. danke heinz (defun c:number (/ nr ipt ant) (setq nr (if (setq ant(getint "\nStartnummer <0>")) (1- ant) 0 ) ) (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":"))) (entmake(list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "0") '(100 . "AcDbText") (cons 10 ipt) '(40 . 2.5) (cons 1 (itoa nr)) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ) ) (princ) Wäre auch noch super wenn ich die Zahl so eingeben könnte 250/2 und die letzte Zahl wird Hochgezählt. Danke Heinz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 17. Feb. 2003 13:44 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Heinz, Anmerkungen sind im Text ... Zitat: Original erstellt von Dober Heinz: Hallo LisplerKann mir das Programm jemand so ändern das ich textstil und höhe selber vorher festlegen kann, ohne das ich den stil Standard änder muss, und Layer auf den Aktuellen. danke heinz (defun c:number (/ nr ipt ant th tlay prefix) (setq prefix (getstring "\nTextprefix: ") nr (if (setq ant(getint "\nStartnummer <0>")) (1- ant) 0 ) ) ;;neu (setq th (getreal "\nTexthöhe:") tlay (getstring "\nZiellayer:") ;; (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":"))) (entmake(list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") ;;geändert (cons 8 tlay) ;; '(100 . "AcDbText") (cons 10 ipt) ;;geändert (cons 40 th) (cons 1 (strcat prefix (itoa nr))) ;; '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ) ) (princ) Wäre auch noch super wenn ich die Zahl so eingeben könnte 250/2 und die letzte Zahl wird Hochgezählt. Danke Heinz[/B]
da sind jetzt aber keine Fehlerabfangroutinen drin. Solltest noch ein paar (initget...) einarbeiten. Bei Fragen... Grüße Holger
------------------ Holger Brischke CADlon - Lisp over night! Wieder 2 neue Tool's im FreeDownload Wissen wie es gemacht wird? Jetzt Quellcode für die Hälfte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 17. Feb. 2003 14:02 <-- editieren / zitieren --> Unities abgeben:
Danke aber es kommt die Meldung Fehler, Falsch formatierte Liste in Eingabe Was heisst da. Bin Anfänger Danke Heinz (defun c:num (/ nr ipt ant th tlay prefix) (setq prefix (getstring "\nTextprefix: ") nr (if (setq ant(getint "\nStartnummer <0>")) (1- ant) 0 ) ) (setq th (getreal "\nTexthöhe:") tlay (getstring "\nZiellayer:") (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":"))) (entmake(list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") (cons 8 tlay) '(100 . "AcDbText") (cons 10 ipt) (cons 40 th) (cons 1 (strcat prefix (itoa nr))) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ) ) (princ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 17. Feb. 2003 14:19 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hat'ne Klammer gefehlt. Ausserdem würde ich auf alle Fälle die Layernamensgeschichte Wasserdicht machen. Du musst sichergehen, dass der Layer auch existiert. (defun c:num (/ nr ipt ant th tlay prefix) (setq prefix (getstring "\nTextprefix: ") nr (if (setq ant (getint "\nStartnummer <0>")) (1- ant) 0 ) ;_ end of if th (getreal "\nTexthöhe:") tlay (getstring "\nZiellayer:") ) ;_ end of setq (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":") ) ;_ end of getpoint ) ;_ end of setq (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") (cons 8 tlay) '(100 . "AcDbText") (cons 10 ipt) (cons 40 th) (cons 1 (strcat prefix (itoa nr))) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ;_ end of list ) ;_ end of entmake ) ;_ end of while ) ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 17. Feb. 2003 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
...Klammer gefehlt... Das kommt davon, wenn man das direkt in die Antwort schreibt, und keinen Editor nutzt. CADwiesel hat natürlich recht, was den Layer angeht. Da kann man dann noch ein Listenfenster mit der Auflistung aller Layer aufgehen lassen. Da wählt man den Layer aus, dann ist's eindeutig. Ich schau mal, dass ich das heute Abend mit hinbekomme. Bis dahin ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! Wieder 2 neue Tool's im FreeDownload Wissen wie es gemacht wird? Jetzt Quellcode für die Hälfte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 17. Feb. 2003 14:31 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 17. Feb. 2003 14:40 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 18. Feb. 2003 10:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich brauche nochmal eure Hilfe. Das mit den Layer, ich will das ich einen Layer anklicke und auf dem Layer werden dann die Nummer eingefügt. danke Heinz Ps: und den Text drehen wäre auch super
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 18. Feb. 2003 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 18. Feb. 2003 12:49 <-- editieren / zitieren --> Unities abgeben:
|
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 18. Feb. 2003 18:56 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo, will auch meinen Senf dazu geben :-)) Sichen des aktuellen Layers: (setq LAY_OLD (getvar "CLAYER")) Element picken: (princ "\nWählen sie ein Element für die Layerschaltung : ")) (setq AWS (ssget)) 'Bildet einen AusWahlSatz der Gewählten Elemente (setq AWS (ssname AWS 0)) 'Nimmt das erste Element aus dem AWS und macht einen neuen AWS draus (setq LAY_NEW (cdr (assoc 8 (entget AWS)))) 'ermittelt den Layer des Elements im AWS Layer setzten: (setvar "CLAYER" LAY_NEW) Layer zurücksetzen: (setvar "CLAYER" LAY_OLD) Servus Mario http://home.chemonline.de/m-troeger
[Diese Nachricht wurde von m-troeger am 18. Februar 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 19. Feb. 2003 07:20 <-- editieren / zitieren --> Unities abgeben:
|
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 19. Feb. 2003 18:55 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hi, also den alten Layer sichern, würd ich gleich am Anfang (2.Zeile)einbauen. das Zurücksetzen des Layers dann eben am Ende nach dem _end of while. das mit dem Picken, tlay (getstring "\nZiellayer:") löschen und nach dem _end of setq danach (setq AWS (ssget)) 'Bildet einen AusWahlSatz der Gewählten Elemente (setq AWS (ssname AWS 0)) 'Nimmt das erste Element aus dem AWS und macht einen neuen AWS draus (setq tlay (cdr (assoc 8 (entget AWS)))) 'ermittelt den Layer des Elements im AWS einfügen und füge dann noch in der 1. Zeile, AWS vor der schließenden Klammer ein Servus Mario http://home.chemonline.de/m-troeger [Diese Nachricht wurde von m-troeger am 19. Februar 2003 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 20. Feb. 2003 06:35 <-- editieren / zitieren --> Unities abgeben:
|
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 20. Feb. 2003 07:12 <-- editieren / zitieren --> Unities abgeben:
Hallo m-troeger Ich hab das Programm so geändert, aber es funkt nicht. danke Heinz defun c:num (/ nr ipt ant th prefix) (setq LAY_OLD (getvar "CLAYER")) (setq prefix (getstring "\nTextprefix: ") nr (if (setq ant (getint "\nStartnummer <0>")) (1- ant) 0 ) ;_ end of if th (getreal "\nTexthöhe:") (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":") ) ;_ end of getpoint ) ;_ end of setq Element picken: (princ "\nWählen sie ein Element für die Layerschaltung : ")) (setq AWS (ssget)) 'Bildet einen AusWahlSatz der Gewählten Elemente (setq AWS (ssname AWS 0)) 'Nimmt das erste Element aus dem AWS und macht einen neuen AWS draus (setq LAY_NEW (cdr (assoc 8 (entget AWS)))) 'ermittelt den Layer des Elements im AWS (setvar "CLAYER" LAY_NEW) (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") (cons 8 tlay) '(100 . "AcDbText") (cons 10 ipt) (cons 40 th) (cons 1 (strcat prefix (itoa nr))) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ;_ end of list ) ;_ end of entmake ) ;_ end of while Layer zurücksetzen: (setvar "CLAYER" LAY_OLD) )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario Scht Mitglied
Beiträge: 156 Registriert: 14.11.2002 Win XP ACAD 2007
|
erstellt am: 20. Feb. 2003 11:32 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Heinz, Du hast vergessen AWS in der allerersten Zeile (bei defun) einzufügen. Ist nur eine Vermutung, ich bin kein Spezi. Ich habe mir das Progrämmchen auch gleich gezogen und mit U's nur so um mich geschmissen. Grüße Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mario Scht Mitglied
Beiträge: 156 Registriert: 14.11.2002 Win XP ACAD 2007
|
erstellt am: 20. Feb. 2003 11:45 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo zusammen, kann mir jemand von den Profis sagen, wo ich eine Aufschlüsselung der Listencodes, welche unter "enmake list" verwendet wurden, in der ACAD Hilfe finden kann. Nummer 41 ist beispielsweise der Breitenfaktor für die Schrift, das war aber auch schon alles, was ich mir zusammenreimen konnten. Vielen Dank vorab. Grüße Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002
|
erstellt am: 20. Feb. 2003 11:48 <-- editieren / zitieren --> Unities abgeben:
|
cad-lisp Mitglied Holztechniker
Beiträge: 12 Registriert: 13.02.2003 Windows XP Prof. AutoCad 2000
|
erstellt am: 20. Feb. 2003 12:24 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
|
cad-lisp Mitglied Holztechniker
Beiträge: 12 Registriert: 13.02.2003
|
erstellt am: 20. Feb. 2003 12:39 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Heinz, ich habe mir einmal erlaubt das Lisp zu ändern, damit es läuft. So sollte es funktionieren. Die Frabe stimmt aber nur dann, wenn der ausgewählte Layer die Farbe 'vonLayer' hat. (defun c:num (/ nr ipt ant th prefix) (setq LAY_OLD (getvar "CLAYER")) (setq prefix (getstring "\nTextprefix: ") nr (if (setq ant (getint "\nStartnummer <0>")) (1- ant) 0 ) ;_ end of if th (getreal "\nTexthöhe:") ) ;hier fehlte eine Klammer (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":") ) ;_ end of getpoint ) ;_ end of setq
(princ "\nWählen sie ein Element für die Layerschaltung : ") ; hier war eine Klammer zuviel (setq AWS (ssget)) ;Bildet einen AusWahlSatz der Gewählten Elemente (setq AWS (ssname AWS 0)) ;Nimmt das erste Element aus dem AWS und macht einen neuen AWS draus (setq LAY_NEW (cdr (assoc 8 (entget AWS)))) ;ermittelt den Layer des Elements im AWS (setvar "CLAYER" LAY_NEW) (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") (cons 8 lay_new) ; hier stand eine falsche Variable '(100 . "AcDbText") (cons 10 ipt) (cons 40 th) (cons 1 (strcat prefix (itoa nr))) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ;_ end of list ) ;_ end of entmake ) ;_ end of while (setvar "CLAYER" LAY_OLD) ) Gruß Cad-Lisp
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 20. Feb. 2003 12:49 <-- editieren / zitieren --> Unities abgeben:
Danke Cad-lisp Aber so habe ich das nicht gemeint, das ich nach jeder Zahl ein Objekt anklicken muß, um den Layer festzulegen. Ich den Layer nur einmal festlegen und die Nummern einfügen. Danke Heinz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cad-lisp Mitglied Holztechniker
Beiträge: 12 Registriert: 13.02.2003
|
erstellt am: 20. Feb. 2003 13:22 <-- editieren / zitieren --> Unities abgeben: Nur für Dober Heinz
Hallo Heinz, die Programmierung kam nicht von mir, habe nur die vorhandenen Fehler beseitigt. Aber trotzdem hier die gewünschte Änderung. Gruß Cad-Lisp (defun c:num (/ nr ipt ant th prefix) (setq LAY_OLD (getvar "CLAYER")) (setq prefix (getstring "\nTextprefix: ") nr (if (setq ant (getint "\nStartnummer <0>")) (1- ant) 0 ) ;_ end of if th (getreal "\nTexthöhe:") ) ;hier fehlte eine Klammer
(princ "\nWählen sie ein Element für die Layerschaltung : ") (setq AWS (ssget)) (setq AWS (ssname AWS 0)) (setq LAY_NEW (cdr (assoc 8 (entget AWS)))) (setvar "CLAYER" LAY_NEW) (while (setq ipt (getpoint (strcat "\nEinfügepunkt: " (itoa (setq nr (1+ nr))) ":") ) ;_ end of getpoint ) ;_ end of setq (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") (cons 8 lay_new) ; hier stand eine falsche Variable '(100 . "AcDbText") (cons 10 ipt) (cons 40 th) (cons 1 (strcat prefix (itoa nr))) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) (cons 11 ipt) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ;_ end of list ) ;_ end of entmake ) ;_ end of while (setvar "CLAYER" LAY_OLD) ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
Beiträge: 1146 Registriert: 20.12.2002 Autocad 2021/64B Win10 WORKSTATION Intel(R) CPU E5-1620 3.60GHz 32 GB Ram 64 Bit-Betriebssystem HP Designjet T7200 Grafik NVIDIA Quadro P4000 ZWCAD2021
|
erstellt am: 20. Feb. 2003 13:31 <-- editieren / zitieren --> Unities abgeben:
|