Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Mathematische Operationen mit Attributen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Mathematische Operationen mit Attributen (3872 mal gelesen)
Helmut Wieser
Mitglied
Mitarbeiter in Architekturbüro


Sehen Sie sich das Profil von Helmut Wieser an!   Senden Sie eine Private Message an Helmut Wieser  Schreiben Sie einen Gästebucheintrag für Helmut Wieser

Beiträge: 134
Registriert: 08.03.2004

AutoCAD 2006
ArchTools 2004

erstellt am: 06. Jul. 2004 14:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Putzschacht.zip

 
Hallo Leute!

Folgendes: Ich projektiere mal wieder einen Hauskanal.
Bei der Schachttiefe rechne ich zig mal dasselbe:
Schachttiefe = Niveau Kanaldeckel - Niveau Kanalsohle - Rohrdurchmesser.

Für den Schacht hab ich mir schon einen Attributblock gebastelt (sh. Anhang), die Schachttiefe rechne ich mit dem Taschenrechner aus und übertrage den Wert manuell - keine sehr befriedigende Methode.

Deshalb meine Frage: Hat wer ein LISP o.Ä. mit dem man mathematische Operationen auf Attribute anwenden kann? Lässt sich so was programmieren?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 06. Jul. 2004 14:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

Ist machbar -> Siehe Hier

Kriegstes daraus angepasst?

------------------
- Thomas -

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Helmut Wieser
Mitglied
Mitarbeiter in Architekturbüro


Sehen Sie sich das Profil von Helmut Wieser an!   Senden Sie eine Private Message an Helmut Wieser  Schreiben Sie einen Gästebucheintrag für Helmut Wieser

Beiträge: 134
Registriert: 08.03.2004

AutoCAD 2006
ArchTools 2004

erstellt am: 06. Jul. 2004 15:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Schöner Weg nur leider mit Acad 2002 nicht machbar (unbekannter Befehl "attout"

Helmut

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 06. Jul. 2004 15:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

ich dachte eher an das Lisp...


sollte dann(ungetestet) so ähnlich aussehen :

(defun Rechne-Schachttiefe ( INSERT  / OBJEKTDATEN  TIEFE)
  (if (and(=(type INSERT) 'ENAME)         
  (=(cdr(assoc 0 (setq OBJEKTDATEN (entget INSERT)))) "INSERT")  
      )
    (progn     
      (if (assoc 66 OBJEKTDATEN)
        (progn
          (while (/= (cdr (assoc 0 OBJEKTDATEN)) "SEQEND") 
            (setq OBJEKTDATEN (entget (entnext (cdr (assoc -1 OBJEKTDATEN)))))
            (if (= (cdr (assoc 0 OBJEKTDATEN)) "ATTRIB")
              (progn               
                (cond
                  ((= (strcase (cdr(assoc 2 OBJEKTDATEN))) "NIVEAU-KANALDECKEL")
                    (setq NKD (atof (cdr(assoc 1 OBJEKTDATEN))))
                  )
                  ((= (strcase (cdr(assoc 2 OBJEKTDATEN))) "NIVEAU-KANALSOHLE")
                    (setq NKS (atof (cdr(assoc 1 OBJEKTDATEN))))
                  )
                  ((= (strcase (cdr(assoc 2 OBJEKTDATEN))) "ROHRDURCHMESSER")
                    (setq RD (atof(cdr(assoc 1 OBJEKTDATEN))))
                  )
                  ((= (strcase (cdr(assoc 2 OBJEKTDATEN))) "SCHACHTTIEFE")
                    (setq TIEFE OBJEKTDATEN)
                  )
                )
              )
            )
          )  
          (if (and(numberp NKD)(numberp NKS)(numberp RD))
            (progn
              (setq SCHACHTTIEFE (- NKD NKS RD))
              (princ SCHACHTTIEFE)
              (setq TIEFE (subst(cons  1 (rtos SCHACHTTIEFE 2 3))
                                (assoc 1 TIEFE)
                                TIEFE
                          )
              )
              (prin1 TIEFE)
              (entmod TIEFE)          
            ) 
          )
        ) 
      )     
    )
  ) 
)

;; --------------------------------------------------------------------------------- ;;
(defun C:Rechne-Schachttiefe ( / 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))
            (Rechne-Schachttiefe(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))
                (Rechne-Schachttiefe (ssname AUSWAHL INDEX))
              )
              (setq OBJEKT (entnext OBJEKT))
            )
            (entupd (cdr (assoc -2 BLOCKDEF)))
          )
        )
      )
      (command "._regen")
    ) 
    (princ "\nKeine Blockreferenz gewählt!\n")
  )
  (princ)
)

dazu

Schachtblock mit folgenden Attributen definieren
"NIVEAU-KANALDECKEL" enthält Niveau oben als  Realzahl
"NIVEAU-KANALSOHLE"  enthält Niveau unten als Realzahl
"ROHRDURCHMESSER"    enthält Rohrd. unten als Realzahl
(evtl. Einheiten sind bei der Umrechnung zu breücksichtigen)
"SCHACHTTIEFE"       enthält später dann den berechneten Wert

oder im Lisp ändern

------------------
    - Thomas -

[Diese Nachricht wurde von CADmium am 06. Jul. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nesquiker
Mitglied
CAD - Zeichner


Sehen Sie sich das Profil von Nesquiker an!   Senden Sie eine Private Message an Nesquiker  Schreiben Sie einen Gästebucheintrag für Nesquiker

Beiträge: 69
Registriert: 16.01.2003

erstellt am: 06. Jul. 2004 15:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

[QUOTE]Original erstellt von Helmut Wieser:
[B]Schöner Weg nur leider mit Acad 2002 nicht machbar (unbekannter Befehl "attout"

hi
Ist mit Acad 2002 machbar nach installation der Expresstools!
Dank nochmal an CADwiesel

------------------
gruss
Nesquiker

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 06. Jul. 2004 15:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

was hat attout mit Rechenoperationen mit Attributwerten zu tun ??

ATTOUT exportiert Block-Attributwerte in eine externe TXT-Datei (mit Tabulator getrennt und ASCII-Zeichen).

------------------
- Thomas -

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Helmut Wieser
Mitglied
Mitarbeiter in Architekturbüro


Sehen Sie sich das Profil von Helmut Wieser an!   Senden Sie eine Private Message an Helmut Wieser  Schreiben Sie einen Gästebucheintrag für Helmut Wieser

Beiträge: 134
Registriert: 08.03.2004

AutoCAD 2006
ArchTools 2004

erstellt am: 06. Jul. 2004 15:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


SYMB_Kanal-PS-100-02.zip

 
Hallo Thomas!

Erstmal herzlichen Dank.

Die Sache funktioniert nur (noch) nicht:

Befehl:
RECHNE-SCHACHTTIEFE
Objekte wählen:
; Fehler: no function definition: INSERT_UPDATE

Den Block hab ich mal wie von Dir angeregt umgebaut (sh. Anhang)


Muß der Block einen bestimmten Namen haben ? (Nähere mich erst langsam der Lisp- Welt)

Vielleicht noch ein Hinweis ? 

Helmut


@Nesquiker: Expresstools sind bei mir installiert ...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 06. Jul. 2004 16:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

Jupp ,sorry  ersetze mal im Text
INSERT_UPDATE
durch
Rechne-Schachttiefe

( hab beim umbenennen geschlammpt)

------------------
- Thomas -

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd P
Ehrenmitglied V.I.P. h.c.
cook-general



Sehen Sie sich das Profil von Bernd P an!   Senden Sie eine Private Message an Bernd P  Schreiben Sie einen Gästebucheintrag für Bernd P

Beiträge: 3358
Registriert: 07.06.2001

W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365

erstellt am: 06. Jul. 2004 16:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

Servus

Wiso Lisp? Verwende für solche Gelegenheiten "attout" (gut ok sind auch lisp), dann das ganze in Excel bearbeiten und mit "attin" wieder einlesen und fertig.

PS.: ATTOUT und ATTIN sind von den E-Tools wer sie nicht hat ist selber schuld oder geht auf cadwiesel

------------------
schöne Grüsse aus der Steiermark  Bernd P.         

Bitte Supportangaben eintragen, warum siehst du hier hier

[Diese Nachricht wurde von Bernd P am 06. Jul. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Helmut Wieser
Mitglied
Mitarbeiter in Architekturbüro


Sehen Sie sich das Profil von Helmut Wieser an!   Senden Sie eine Private Message an Helmut Wieser  Schreiben Sie einen Gästebucheintrag für Helmut Wieser

Beiträge: 134
Registriert: 08.03.2004

AutoCAD 2006
ArchTools 2004

erstellt am: 06. Jul. 2004 16:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ein Schritt weiter doch noch nicht am Ziel:

Befehl: Rechne-Schachttiefe

Objekte wählen:
; Fehler: Fehlerhafter Argumenttyp: numberp: nil

Helmut

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

Hinweis: Meine Mitarbeit auf CAD.DE ist fakultativ, unentgeltlich und beruht nur auf einem ausgeprägtem Helfersyndrom.

erstellt am: 06. Jul. 2004 16:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Helmut Wieser 10 Unities + Antwort hilfreich

so, noch ein paar Schreibfehler (Variablennamen) beseitigt und ein paar Klammern verschoben ( man sollte doch testen !) ... lads dir aus obigen Beitrag nochmal .. sollte jetzt funzen .. bei mir tut es das jedenfalls mit deinem Block.

Schönen Feierabend

------------------
- Thomas -

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Helmut Wieser
Mitglied
Mitarbeiter in Architekturbüro


Sehen Sie sich das Profil von Helmut Wieser an!   Senden Sie eine Private Message an Helmut Wieser  Schreiben Sie einen Gästebucheintrag für Helmut Wieser

Beiträge: 134
Registriert: 08.03.2004

AutoCAD 2006
ArchTools 2004

erstellt am: 06. Jul. 2004 17:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Auch wenn Dich das heute nicht mehr erreicht:

Befehl: _appload SCHT02.lsp erfolgreich geladen.
SCHT02.lsp erfolgreich geladen.


Befehl: ; Fehler: Falsch formatierte Liste in Eingabe

Befehl: ; Fehler: Falsch formatierte Liste in Eingabe

Befehl:
Befehl: rechne-schachttiefe
Unbekannter Befehl "RECHNE-SCHACHTTIEFE". Drücken Sie F1-Taste für Hilfe.

Irgendwas hats da noch immer....


Helmut

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Helmut Wieser
Mitglied
Mitarbeiter in Architekturbüro


Sehen Sie sich das Profil von Helmut Wieser an!   Senden Sie eine Private Message an Helmut Wieser  Schreiben Sie einen Gästebucheintrag für Helmut Wieser

Beiträge: 134
Registriert: 08.03.2004

AutoCAD 2006
ArchTools 2004

erstellt am: 07. Jul. 2004 08:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute!

Die erste Doppelklammer wars - nicht ((defun sondern (defun ....

Ist jetzt oben schon richtiggestellt.

Also: Alle die Schachttiefen nicht mehr händisch rechnen wollen - es funktioniert.

Auch hier nochmal herzlichen Dank an Thomas und Grüße aus Wien

Helmut

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz