비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 112577
다음
featu
featuLv.0
등록일: 2020-09-232020-09-23T17:14:05+09:00 2020-09-23T17:14:05+09:00카테고리: AutoCAD & CADian

분할저장 리습 dsave리습 저장되는 도면번호 변경가능 할까요????

 

처음 사진처럼 도면 번호가 각각 나눠져있는 겨우에는 번호가 제대로 안나오더라고요

 혹시 두번째 사진처럼 도면 번호를 합쳐서 나타나게 할수있을까요???

이전에 사용하던 리습에서는 됬는데 지금 리습은 안서 이렇개 글을 씁니다 

————————————-지금 사용하는 dsav —————————————

; 아키모아 운영진 “행복한하루”

; http://cafe.daum.net/archimore

; 한파일안에 여러도면 찢기

; 2007.10.02. 

; 1차수정 2007.12.05 / 텍스트선택 “c” 로 변경 / 공백제거루틴변경 / 도면이름 2개이상일때 합쳐서만들기

(defun c:dsave(/ path os ent en minpt maxpt bn scal baseang p1 p2 p3 p4 dis1 dis2 dis3 dis4 ang1 ang2 ang3 ang4

  ss var tadd k en1 $p1 $p2 $p3 $p4 ss2 num svnum savename ss3 $$len $$k fname1 $$ed $$txt)

;->*error* start   

 (defun *error* (msg)(princ “error: “)(princ msg)

 (setvar “osmode” os) (if ent (redraw ent 4)) (command “ucs” “”)

 (princ))

;-<*error* end

 (prompt “n>> 한파일안에 여러도면 개별 저장하기..”)

 (vl-load-com)

 (setq path (getvar “dwgprefix”))

 (setq os (getvar “osmode”))

 (setq ent nil)

 (while (= ent nil) (setq ent (car (entsel “n블럭을 선택하세요. 한개만.”))))

 (setq en (cdr (assoc 0 (entget ent))))

 (if (= en “INSERT”)

  (progn

   (redraw ent 3)

   (setvar “osmode” 0)

   (vla-GetBoundingBox (vlax-ename->vla-object ent) ‘MinPt ‘MaxPt) 

   (setq MinPt (vlax-safearray->list MinPt)) 

   (setq MaxPt (vlax-safearray->list MaxPt))

   (command “zoom” minpt maxpt)

   (setq bn (cdr (assoc 2 (entget ent))))

   (setq scal (abs (cdr (assoc 41 (entget ent)))))

   (setq baseang (cdr (assoc 50 (entget ent)))) 

   (setq p1 (getpoint “n도곽안에 저장될 파일명인 text 구역지정:”)

         p2 (getcorner p1 ” ->다음점:”))

   (setq dis1 (/ (distance minpt p1) scal) ang1 (angle minpt p1))

   (setq dis2 (/ (distance minpt p2) scal) ang2 (angle minpt p2))

   (setq p3 (getpoint “n도면번호 text 구역지정-없으면 엔터:”))

   (if p3 

    (progn

     (setq p4 (getcorner p3 ” ->다음점:”))

     (setq dis3 (/ (distance minpt p3) scal) ang3 (angle minpt p3))

     (setq dis4 (/ (distance minpt p4) scal) ang4 (angle minpt p4))

    )

   )

   (prompt “n>> wblock으로 내보낼 sheet 선택:”)

   (command “zoom” “e”)

   (setq ss (ssget (list (cons 0 “insert”) (cons 2 bn) (cons 50 baseang))))

   (setq ss (@ss_new_lst_x ss))

   (if ss

    (progn

     (setq var (getint “n E-0<1> / T-0<2> / F-0<3> / MF-0<4> / EF-0<5> / NONE<엔터> :”))

     (cond ((= var 1) (setq tadd “E-0”))

           ((= var 2) (setq tadd “T-0”))

           ((= var 3) (setq tadd “F-0”))

           ((= var 4) (setq tadd “MF-0”))

           ((= var 5) (setq tadd “EF-0”))

           (t (setq tadd “”))

     );cond 

     (setq k 0)

     (repeat (sslength ss)

      (setq en1 (ssname ss k))

      (setq scal (abs (cdr (assoc 41 (entget en1))))) 

      (vla-GetBoundingBox (vlax-ename->vla-object en1) ‘MinPt ‘MaxPt) 

      (setq MinPt (vlax-safearray->list MinPt)) 

      (setq MaxPt (vlax-safearray->list MaxPt))

      (setq $p1 (polar minpt ang1 (* dis1 scal))) 

      (setq $p2 (polar minpt ang2 (* dis2 scal))) 

      (setq ss1 (ssget “c” $p1 $p2 (list (cons 0 “text,mtext”))))

      (if ss1 

       (progn

;—————————–선택텍스트 합치기 추가

       (setq $$len (sslength ss1))

       (setq $$k 0 fname1 “”)

       (if (> $$len 1)

        (progn

         (setq ss1 (@ss_new_lst_x ss1))

         (repeat (sslength ss1)

          (setq $$ed (entget (ssname ss1 $$k)))

          (setq $$txt (cdr (assoc 1 $$ed)))

          (setq fname1 (strcat fname1 $$txt))

          (setq $$k (1+ $$k))

         ) 

        );progn

        (setq fname1 (cdr (assoc 1 (entget (ssname ss1 0)))))

       );if

;—————————–

        (setq fname (@tspace-delete fname1))

        (if p3 

         (progn

          (setq $p3 (polar minpt ang3 (* dis3 scal))) 

          (setq $p4 (polar minpt ang4 (* dis4 scal)))

          (setq ss2 (ssget “c” $p3 $p4 (list (cons 0 “text,mtext”))))

          (setq num (@tspace-delete (cdr (assoc 1 (entget (ssname ss2 0))))))

         )

         (setq num “”)

        )

        (setq svnum 0)

        (setq savename (strcat path tadd num “” “(” fname “)” ))

        (while (findfile (strcat savename “.dwg”))

         (setq savename (strcat savename”_” (rtos (setq svnum (1+ svnum)) 2 0)))

        )

        (setq ss3 (ssget “w” minpt maxpt))

        (command “ZOOM” “W” minpt maxpt)

        (command “ucs” “m” minpt)

        (command “wblock” savename “” (list 0 0 0) ss3 “”)

        (command “oops”)

        (command “ucs” “”)

        (command “ZOOM” “P”)

       )

       (progn (command “line” minpt maxpt “”) (command “line” (list (car minpt) (cadr maxpt)) (list (car maxpt) (cadr minpt)) “”))

      ) 

      (setq k (1+ k))

     );repeat

;———————————————————————————–

    )

   )

  )

 )

(setvar “osmode” os)

(princ)

);defun

(defun @tspace-delete(txt / k newascii @1 ascii_list) ; 공백제거

 (setq ascii_list (vl-string->list txt))

 (setq k 0 newascii ‘())

 (repeat (length ascii_list)

  (setq @1 (nth k ascii_list))

  (if (and (/= @1 32) (/= @1 92) (/= @1 47) (/= @1 58) (/= @1 63) (/= @1 60) (/= @1 62) (/= @1 34) (/= @1 42) (/= @1 124))  

   (setq newascii (append newascii (list @1))))

  (setq k (1+ k))

 )

 (setq newascii (vl-list->string newascii))

newascii

)

(defun @ss_new_lst_x (ss / ssn n ss-y1 en en1y ss-y2 ss-y3) ;선택정렬

   (setq ssn (sslength ss))

   (setq n 0)

   (setq ss-y1 ‘())

   (repeat ssn

       (setq en (ssname ss n))

       (setq en1y (list en (cadr (cdr (assoc 10 (entget en)) ) ) ))

       (setq ss-y1 (cons en1y ss-y1))

       (setq n (+ n 1))

   )

   (setq ss-y2 (vl-sort ss-y1 ‘(lambda (e1 e2) (> (cadr e1) (cadr e2))))  )

   (setq n 0 ss-y3 (ssadd))

   (repeat ssn

      (setq ss-y3 (ssadd (car (nth n ss-y2)) ss-y3))

      (setq n (+ n 1))

   )

ss-y3

)

——————————– 이전에 사용하던 dsave———————————-

; 아키모아 운영진 “행복한하루”

; http://cafe.daum.net/archimore

; 한파일안에 여러도면 찢기

; 2008. 07. 09 LT 용

; 1차수정 2007.12.05 / 텍스트선택 “c” 로 변경 / 공백제거루틴변경 / 도면이름 2개이상일때 합쳐서만들기

(defun c:dsave1(/ path os ent en minpt maxpt bn scal baseang p1 p2 p3 p4 dis1 dis2 dis3 dis4 ang1 ang2 ang3 ang4

  ss var tadd k en1 $p1 $p2 $p3 $p4 ss2 num svnum savename ss3 $$len $$k fname1 $$ed $$txt numname1)

;->*error* start   

 (defun *error* (msg)(princ “error: “)(princ msg)

 (setvar “osmode” os) (if ent (redraw ent 4)) (command “ucs” “”)

 (princ))

;-<*error* end

 (prompt “n>> 한파일안에 여러도면 개별 저장하기..”)

 (vl-load-com)

 (setq path (getvar “dwgprefix”))

 (setq os (getvar “osmode”))

 (setq ent nil)

 (while (= ent nil) (setq ent (car (entsel “n블럭을 선택하세요. 한개만.”))))

 (setq en (cdr (assoc 0 (entget ent))))

 (if (= en “INSERT”)

  (progn

   (redraw ent 3)

   (setq MinPt (getpoint “nSHEET 의 좌하단점 :”))

   (setq MaxPt (getcorner MinPt “nSHEET 의 우상단점 :”))

   (setvar “osmode” 0)

   (command “zoom” minpt maxpt)

   (setq bn (cdr (assoc 2 (entget ent))))

   (setq scal (abs (cdr (assoc 41 (entget ent)))))

   (setq baseang (cdr (assoc 50 (entget ent)))) 

   (setq p1 (getpoint “n도곽안에 저장될 파일명인 text 구역지정:”)

         p2 (getcorner p1 ” ->다음점:”))

   (setq dis1 (/ (distance minpt p1) scal) ang1 (angle minpt p1))

   (setq dis2 (/ (distance minpt p2) scal) ang2 (angle minpt p2))

   (setq p3 (getpoint “n도면번호 text 구역지정-없으면 엔터:”))

   (if p3 

    (progn

     (setq p4 (getcorner p3 ” ->다음점:”))

     (setq dis3 (/ (distance minpt p3) scal) ang3 (angle minpt p3))

     (setq dis4 (/ (distance minpt p4) scal) ang4 (angle minpt p4))

    )

   )

   (prompt “n>> wblock으로 내보낼 sheet 선택:”)

   (command “zoom” “A”)

   (setq ss (ssget (list (cons 0 “insert”) (cons 2 bn) (cons 50 baseang))))

   (setq ss (@ss_new_lst ss))

   (if ss

    (progn

     (setq var (getint “n A-<1> / S-<2> / E-<3> / EF-<4> / M-<5> / MF-<6> / NONE<엔터> :”))

     (cond ((= var 1) (setq tadd “A-“))

           ((= var 2) (setq tadd “S-“))

           ((= var 3) (setq tadd “E-“))

           ((= var 4) (setq tadd “EF-“))

           ((= var 5) (setq tadd “M-“))

           ((= var 6) (setq tadd “MF-“))

           (t (setq tadd “”))

     );cond 

     (setq k 0)

     (repeat (sslength ss)

      (setq en1 (ssname ss k))

      (setq scal (abs (cdr (assoc 41 (entget en1)))))

      (setq MinPt (cdr (assoc 10 (entget en1))))

      (setq MaxPt (list (+ (* scal 841) (car MinPt)) (+ (* scal 594) (cadr MinPt))))

      (setq $p1 (polar minpt ang1 (* dis1 scal))) 

      (setq $p2 (polar minpt ang2 (* dis2 scal))) 

      (setq ss1 (ssget “c” $p1 $p2 (list (cons 0 “text,mtext”))))

      (if ss1 

       (progn

;—————————–선택텍스트 합치기 추가

       (setq $$len (sslength ss1))

       (setq $$k 0 fname1 “”)

       (if (> $$len 1)

        (progn

         (setq ss1 (@ss_new_lst ss1))

         (repeat (sslength ss1)

          (setq $$ed (entget (ssname ss1 $$k)))

          (setq $$txt (cdr (assoc 1 $$ed)))

          (setq fname1 (strcat fname1 $$txt))

          (setq $$k (1+ $$k))

         ) 

        );progn

        (setq fname1 (cdr (assoc 1 (entget (ssname ss1 0)))))

       );if

;—————————–

        (setq fname (@tspace-delete fname1))

        (if p3 

         (progn

          (setq $p3 (polar minpt ang3 (* dis3 scal))) 

          (setq $p4 (polar minpt ang4 (* dis4 scal)))

          (setq ss2 (ssget “c” $p3 $p4 (list (cons 0 “text,mtext”))))

;—————————– 종이한장님 추가요청->도면번호 합치기추가

          (setq ss2 (@ss_new_lst ss2))

          (setq $$k 0 numname1 “”)

          (repeat (sslength ss2)

           (setq $$ed (entget (ssname ss2 $$k)))

           (setq $$txt (cdr (assoc 1 $$ed)))

           (setq numname1 (strcat numname1 $$txt))

           (setq $$k (1+ $$k))

          ) 

;—————————–

          (setq num (@tspace-delete numname1))

         )

         (setq num “”)

        )

        (setq svnum 0)

        (setq savename (strcat path tadd num “(“fname”)”))

        (while (findfile (strcat savename “.dwg”))

         (setq savename (strcat savename”_” (rtos (setq svnum (1+ svnum)) 2 0)))

        )

        (setq ss3 (ssget “w” minpt maxpt))

        (command “ucs” “m” minpt)

        (command “wblock” savename “” (list 0 0 0) ss3 “”)

        (command “oops”)

        (command “ucs” “”)

       )

       (progn (command “line” minpt maxpt “”) (command “line” (list (car minpt) (cadr maxpt)) (list (car maxpt) (cadr minpt)) “”))

      ) 

      (setq k (1+ k))

     );repeat

;———————————————————————————–

    )

   )

  )

 )

(setvar “osmode” os)

(princ)

);defun

 

(defun @tspace-delete(txt / k newascii @1 ascii_list) ; 공백제거

 (setq ascii_list (vl-string->list txt))

 (setq k 0 newascii ‘())

 (repeat (length ascii_list)

  (setq @1 (nth k ascii_list))

  (if (and (/= @1 32) (/= @1 92) (/= @1 47) (/= @1 58) (/= @1 63) (/= @1 60) (/= @1 62) (/= @1 34) (/= @1 42) (/= @1 124))  

   (setq newascii (append newascii (list @1))))

  (setq k (1+ k))

 )

 (setq newascii (vl-list->string newascii))

newascii

)

 

(defun @ss_new_lst (ss / ssnew ssn n en dx dy ss-x1 ss-y1 ss-x2 ss-y2 ss-x3 ss-y3)

   (setq ssn (sslength ss))

   (setq n 0)

   (setq ss-x1 ‘()  ss-y1 ‘())

   (repeat ssn

       (setq en (ssname ss n))

       (setq en1x (list en (car (cdr (assoc 10 (entget en)) ) ) ))

       (setq en1y (list en (cadr (cdr (assoc 10 (entget en)) ) ) ))

       (setq ss-x1 (cons en1x ss-x1))

       (setq ss-y1 (cons en1y ss-y1))

       (setq n (+ n 1))

   )

   (setq ss-x2 (vl-sort ss-x1 ‘(lambda (e1 e2) (< (cadr e1) (cadr e2))))  )

   (setq ss-y2 (vl-sort ss-y1 ‘(lambda (e1 e2) (> (cadr e1) (cadr e2))))  )

;;;선택방향설정기준

   (setq dx (- (cadr (nth (- ssn 1) ss-x2))  (cadr (nth 0 ss-x2)))   )

   (setq dy (- (cadr (nth 0 ss-y2))   (cadr (nth (- ssn 1) ss-y2)))  )

;;;새로운 선택세트 만들기

   (setq n 0 ss-x3 (ssadd) ss-y3 (ssadd))

   (repeat ssn

      (setq ss-x3 (ssadd (car (nth n ss-x2)) ss-x3))

      (setq ss-y3 (ssadd (car (nth n ss-y2)) ss-y3))

      (setq n (+ n 1))

      (command “zoom” “A”)

   )

;;;선택방향설정

   (if (>= (- dx dy) 0) (setq ssnew ss-x3) (setq ssnew ss-y3)  )

) 

  • 0
  • 207 조회
공유
  • Facebook

    관련 있는 질문들

    • 오토캐드 2016 맞춤법 검사기 끄는 방법 아시나요
    • 캐드에서 여러도면을 한번에 배치출력 할 수 있는 방법이 있나요
    • step파일, iges 파일을 열어서 볼 수 있는 방법이 있을까요?
    • 캐디안으로 도면을 열때 한글이 ???로 표시되는 문제

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved