프로그램
캐드 분류

LISP 좀 봐주세요 ㅠㅠ

컨텐츠 정보

  • 116 조회
  • 2 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

(DEFUN *ERROR* (MSG)
 (PRINC "ERROR : ")
 (PRINC MSG)
 (TERPRI)
 (PRINC)
);ERROR MSG
(DEFUN FIRE ()
    (SETQ TXT "F"
          BK1 (list en BK1)
    );SETQ CLOSE
    (COMMAND "BREAK" BK1 BK2)
    (COMMAND "TEXT" "J" "M" TXP FTH "0″ TXT)
    (COMMAND "CHPROP" "L" "" "LA" "FIRE" "")
    (COMMAND "INSERT" ISN1 INS FL:1 FL:1 RT)
    (PRIN1)
);DEFUN FIRE
(DEFUN FIRE1 ()
    (COMMAND "INSERT" ISN1 TXP FL:1 FL:1 RT)
    (PRIN1)
);DEFUN FIRE1
(DEFUN FIRE2 ()
    (IF (< D1 D2)
     (PROGN (SETQ INS (POLAR L2 AG2 (- (/ D2 2) FL:12)))
            (SETQ INS1 (POLAR L2 AG2 (+ (/ D2 2) FL:13)))
     )
     (PROGN (SETQ INS (POLAR L1 AG1 (+ (/ D1 2) FL:12)))
            (SETQ INS1 (POLAR L1 AG1 (- (/ D1 2) FL:13)))
     )
    )
    (SETQ ISN1 "02″)
    (COMMAND "INSERT" ISN1 INS FL:1 FL:1 RT)
    (COMMAND "INSERT" ISN1 INS1 FL:1 FL:1 RT)
    (PRIN1)
);DEFUN FIRE2
(DEFUN FIRE3 ()
    (IF (< D1 D2)
     (PROGN (SETQ INS1 (POLAR L2 AG2 (+ (/ D2 2) FL:155))))
     (PROGN (SETQ INS1 (POLAR L1 AG1 (- (/ D1 2) FL:155))))
    )
    (SETQ ISN1 "02″)
    (SETQ TXT "F"
          BK1 (list en BK1)
    );SETQ CLOSE
    (COMMAND "BREAK" BK1 BK2)
    (COMMAND "TEXT" "J" "M" TXP FTH "0″ TXT)
    (COMMAND "CHPROP" "L" "" "LA" "FIRE" "")
    (COMMAND "INSERT" ISN1 INS FL:1 FL:1 RT)
    (COMMAND "INSERT" ISN1 INS1 FL:1 FL:1 RT)
    (PRIN1)
);DEFUN FIRE3
(DEFUN C:FF ()
  (SETVAR "CMDECHO" 0)
  (SETQ FL:1 (ATOF L:1)
        FTH (* FL:1 2.5)
        FL:12 (* FL:1 2)
        FL:13 (* FL:1 3)
        FL:155 (* FL:1 5.5)
        FL:145 (* FL:1 4.5)
        FL:112 (* FL:1 12)
        FL:18 (* FL:1 8)
        FL:115 (* FL:1 15)
        FL:123 (* FL:1 23)
  );SETQ CLOSE
  (COMMAND "OSNAP" "QUA,MID")
  (prompt "nFire line automatic lisp program … ")
  (SETQ L1 (GETPOINT "n Fire line pick first point : "))
  (SETQ L2 (GETCORNER L1 "n Pick second point : "))
  (SETVAR "OSMODE" 0);+
  (SETQ L3 (LIST (CAR L1) (CADR L2)))
  (SETQ D1 (DISTANCE L3 L1))
  (SETQ D2 (DISTANCE L2 L3))
  (SETQ AG1 (ANGLE L1 L3))
  (SETQ AG2 (ANGLE L2 L3))
  (IF (< D1 D2)
   (PROGN 
    (SETQ TXP (POLAR L2 AG2 (/ D2 2)))
    (SETQ BK1 (POLAR L2 AG2 (- (/ D2 2) FL:12)))
    (SETQ BK2 (POLAR L2 AG2 (+ (/ D2 2) FL:12)))
    (SETQ INS (POLAR L2 AG2 (- (/ D2 2) FL:145)))
    (SETQ RT "0″)
    (IF (> D1 FL:13)
     (PROGN (SETQ R FL:13))
     (PROGN (SETQ R (- D1 (/ D1 4))))
    )
   )
   (PROGN
    (SETQ TXP (POLAR L1 AG1 (/ D1 2)))
    (SETQ BK1 (POLAR L1 AG1 (- (/ D1 2) FL:12)))
    (SETQ BK2 (POLAR L1 AG1 (+ (/ D1 2) FL:12)))
    (SETQ INS (POLAR L1 AG1 (+ (/ D1 2) FL:145)))
    (SETQ RT "90″)
    (IF (> D2 FL:13)
     (PROGN (SETQ R FL:13))
     (PROGN (SETQ R (- D2 (/ D2 4))))
    )
   )
  )
  (COMMAND "PLINE" L1 "W" "0″ "" L3 L2 "")
  (COMMAND "CHPROP" "L" "" "LA" "FIRE-L" "")
  (setq sss (ssget "l")
        ent (entget (ssname sss 0))
        en (cdr (assoc -1 ent))
        L3 (list en L3)
  );setq close
  (COMMAND "FILLET" "R" R)
  (COMMAND "FILLET" "P" L3)
  (SETQ ISN (GETSTRING "n Insert drawing number 02 (////) [/Two/None] : "))
  (IF (OR (= ISN "O")(= ISN "o")(= ISN ""))
   (PROGN (SETQ ISN1 "02″))
   (PROGN (IF (OR (= ISN "T")(= ISN "t"))
           (PROGN (SETQ ISN1 "0002″))
           (PROGN (IF (OR (= ISN "N")(= ISN "n"))
                    (PROGN (SETQ ISN1 "002″))
                    (PROGN (PROGN "nText input error … "))
                  )
           )
          )
   )
  )
 (IF (< D2 D1)
  (PROGN
   (IF (= ISN1 "0002″)
    (PROGN (IF (<= D1 FL:112)
            (PROGN (SETQ ISN1 "002″)
            )
            (PROGN
             (IF (<= D1 FL:123)
              (PROGN (FIRE2))
              (PROGN (FIRE3))
             )
            )
           )
    )
    (PROGN (IF (<= D1 FL:18)
            (PROGN (SETQ ISN1 "002″))
            (PROGN
             (IF (<= D1 FL:115)
              (PROGN (FIRE1))
              (PROGN (FIRE))
             )
            )
           )
    )
   )
  )
  (PROGN
   (IF (= ISN1 "0002″)
    (PROGN (IF (<= D2 FL:112)
            (PROGN (SETQ ISN1 "002″))
            (PROGN
             (IF (<= D2 FL:123)
              (PROGN (FIRE2))
              (PROGN (FIRE3))
             )
            )
           )
    )
    (PROGN (IF (<= D2 FL:18)
            (PROGN (SETQ ISN1 "002″))
            (PROGN
             (IF (<= D2 FL:115)
              (PROGN (FIRE1))
              (PROGN (FIRE))
             )
            )
           )
    )
   )
  )
 )
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
이렇게 쓰고있는데 FF 라는 명령어를 쓰고
제가 값을 100 을주면 자꾸 3배가 된 값으로 나오더라구요…
제가 값을 100을 주면 제가 준 값 100 그대로 나오게 할 수는 없는건가요?ㅠ

관련자료

댓글 2 / 1 페이지

수야12님의 댓글

FTH (* FL:1 2.5)   의심이 드는 부분입니다 문자크기가 FL:1이 무언지 모르지만 그값에 2.5배 네요 

이렇게 변수 추적이 어렵게 변수명을 정하면 나중에 본인이 수정할때도 힘들건데…  

루이비통닭님의 댓글

ㅜㅜ 1로 바꿔서 해봤지만 안되고, 그냥 모든 FL:1 1로 다 바꾸면 되긴되는데

원래는 선과 선 사이에 F 가써지고 //// 이렇게 4개가써져야하는데 F가 사라지고 ////가 원래 글자자리로 좀 옮겨지며 0이라는 글자가 생기네요 ㅠ
전체 6,913 / 8 페이지
번호
제목
이름
알림 0