프로그램
캐드 분류

리습 문의 드립니다. 고수님들 한번 봐주세요~

컨텐츠 정보

  • 85 조회
  • 4 댓글
  • 0 추천
  • 0 비추천
  • 목록

본문

안녕하세요 질문 드립니다.
pdf 만들어주는 리습인데요..
ADPDF명령어로 2번(A3)선택후 -> 도면 쉬트 선택 -> 엔터 치면 해당폴더에
도면번호와 도면명을 인식해서 PDF파일로 만들어주는 리습입니다.
제가 하고싶은것은 도면명으로만 내보내게 하고싶습니다.
밑에있는 리습은 두가지를 인식해서 파일로 내보내는데
구지 파일명까지는 필요없어서요..
부탁드립니다.

간단히 말하면 ADPDF -> 2 -> 쉬트선택(다중) -> 도면번호로 PDF 저장
요래만 되면 정말 좋겠습니다.

;SELECT PDF만들기 A3용지
(defun c:ADPDF (/ )
  (setq plotn "DWG To PDF.pc3″)
  (setq plots "A3(PDF)_")
  (command "zoom" "e")
  (setvar "CMDECHO" 0)
  (SETQ PDN (Getvar "DWGPREFIX"))
  (setq stt "2″)
  (setq stt (strcase (getstring "n>>> 도면폼 style (a1 도면 = 1)/(a3 도면 = 2)" )))
  (cond
    ((or (= stt "1″) (= stt ""))
     (progn
       (setq sht_1 (cons 2 "A1″))
       (setq di_x 840.0)   ;전체박스
       (setq di_y 594.0)   ;전체박스
      
       (setq dp_x 100.0)    ;번호
       (setq dp_y 44.29)   ;번호
      
       (setq dk_x 100.0)   ;제목
       (setq dk_y 52.0)   ;제목
      
       (setq ang_1 0.615504)   ;전체박스
       (setq ang_2 2.72463)      ;도면번호
       (setq ang_3 2.66207)      ;제목
       (setq sc_1 2)
     )
    )
    ((= stt "2″)
     (progn
       (setq sht_1 (cons 2 "A3S"))
       (setq di_x 420.0)
       (setq di_y 297.0)
       (setq dp_x 54.96)
       (setq dp_y 26.06)
       (setq dk_x 54.96)
       (setq dk_y 35.19)
       (setq ang_1 0.615504)
       (setq ang_2 2.72463)  
       (setq ang_3 2.66207)  
       (setq sc_1 1)
     )
    )
  )
  ;;cond
  (setq bl1 (ssget (list (cons 0 "INSERT") sht_1))) ;선택적으로 내보내기
  ;(setq bl1 (ssget "x" (list (cons 0 "INSERT") sht_1))) ;전체 내보내기
  (setq nb (sslength bl1))
  (prompt "n==>출력물은 총 ")
  (prin1 nb)
  (prompt " 장 입니다")
  (setq an (getint "n==>출력을 실행하시겠습니까?"))
  (setq num 0)


  (repeat nb
    (setq ob1 (ssname bl1 num))
    (setq obj (entget ob1))
   
    (setq p1 (cdr (assoc 10 obj)))   ;박스 좌측하단 좌표값
    (setq scbox (cdr (assoc 41 obj)));도면블럭이름
    
    (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 di_la (sqrt (+ (expt (* dp_x scbox) 2) (expt (* dp_y scbox) 2)))) ;도면번호
    (setq p3 (polar p1 0 (* di_x scbox)))
    (setq p4 (polar p3 ang_2 di_la))                                      
   
    (setq di_lb (sqrt (+ (expt (* dk_x scbox) 2) (expt (* dk_y scbox) 2)))) ;제목
    (setq p5 (polar p1 0 (* di_x scbox)))                          
    (setq p6 (polar p5 1.5708 (* 80.29 scbox)))                          
    (setq p7 (polar p6 ang_3 di_lb))
   
    (setq bl2 (ssget "w" p4 p3))     ;도면번호
    (setq bl3 (ssget "w" p6 p7))     ;제목
   
    (if (null bl3)
      (progn
  (ALERT "선택할것이 없슴")
      )
      (progn
 (setq ob2 (ssname bl2 0))
 (setq ob3 (ssname bl3 0))
 (setq obj1 (entget ob2))
 (setq obj2 (entget ob3))
 (setq Pva1 (cdr (assoc 1 obj1)))
 (setq Pva2 (cdr (assoc 1 obj2)))
 (setq plt_f_na1 (strcat pva1 "-" pva2))
 (setq plt_f_na2 (strcat pdn plt_f_na1))
 (setq scbox (cdr (assoc 41 obj)));도면블럭이름
 (setq scbox_a3 (* scbox sc_1))
 (setq sc1 (strcat "1=" (rtos scbox_a3)))
        (command "plot" "y" "" plotn plots "m" "l" "n" "W" P1 P2 sc1 "c" "y" "CNA-A3.ctb" "y" "w" plt_f_na2 "n" "y")
      )
      )
 
    (setq num (1+ num))
  );repeat
  (princ num)
);defun SELECT PDF만들기 A3용지

관련자료

댓글 4 / 1 페이지

썬바리님의 댓글

정말정말 감사합니다. 일단 수정하신 리습파일로 로드해봤는데.. 선택할것이 없슴 이라고 뜹니다.. 문제는 잘은 모르지만 제생각에는 도면번호만 선택해서 파일을 만드는게 아니고 도면번호+도면명 을 인식해서 파일로 내보내려고하는데 도면명이라는 텍스트선택 구간에 텍스트가 없어서 선택할것이 없음이라고뜨는거 같아요…

썬바리님의 댓글

관심가져 주셔서 너무 감사해요.. 주말잘보내세요~~ 리습자체는 되기는 합니다. 문제는 도면명 위치가 제 도면 쉬트랑 맞지 않아서…(제 쉬트를 수정해서 맞추면되긴하겠지만) 혹시나 심심하실때 한번 증상한번 봐주세요.. 정말 다시한번더 감사합니다. https://blog.naver.com/mikilove79/222627895838

전체 6,983 / 1 페이지
번호
제목
이름

최근글


새댓글


알림 0