| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: cons überschreibt den letzten durch cons dazugefügten eintrag???? (895 mal gelesen)
|
Steff179 Mitglied Geomatiker
Beiträge: 266 Registriert: 09.08.2007 AutoCAD 2014
|
erstellt am: 18. Mrz. 2009 14:11 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen (defun c:test () (setq obj (car(entsel))) (entmod(cons '(63 . 256)(entget obj))) (entmod(cons '(45 . 1.5)(entget obj))) ) wenn ich das auf einen mtext anwende überschreibt der mir den 63 . 256 eintrag... ligt das daran das man nicht mehr am anfang hinzufügen kann oder wiso? ich schnalls nicht... gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 18. Mrz. 2009 14:16 <-- editieren / zitieren --> Unities abgeben: Nur für Steff179
Was soll der der Sch.... fang doch mal mit dem Anfang an, d.h. mit Mapcars Tutorial .. und progg nicht einfach drauf los ohne Funktionsweisen und Zusammenhänge zu verstehen! Du willst irgendwelche GCs zu einer Entgetliste hinzufügen, ohne auf die richtige Position des GC in der Liste zu achten (auch wenn ACAD da manchmal tolerant ist), oder zu testen, ob es den GC schon mal gibt, und er mit subst ersetzt werden müßte. Auch muß der GC im Objekt erlaubt sein... ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 18. Mrz. 2009 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für Steff179
|
Steff179 Mitglied Geomatiker
Beiträge: 266 Registriert: 09.08.2007 AutoCAD 2014
|
erstellt am: 18. Mrz. 2009 15:09 <-- editieren / zitieren --> Unities abgeben:
ok alles klar... ich hatte eigentlich irgendwie im hinterkopf das man nur an den anfang von listen schreiben könnte weiss nicht wo ich das gelesen habe... dann werde ich mal suchen wie das korrekt geht... in "Flickschusterei" wird halt auch nur die farbe behandelt... mal weiter stöbern... besten dank steff ps.: @CADmium die einträge waren selbstverständlich nicht vorhanden und war auch nur zum teste. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 18. Mrz. 2009 15:18 <-- editieren / zitieren --> Unities abgeben: Nur für Steff179
Zitat: Original erstellt von Steff179: ich hatte eigentlich irgendwie im hinterkopf das man nur an den anfang von listen schreiben könnte weiss nicht wo ich das gelesen habe...
..das ist die Arbeitsweise von cons ... (doted Pairs sind noch ein bißchen anders , aufpassen!) (cons 1 '(2 3 4 5)) -> (1 2 3 4 5) append hängt an (Liste an Liste) (append '(2 3 4 5)'(6)) -> (2 3 4 5 6) für das dazwischeneinfügen muß man sich eigene Funktionen bauen. Aber aus deinen bisherigen Postings geht hervor, das du wirklich "Flickschusterei" betreibst. Das wird mittlefristig in die Hose gehen. ( und das Helfen macht dann auch immer weniger Spaß )
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 18. Mrz. 2009 16:10 <-- editieren / zitieren --> Unities abgeben: Nur für Steff179
Hallo Steff, hier nochmal ein Beispiel, wie man einen Gruppencodeeintrag zwischen zwei vorhandene packt. Aber Vorausetzung ist, daß Du Dich mit den von CADmium angesprochenen Funktionen auseinandersetzt. Zudem weiß ich nicht, ob Du Dich bereits mit MAPCAR und APPLY auseinandergesetzt hast (die habe ich auch verwendet) Versuch dochmal, den Code Step by Step mit den Überwachungsfenster im Visual-LISP-Editor durchzugehen, dann wird bestimmt einiges klarer. Code:
;;;'( ;;; (-1 . <OBJEKTNAME: 75406208>) ;;; (0 . "LINE") ;;; (330 . <OBJEKTNAME: 7DB0DFA8>) ;;; (5 . "30791") ;;; (100 . "AcDbEntity") ;;; (67 . 0) ;;; (410 . "Model") ;;; (8 . "BV-FM-SYM") ;;; (62 . 1) Die Farbe soll zwischen GC8 und GC100 ;;; (100 . "AcDbLine") ;;; (10 62057.6 35098.7 0.0) ;;; (11 62059.4 35100.7 0.0) ;;; (210 0.0 0.0 1.0))(defun gc2list (GC_n_vorher GC_n_nacher GCnew liste / N) (setq n 0) (apply 'append (mapcar '(lambda(A) (setq n (+ n 1)) (if (and(=(car A)GC_n_vorher) (>(length liste)n) (=(car(nth n liste))GC_n_nacher)) (append (list A)(list GCnew)) (list A)))liste))) (defun c:test ( / FARBE LISTE OBJ) (setq farbe 5) (if (and(setq obj(car (entsel))) (setq liste (entget obj))) (if (assoc 62 liste) (entmod(subst(cons 62 farbe)(assoc 62 liste)liste)) (entmod(gc2list 8 100 (cons 62 farbe)liste)))))
------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |