| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Digitale Engineering-Prozesse bei Pergande mit BIM-, CAD- und PDM-Lösungen von Autodesk, ein Anwenderbericht
|
Autor
|
Thema: attributwerte in kalkulator berechnen und zurückschreiben (2485 mal gelesen)
|
cadarch1 Mitglied Architekt
 Beiträge: 2 Registriert: 19.03.2004
|
erstellt am: 19. Mrz. 2004 02:17 <-- editieren / zitieren --> Unities abgeben:         
hallo! in ca. 500 vorhandenen blocks mit jeweils zwei vorhandenen attributen sollen die vorhandenen attributswert entsprechend einer formel umgerechnet und wieder zurückgeschrieben werden. geht das? die formel wäre für beide attributswerte (*3.5 (- X 3) also x wert -3 * 3.5 kenne mich leider mit lisp gar nicht aus. vielleicht kann mir aber trotzdem jemand helfen? danke! wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 19. Mrz. 2004 07:53 <-- editieren / zitieren --> Unities abgeben:          Nur für cadarch1
* Willkommen auf CAD.de ! * Ich empfehle dir 1. die Expresstools zu installieren. ( Leider hast du keinerlei Angaben zur eingesetzten Software gemacht, bitte trage das in dein Profil ein ! ) dort gibt es zwei Befehle: ATTOUT & ATTIN mit denen kann man alle Blöcke mit allen Attribut(wert)en auslesen in eine einfache Textdatei. Diese kann man zB einfach in Excel öffnen und im Excel dürfte das ändern der Werte für dich ja kein Problem sein... anschließend kann man diese Textdatei zurückschreiben lassen in die Dwg (ATTIN). Ich stelle dir hier kein spezielles Lisp rein weil der oben genannte Weg viel mehr Möglichkeiten bietet und du dies in Zukunft auch bei anderen Problemstellungen (ändern der Attributwerte) einsetzen kannst, somit denke ich ist der mehr geholfen wie ein Lisp was nur für diese eine einzige Aufgabenstellung zu gebrauchen ist. Evtl bastelt dir ja noch jmd etwas ! Aber in letzter Zeit mußte man zunehmend feststellen das: L.I.S.P. bei vielen eine Abkürzung für sofort & kostenlos ist. Und das bremst zZeit evtl bei dem einen oder anderen den Helferdrang. ( Was ich nicht verübeln könnte. ) Hoffe es hilft dir , bye
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13527 Registriert: 30.11.2003 Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.
|
erstellt am: 19. Mrz. 2004 08:22 <-- editieren / zitieren --> Unities abgeben:          Nur für cadarch1
Auch wenn ich CADffm mit "Aber in letzter Zeit mußte man zunehmend feststellen das: L.I.S.P. bei vielen eine Abkürzung für sofort & kostenlos ist" rechtgeben möchte... unterstelle ich dir das mal nicht sofort... und deshalb ( auch weil das Grundgerüst schon fertig war.. ) folgender Code (ohne Garantie): (defun INSERT_UPDATE ( INSERT / OBJEKTDATEN SKALIERUNG ROTATION ORIGIN ATTRIBNAME ATTRIBINHALT) (if (and(=(type INSERT) 'ENAME) (=(cdr(assoc 0 (setq OBJEKTDATEN (entget INSERT)))) "INSERT") ) (progn (if (assoc 66 OBJEKTDATEN) (while (/= (cdr (assoc 0 OBJEKTDATEN)) "SEQEND") (setq OBJEKTDATEN (entget (entnext (cdr (assoc -1 OBJEKTDATEN))))) (if (= (cdr (assoc 0 OBJEKTDATEN)) "ATTRIB") (progn (princ objektdaten) (setq ATTRIBNAME (cdr(assoc 2 OBJEKTDATEN))) (setq ATTRIBINHALT (cdr(assoc 1 OBJEKTDATEN))) ;(if (= ATTRIBNAME "ITEM") (progn (setq ATTRIBINHALT (atof ATTRIBINHALT)) ;(setq ATTRIBINHALT (atoi ATTRIBINHALT)) (setq ATTRIBINHALT (rtos (* (- ATTRIBINHALT 3) 3.5) 2 2)) ;(setq ATTRIBINHALT (itoa (- ATTRIBINHALT 1))) (setq OBJEKTDATEN (subst(cons 1 ATTRIBINHALT) (assoc 1 OBJEKTDATEN) OBJEKTDATEN ) ) (entmod OBJEKTDATEN) ) ;) ) ) ) ) ) ) ) ;; --------------------------------------------------------------------------------- ;; (defun C:INSERTs_UPDATE ( / OBJEKT OBJEKTDATEN NAME AUSWAHL INDEX) (if (and(setq OBJEKT (ssget "_:S" '((0 . "INSERT")))) (setq OBJEKT (ssname OBJEKT 0))) (progn (setq OBJEKTDATEN (entget OBJEKT)) (setq NAME (cdr(assoc 2 OBJEKTDATEN))) (setq AUSWAHL (ssget "_X" '((0 . "INSERT")))) (setq INDEX 0) (if AUSWAHL (repeat (sslength AUSWAHL) (if (=(strcase(cdr(assoc 2 (entget(ssname AUSWAHL INDEX)))))(strcase NAME)) (INSERT_UPDATE(ssname AUSWAHL INDEX)) ) (setq INDEX(1+ INDEX)) ) ) (while (setq BLOCKDEF (tblnext "BLOCK" (null BLOCKDEF))) (if (and(/=(logand(cdr(assoc 70 BLOCKDEF))4)4) (or(/= (logand(cdr(assoc 70 BLOCKDEF))1)1) (=(substr NAME 1 2) "*U") ) ) (progn (setq OBJEKT (cdr (assoc -2 BLOCKDEF))) (while OBJEKT (if (and (=(cdr(assoc 0 (entget OBJEKT))) "INSERT") (=(cdr(assoc 2 (entget OBJEKT))) NAME)) (INSERT_UPDATE (ssname AUSWAHL INDEX)VEKTOR MOD2) ) (setq OBJEKT (entnext OBJEKT)) ) (entupd (cdr (assoc -2 BLOCKDEF))) ) ) ) (command "._regen") ) (princ "\nKeine Blockreferenz gewählt!\n") ) (princ) ) ------------------ - Thomas -
[Diese Nachricht wurde von CADmium am 19. Mrz. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
       

 Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 19. Mrz. 2004 08:25 <-- editieren / zitieren --> Unities abgeben:          Nur für cadarch1
|
cadarch1 Mitglied Architekt
 Beiträge: 2 Registriert: 19.03.2004
|
erstellt am: 19. Mrz. 2004 12:13 <-- editieren / zitieren --> Unities abgeben:         
@thomas supervielendank für deine mühe!!! das hilft mir echt sehr weiter! @thomas, sebastian, und jeder der das liest
ich kenne mich mit lisp leider überhaupt nicht aus und dieses tolle forum habe ich auch nur per zufall gefunden. ich finde es super daß sich die leute hier austauschen können und sich gegenseitig helfen. wenn ich etwas für andere tun kann was in meinen möglichkeiten liegt mache ich das auch gerne. ansonsten bin ich auch gerne bereit für den aufwand zu zahlen.
ich dachte nicht daß es soviel aufwand wäre so etwas zu programmieren. sorry ! @sebastian mußte ich nur loswerden, ich weiß daß es nicht direkt gegen mich geht. wenn ihr so oft "einfach mal schnell" um hilfe gebeten werdet kann das sicherlich nerven. vielen dank nochmal!
wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |