안녕하십니까 리습 선배님들
질문있어서 찾아왔습니다.
다름아니라 제가 width , progn, if문 등 구현하여 한글의 줄/칸 만드는것처럼 만드는것 까지 구현화를 성공하였는데
사진상으로는 잘 안보이지만 3×3으로 첫줄은 가로세로는 cyan색으로 구현화하였고 그 이후로는
다 빨간색으로 구현되게 짜보았습니다.
다만 1×1 칸을 제외한 나머지 칸들 cyan색 경계면 안쪽만 text화 하여 1 2 3 4 5 6 이런식으로 자동적으로 추가되게끔 구현화 시키고싶은데 도저히 엄두가 나질 않아.. 문의드려봅니다..
(defun c:HWPTEST()
(setq Tsnap
(getvar “osmode”)
)
(setvar “osmode” 0)
(setq pt1
(getpoint “좌측 하단 점을 선택하세요!” )
)
(princ “좌측 하단 점 : “) (princ pt1)
(princ “n”)
(princ “우측 상단 점을 선택하세요!”)
(setq pt2
(getpoint pt1)
)
(princ “우측 상단 점 : “) (princ pt2)
(princ “n”)
(setq nt1
(getint “사각형을 몇 줄으로 나누겠습니까? 숫자를 입력하세요.”)
)
(setq num1
(getint “사각형을 몇 칸으로 나누겠습니까? 숫자를 입력하세요.”)
)
(princ “사각형 등분 수 : “) (princ nt1) (princ “줄”)(princ ” X “) (princ num1) (princ “칸”)
(princ “n”)
(princ)
(setq pt3
(list (car pt2)
(cadr pt1)
)
)
(setq pt4
(list (car pt1)
(cadr pt2)
)
)
(setq x_width (/ (/ (- (car pt2) (car pt1))
num1)
15)
)
(princ “x_width = “) (princ x_width)
(if ( < x_width 10)
(progn
(alert “x_width 10보다 작습니다”)
(exit)
)
(princ “x_witdh 10보다 큽니다”)
)
(command “layer” “s” “la2” “”)
(command “pline” pt1 “w” x_width x_width pt3 pt2 pt4 “c”)
(setq nt3
(list (car pt1)
(/ (- (cadr pt2) (cadr pt1)) nt1)
)
)
(setq xy_width (/ x_width 8))
(setq nt5 0)
(setq nt2 (- nt1 1))
(command “layer” “s” “la3” “”)
(repeat nt2
(setq nt5 (+ nt5 1))
(setq nt4
(list (car pt1)
(+ (* (cadr nt3) nt5) (cadr pt1))
)
)
(setq nt6
(list (car pt2)
(cadr nt4)
)
)
(if ( = nt5 nt2)
(progn
(command “layer” “s” “la4” “”)
(command “pline” nt4 “w” xy_width xy_width nt6 “c”)
)
(progn
(command “layer” “s” “la1” “”)
(command “line” nt4 nt6 “”)
)
)
)
(setq num3
(list
(/ (- (car pt2) (car pt1)) num1)
(cadr pt1)
)
)
(setq num5 0)
(setq num2 (- num1 1))
(repeat num2
(setq num5 (+ num5 1))
(setq num4
(list (+ (* (car num3) num5) (car pt1))
(cadr pt1)
)
)
(setq num6
(list (car num4)
(cadr pt2)
)
)
(if ( = num5 1)
(progn
(command “layer” “s” “la4” “”)
(command “pline” num4 “w” xy_width xy_width num6 “c”)
)
(progn
(command “layer” “s” “la1” “”)
(command “line” num4 num6 “”)
)
)
)
(princ)
(setvar “osmode” Tsnap)
)