;SELECT 프린트하기 A3용지
(defun c:dwp (/ )
;(command “zoom” “e”)
(setvar “CMDECHO” 0)
(SETQ PDN (Getvar “DWGPREFIX”))
(setq pp “4”)
(setq ppl (strcase (getstring “n>>> (복사기=1) (SINDOH D400 Series PCL)=2) (SINDOH D400 Series PCL (칼라)=3) (A3 PDF만들기(600DPI).pc3=4” )))
(cond
((= ppl “1”)
(progn
(setq pp “복사기”)
(setq size “A3(297x420mm)”)
)
)
((= ppl “2”)
(progn
(setq pp “SINDOH D400 Series PCL”)
(setq size “A3”)
)
)
((= ppl “3”)
(progn
(setq pp “SINDOH D400 Series PCL (칼라)”)
(setq size “A3”)
)
)
((= ppl “4”)
(progn
(setq pp “A3 PDF만들기(600DPI).pc3”)
(setq size “A3”)
)
)
);cond
(setq stt “2”)
(setq stt (strcase (getstring “n>>> 출력 도면폼 style (A3–>A3 도원건축세로폼 = 1)/(a3–>a3 도원건축가로폼 = 2)/(a3 계획도면 = 3)” )))
(cond
((or (= stt “1”) (= stt “”))
(progn
(setq sht_1 (cons 2 “a3”))
(setq di_x 420.0)
(setq di_y 297.0)
(setq ang_1 0.615504)
(setq sc_1 1) ;a3–>a3로 출력 스케일
)
)
((= stt “2”)
(progn
(setq sht_1 (cons 2 “a31”))
(setq di_x 420.0)
(setq di_y 297.0)
(setq ang_1 0.615504)
(setq sc_1 1) ;a3–>a3로 출력 스케일
)
)
((= stt “3”)
(progn
(setq sht_1 (cons 2 “2014-CNA-계획-SHEET-A3”))
(setq di_x 420.0)
(setq di_y 297.0)
(setq ang_1 0.615504)
(setq sc_1 1)
)
)
((= stt “4”)
(progn
(setq sht_1 (cons 2 “2014-CNA-허가-SHEET-A3”))
(setq di_x 420.0)
(setq di_y 297.0)
(setq ang_1 0.615504)
(setq sc_1 1)
)
)
);cond
(setq bl1 (ssget (list (cons 0 “INSERT”) sht_1))) ;선택적으로 내보내기
(setq nb (sslength bl1))
(prompt “n==>출력물은 총 “)
(prin1 nb)
(prompt ” 장 입니다”)
(setq s_nu 1)
(setq s_nu (getint “n==>몇장을 출력하시겠습니까?”))
(setq num 0)
(repeat s_nu
(repeat nb
(setq ob1 (ssname bl1 num))
(setq obj (entget ob1))
(setq p1 (cdr (assoc 10 obj)))
(setq p1 (mapcar ‘+ p1 (list 50.0 50.0 0.0)));박스 좌측하단 좌표값
(setq scbox (cdr (assoc 41 obj)));도면블럭이름
(setq scbox_a3 (* scbox sc_1))
(setq di_l (sqrt (+ (expt (* di_x scbox) 2) (expt (* di_y scbox) 2)))) ;박스
(setq p2 (polar p1 ang_1 di_l))
(command “zoom” “w” p1 p2 )
(command “zoom” “s” “0.8xp” )
(setq sc1 (strcat “1=” (rtos scbox_a3)))
(COMMAND “-PLOT” “Y” “” pp size “M” “L” “N” “w” P1 P2 sc1 “C” “Y” “CNA-A3.ctb” “Y” “W” “N” “N” “Y” )
(setq num (1+ num))
);repeat
(setq num 0)
);repeat
(princ)
);defun
이제 제가 쓰고있던 자동프린터 리습입니다.
dwp 엔터 1번 엔터 1번엔터 1(장수)엔터 치면 프린터가 되는데요
회사를 옮기고 여기에 질문을 드려서 프린터 출력 까지는되는데
여기회사 기존 폼을 바꿀순없는 노릇이고요
여기서 쓰는 폼을 화면에 중앙으로 맞추고싶은데요..또는 위치조절이 가능할까요?
리습으로 프린터를 보내면 처부된 도면처럼 짤려서 나옵니다..해결좀 부탁드려요
(setq p1 (mapcar ‘- p1 (list 20.0 10.0 0.0))) 해보세요
감사합니다.. 관심 갖어주셔서요..
도면 쉬트 외부에 와꾸(420×297)가 없어서 그런지 쉬트의 왼쪽하단을 찍고 프린터를 해버리니
이런식으로 출력이 되버리는것 같아요..
블럭의 왼쪽 하단이 0,0 인데요..
위 리습에서 프린터의 기준점이 블럭의 좌측하단(0,0)보다 더 왼쪽과 더 아래로 내리고싶은거에요..
도면 폼, 좌측 하단이 0,0 이라면 -20, -10 을 기준점으로 하면 제대로 출력이 되지 않을까 싶어서요..
(setq p1 (cdr (assoc 10 obj))) <–요곳이 기준포인트라고 하시더라고요
요곳을 조정할수도있을까요?
죄송해요..그냥 넋두리라고 생각해주세요..
안되면 폼을 바꾸자고 이야기 해봐야죠..^^
아무튼 감사합니다.(__)
도곽의 삽입점이 좌하단일거 같은데 거기서 50,50 이동 해서 원점을 잡게 돼있습니다 아마도 이전 회사의 도곽이랑 모양새가 다른거 같은데