2
439
536
限制会员
(defun c:dwrite(/ plObj stBl enBl datLst cAns hyObj okFlg cMat mLst mNum); ************ MODIFY LIST OF MATERIALS ************ (setq mLst '( (0 . "N/A") (1 . "DIN 2391") (2 . "DIN 2392") (3 . "DIN 2394") )); end setq ; ************ MODIFY DEFAULT MATERIAL ************ (if(not dwrite:material) (setq dwrite:material "N/A") ); end if (defun Entsel_or_Text(Spaces Message / lChr tStr grLst filPt selSet outVal pSps) (princ Message) (setq tStr ""); end setq (if Spaces (setq pSps(list "\r")) (setq pSps(list " " "\r")) ); end if (while (and (not(member lChr pSps))(/= 3(car grLst)) ); end and (if (setq grLst(grread nil 4 2)) (progn (cond ((= 3(car grLst)) (setq filPt(cadr grLst) selSet(ssget filPt) ); end setq (if selSet (setq outVal (list(ssname selSet 0)filPt)) ); end if ); end condition #1 ((or (equal '(2 13) grLst) (equal 25(car grLst)) ); end or (setq lChr "\r" outVal tStr); end setq ); end condition #2 ((and (equal '(2 grLst) (< 0(strlen tStr)) ); end and (setq tStr(substr tStr 1(1-(strlen tStr)))) (princ(strcat(chr (chr 32)(chr )) ); end condition #3 ((and (= 2(car grLst)) (<= 32(cadr grLst)126) ); end and (setq lChr(chr(cadr grLst))) (if(not(member lChr pSps)) (progn (setq tStr(strcat tStr lChr) outVal tStr); end setq (princ lChr) ); end progn ); end if ); end condition #4 ); end cond ); end progn ); end if ); end while outVal); end of Entsel_or_Text (while(not okFlg) (princ(strcat "\nCurrent material = " dwrite:material)) (setq plObj(Entsel_or_Text T "\nSelect polyline or [Material]: ")) (cond ((and (= 'LIST(type plObj)) (= "LWPOLYLINE"(cdr(assoc 0(entget(car plObj))))) ); end and (setq plObj(car plObj) okFlg T); end setq ); end condition #1 ((= 'LIST(type plObj)) (princ "\nThis isn't LwPolyline! ") ); end condition #2 ((and (= 'STR(type plObj)) (member(strcase plObj) '("M" "_M" "MATERIAL" "_MATERIAL")) ); end and (textscr) (princ "\n====== MATERIAL LIST ======") (foreach m mLst (princ(strcat "\n[" (itoa(car m)) "] - "(cdr m))) ); end foreach (princ "\n===========================") (setq mNum(getint "\nSelect material from list: ")) (if(and mNum(setq cMat(assoc mNum mLst))) (progn (setq dwrite:material(cdr cMat)) (graphscr) ); end progn (princ "\nCan't find material with this number! ") ); end if ); end condition #3 ((null plObj)