두 점사이에 블럭을 나열하는 리습입니다.
처음에 잭을 넣고 그다음에는 거리에 따라 블럭이 나열되는 리습이고
다른 리습을 참고해서 만들었는데
어느부분이 잘못된건지 잘 모르겠습니다…
(defun c:FFFF()
(setq osm (getvar “osmode”));onsnap 저장
(setq p0(getpoint “점1(시작점) : n”)) ;첫번째점
(setq p00(getpoint “점2(끝작점) : n”)) ;두번째점
(setvar “osmode” 0) ;onsnap 해제
(setq ang (angle p0 p00)) ;점 사이의 각도
(setq ang00 (angle p00 p0)) ;jack 삽입을 위한 반대각도
(setq p1(polar p0 ang 565)) ;단부 삽입점/버팀보 시작점
(command “-layer” “s” “djack” “”)
(command “-insert” “djack” p1 “1000” “1000” p0);잭 삽입
(setq dis(distance p1 p00)) ;버팀보 사이의 거리
(princ dis)
(while (> dis 0)
(setq t_ang (+ ang (/ pi 2))) ;블록 삽입을 위한 첫번째점에서90도 각도
(setq p3 (polar p1 t_ang 10000)) ;90도 각도내에서 10000떨어진 점// 거리는 의미 없음
(if(>= dis 9800)
(progn
(setq block “d10”)
(setq dis2 10000)
(command “-layer” “s” “D-10M” “”)
)
(if(and(< dis 10000)(>= dis 4800))
(progn
(setq block “d5”)
(setq dis2 5000)
(command “-layer” “s” “d-5M” “”)
)
(if(and(< dis 5000)(>= dis 3800))
(progn
(setq block “d4”)
(setq dis2 4000)
(command “-layer” “s” “d-4M” “”)
)
(if(and(< dis 4000)(>= dis 1800))
(progn
(setq block “d2”)
(setq dis2 2000)
(command “-layer” “s” “d-2M” “”)
)
(if(and(< dis 2000)(>= dis 800))
(progn
(setq block “d1”)
(setq dis2 2000)
(command “-layer” “s” “d-1M” “”)
)
(if(and(< dis 1000)(>= dis 800))
(progn
(setq block “BS-1M”)
(setq dis2 1000)
(command “-layer” “s” “BS-1M” “”)
)
(if(and(< dis 1000)(>= dis 600))
(progn
(setq block “d-7”)
(setq dis2 700)
(command “-layer” “s” “d-0.7m” “”)
)
(if(and(< dis 700)(>= dis 400))
(progn
(setq block “d-5”)
(setq dis2 500)
(command “-layer” “s” “d-0.5M” “”)
)
(if(and(< dis 400)(>= dis 280))
(progn
(setq block “d-3”)
(setq dis2 300)
(command “-layer” “s” “d-0.3M” “”)
)
(if(and(< dis 300)(>0))
(progn
(setq block “d-2”)
(setq dis2 50)
(command “-layer” “s” “d-0.2M” “”)
)
)
))))))))));남은거리 측정 후 블록 삽입. // dis2에 블록거리 지정
조건이 애매한데요 400~700 600~1000 ?? 두개조건에 다 포함 되네요 조건 중복이 많네요
조건이 중복되는걸 삭제했는데도 먹통이네요 ㅠ
현재 고캐드는 게시판 포기 상태이니 님 블로그에다 원하시는 상황이 적용된 간단한 도면 하고 블럭 올리시고 링크 한번 걸어 보실랍니까??