Message 1 of 5
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi
I have the following code. In the second part of "if" I introduced a "initget" depending of the variable *KUFU*, but I don´t know how to do it in the first part. I Need to get the value of the Attribute from the existing block, but no idea...
Please help...
(vl-load-com) (defun C:<Test7 ( / *error* oATTREQ oATTDIA LM:vl-setattributevalue :roundUpToTens ensel tag obj *LÄNGE* *HÖHEo* *loop*) (defun *error* (errmsg) (if (not (wcmatch errmsg "Function cancelled,quit / exit abort,console break")) (princ (strcat "\nError: " errmsg))) (setvar 'ATTREQ oATTREQ) (setvar 'ATTDIA oATTDIA) (vla-endundomark doc) (princ)) ;; Lee Mac ;; http://www.lee-mac.com/attributefunctions.html (defun LM:vl-setattributevalue ( blk tag val ) (setq tag (strcase tag)) (vl-some '(lambda ( att ) (if (= tag (strcase (vla-get-tagstring att))) (progn (vla-put-textstring att val) val))) (vlax-invoke blk 'getattributes))) ;; BeekeeCZ (defun :roundUpToTens (x / ) (* (atoi (rtos (+ (* x 0.1) 0.49) 2 0)) 10)) (vla-endundomark (setq doc (vla-get-activedocument (vlax-get-acad-object)))) (vla-startundomark doc) (setq oATTREQ (getvar 'ATTREQ) oATTDIA (getvar 'ATTDIA)) (setvar 'ATTREQ 0) (setvar 'ATTDIA 0) (or *KUFU* (setq *KUFU* "mit")) (or *ANZAHL* (setq *ANZAHL* 10)) (or *HÖHE* (setq *HÖHE* "20")) (setq *HÖHEo* *HÖHE*) (or *ELEMENT* (setq *ELEMENT* 25)) (if (setq ensel (car (nentsel "\nDistanzkorb-Text wählen oder <Neuer einfügen>: "))) (progn (setq tag (cdr (assoc 2 (entget ensel))) obj (vlax-ename->vla-object (cdr (assoc 330 (entget ensel))))) (cond ((= tag "KUFU") (initget 1 "Mit Ohne") (setq *KUFU* (strcase (getkword "\nMit oder ohne KUFU (Mit/Ohne): ")T)) (LM:vl-setattributevalue obj "KUFU" (strcat "DK " *KUFU* " KUFU"))) ((= tag "ANZAHL") (initget 7) (setq *ANZAHL* (:roundUpToTens (getint "\nAnzahl Körbe: ")) *LÄNGE* (* *ANZAHL* 2.5)) (LM:vl-setattributevalue obj "LÄNGE" *LÄNGE*) (LM:vl-setattributevalue obj "ANZAHL" *ANZAHL*)) ((= tag "HÖHE")
??????????????????? (initget 7) (setq *HÖHE* (getint "\nHöhe der Körbe: ")) (LM:vl-setattributevalue obj "HÖHE" *HÖHE*))
((= tag "LÄNGE") (alert "Die Länge wird durch die Anzahl Körbe automatisch bestimmt.")) ((= tag "ELEMENT") (initget 7) (setq *ELEMENT* (getint "\nElementstärke: ")) (LM:vl-setattributevalue obj "ELEMENT" (strcat "für Element d=" (itoa *ELEMENT*) "cm")))) ) (progn (command "_.INSERT" "spi-bew-dkm" "_s" 1 "_r" 0) (princ "\nIn Eisenliste bei Distanzkörbe einfügen: \n") (command PAUSE) (setq obj (vlax-ename->vla-object (entlast))) (initget "Mit Ohne") (setq *KUFU* (strcase (cond ((getkword (strcat "\nMit oder ohne KUFU (Mit/Ohne) <" *KUFU* ">: ")))(*KUFU*))T)) (LM:vl-setattributevalue obj "KUFU" (strcat "DK " *KUFU* " KUFU")) (initget 6) (setq *ANZAHL* (:roundUpToTens (cond ((getint (strcat "\nAnzahl Körbe <" (itoa *ANZAHL*) ">: ")))(*ANZAHL*)))) (LM:vl-setattributevalue obj "ANZAHL" *ANZAHL*) (setq *LÄNGE* (* *ANZAHL* 2.5)) (while (= *loop* nil)
(cond ((= *KUFU* "mit") (initget "2 2.5 3 3.5 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110")) ((= *KUFU* "ohne") (initget "4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110"))) (setq *HÖHE* (getkword (strcat "\nHöhe der Körbe <" *HÖHE* ">: ")) *HÖHE* (if (= *HÖHE* nil) *HÖHEo* *HÖHE*)) (cond ((and (= *KUFU* "mit")(= *HÖHE* "51"))(princ "\nKorbhöhe nicht vorhanden!")(setq *loop* nil)) ((and (= *KUFU* "mit")(= *HÖHE* "53"))(princ "\nKorbhöhe nicht vorhanden!")(setq *loop* nil)) ((and (= *KUFU* "ohne")(= *HÖHE* "2"))(princ "\nKorbhöhe nicht vorhanden!")(setq *loop* nil)) ((and (= *KUFU* "ohne")(= *HÖHE* "2.5"))(princ "\nKorbhöhe nicht vorhanden!")(setq *loop* nil)) ((and (= *KUFU* "ohne")(= *HÖHE* "3"))(princ "\nKorbhöhe nicht vorhanden!")(setq *loop* nil)) ((and (= *KUFU* "ohne")(= *HÖHE* "3.5"))(princ "\nKorbhöhe nicht vorhanden!")(setq *loop* nil)) (setq *loop* 1)) ); end of while (LM:vl-setattributevalue obj "HÖHE" *HÖHE*) (LM:vl-setattributevalue obj "LÄNGE" *LÄNGE*) (initget 6) (setq *ELEMENT* (cond ((getint (strcat "\nElementstärke <" (itoa *ELEMENT*) ">: ")))(*ELEMENT*))) (LM:vl-setattributevalue obj "ELEMENT" (strcat "für Element d=" (itoa *ELEMENT*) "cm")) )) (setvar 'ATTREQ oATTREQ) (setvar 'ATTDIA oATTDIA) (vla-endundomark doc) (prin1) ) ; end of defun
Solved! Go to Solution.