| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| | |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
|
Autor
|
Thema: Ein Attributt ändern (1316 mal gelesen)
|
Nano Mitglied
 
 Beiträge: 179 Registriert: 25.10.2004
|
erstellt am: 07. Okt. 2007 11:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo Habe ein Block mit Attributen möchte gerne ein Attribut ändern. Kann mir jemand sagen was ich falsch mache? Variable: a105txt1 = "Mein Text" Attributnamen: "RAUM-NUMMER" (defun C:TEST() (setq OBJEKTDATEN (entget (ENTLAST))) (while (/= (cdr (assoc 0 (entget OBJEKTDATEN))) "SEQEND") (setq OBJEKTDATEN (entnext (cdr (assoc -1 OBJEKTDATEN)))) (if (and (= (cdr (assoc 0 (ENTGET OBJEKTDATEN))) "ATTRIB") (= (strcase (cdr(assoc 2 (ENTGET OBJEKTDATEN))) "RAUM-NUMMER")) ) (entmod (subst (cons 1 a105txt1)(assoc 1 OBJEKTDATEN) OBJEKTDATEN)) ) ) ) Gruss Nano Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung und AutoLISPler
    
 Beiträge: 1781 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: 07. Okt. 2007 19:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
Hallo Nano, vergleiche einfach mal Deinen Code mit dem folgenden: Code:
(defun C:TEST () (setq OBJEKTDATEN (ENTLAST)) (while (/= (cdr (assoc 0 (entget (setq OBJEKTDATEN (entnext OBJEKTDATEN))))) "SEQEND") (if (and (= (cdr (assoc 0 (ENTGET OBJEKTDATEN))) "ATTRIB") (= (strcase (cdr (assoc 2 (ENTGET OBJEKTDATEN)))) "RAUM-NUMMER")) (progn (entmod (subst (cons 1 a105txt1) (assoc 1 (ENTGET OBJEKTDATEN)) (ENTGET OBJEKTDATEN))) (entupd (entlast))))))
------------------ viele Grüße Jörn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 08. Okt. 2007 12:06 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
ich habe mir dazu 2 kleine Basisroutinen erstellt. der Aufruf schaut dann einfach so aus (00_SchreibeAttribute (entlast) (list (cons "RAUM-NUMMER" a105txt1))) ; ; schreibt in einen Block ein Attribut ; -> ename der Elementname des INSERTS , -> daten Attribute in form einer Assocliste ; (defun 00_SchreibeAttribute (ename daten / edate name ename0) (setq ename0 ename) (while (and (setq ename (entnext ename)) (setq edate (entget ename)) (= (cdr (assoc 0 edate)) "ATTRIB") ) (setq name (cdr (assoc 2 edate))) (if (and (assoc name daten)(cdr (assoc name daten))) (entmod (subst (cons 1 (cdr (assoc name daten))) (assoc 1 edate) edate))) ) (entupd ename0) ) ; ; gibt alle Attribute eines Blockes als Assoc liste zurück , -> ename der Elementname des INSERTS ; (defun 00_LeseAttribute (ename / edate daten) (while (and (setq ename (entnext ename)) (setq edate (entget ename)) (= (cdr (assoc 0 edate)) "ATTRIB") ) (setq daten (cons (cons (cdr (assoc 2 edate)) (cdr (assoc 1 edate))) daten)) ) daten )
------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dober Heinz Mitglied Technischer Zeichner
   
 Beiträge: 1149 Registriert: 20.12.2002
|
erstellt am: 08. Okt. 2007 12:32 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 08. Okt. 2007 12:40 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
Zitat: Original erstellt von Dober Heinz: Hallo joern bosse Da hat sich ein Fehler eingeschlichen (progn (entmod (subst (cons 1 "a105txt1")
Sehe ich aber nicht so a105txt1 ist eine Variable (sieghe Urpsrungsposting) , die den gewünschten Text ("Mein Text") enthält ! Also ists so richtig, wies war ! (progn (entmod (subst (cons 1 a105txt1) .....
------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| | Anzeige: | Infos zum Werbeplatz >> | BlechCAD 3D CAD APP für Blechverarbeitung Metallbau- Fassadenbau- Planer, die aus fertigen Ansichten und Schnitten von Blechen, die Abwicklung zu bearbeiten haben, für eine NC-Software und Kantbankdaten.
Speziell für Aufträge die immer verschiedene Blecharten und Abmessungen aufweisen.
Blechabwicklungen für die Fertigung erstellen in 2-3 Mi
|
|
Dober Heinz Mitglied Technischer Zeichner
   
 Beiträge: 1149 Registriert: 20.12.2002
|
erstellt am: 08. Okt. 2007 15:25 <-- editieren / zitieren --> Unities abgeben:          Nur für Nano
Hallo Fuchsi Ja das Stimmt,habe ich übersehn, wenn ich es so teste ohne Variable dann bekomme ich aber einen Fehlermelung. Befehl: test ; Fehler: Fehlerhafte DXF-Gruppe: (1) ------------------ Heinz  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |