비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 173855
다음
진행 중
뜨둥이
뜨둥이Lv.0
등록일: 2022-10-182022-10-18T16:49:21+09:00 2022-10-18T16:49:21+09:00카테고리: AutoCAD & CADian

ucs로 원점 변경 후 중심선 리습 사용시 중심에 생기는게 아니라 다른 곳에 생겨요.

ucs로 원점 변경 후 중심선 리습 사용시 중심에 생기는게 아니라 다른 곳에 생겨요.

중심선 리습 2가지 사용중입니다.

ucs로 원점을 이동시키면 리습 둘 다 중심선이 다른곳에 생겨버려요.

어떻게 해결하죠..??

 

 

 

중심선 리습

;************************************
; Program : EE
; Wall Center Lines
; MODIFY Lee_Hoyoung
; 2003/07/21
;*************************************
; 벽체의 중심선을 작성하는 프로그램
;*************************************
;* 시스템변수의 현재값을 대피시킬 전역변수(list 형태)
(setq #ENV nil)

;* 사용할 시스템 변수의 현재값을 대피시킨다.
;* 해당 시스템 변수의 값을 설정한다
(defun push-env()
(setq #ENV (list (getvar “BLIPMODE”)
(getvar “CMDECHO”)
(getvar “EXPERT”)
(getvar “OSMODE”)
)
)
(setvar “BLIPMODE” 0)
(setvar “CMDECHO” 0)
(setvar “EXPERT” 1)
(setvar “OSMODE” 0)
) ;of defun

;* 대피시켜둔 시스템 변수의 값을 복구시킨다.
(defun pop-env()
(setvar “BLIPMODE” (car #ENV))
(setvar “CMDECHO” (cadr #ENV))
(setvar “EXPERT” (caddr #ENV))
(setvar “OSMODE” (cadddr #ENV))
) ;of defun
;;********************************
(defun C:EE(/
l1 l2 dnum l1s l1e l2s l2e dst1
dst2 temp angs ange dt1 dt2 oldc count
dls dle
)

(defun SETERR(s)
(if (/= s “Function cancelled”)
(princ (strcat “nError: ” s))
); of If
(setq *error* oer seterr nil)
(princ)
); of SETERR
(setq oer *error* *error* seterr)
(SETQ QLAYER (GETVAR “CLAYER”))
(push-env)
(COMMAND “-LAYER” “M” “1” “C” “1” “” “S” “” “”)
;;;;벽체의 중심선을 작성하려면 레이어명을 “center” 로 칼라는 “1”로 변경
;;;example;;;(command “-layer” “m” “center” “c” “1” “” “s” “” “” )
(setq l1 (entget (car (entsel “n첫번째선을 선택하시오: “))))
(setq l2 (entget (car (entsel “n두번째선을 선택하시오: “))))
(setq dnum 2)
(setq l1s (cdr (assoc 10 l1)))
(setq l1e (cdr (assoc 11 l1)))
(setq l2s (cdr (assoc 10 l2)))
(setq l2e (cdr (assoc 11 l2)))
(setq dst1 (distance l1s l2s))
(setq dst2 (distance l1s l2e))
(if (< dst2 dst1)
(progn
(setq temp l2s)
(setq l2s l2e)
(setq l2e temp)
)
)

(setq angs (angle l1s l2s))
(setq ange (angle l1e l2e))

(setq dst1 (distance l1s l2s))
(setq dst2 (distance l1e l2e))

(setq dt1 (/ dst1 dnum))
(setq dt2 (/ dst2 dnum))

(setq oldc (getvar “CECOLOR”))
;(setvar “CECOLOR” “RED”)

(setq count 1)
(repeat (1- dnum)
(setq dls (polar l1s angs (* count dt1)))
(setq dle (polar l1e ange (* count dt2)))
(command “LINE” dls dle “”)
(setq count (1+ count))
) ;of repeat

(setvar “CECOLOR” oldc)
(SETVAR “CLAYER” QLAYER)
(pop-env)
(setq *error* oer seterr nil)
(prin1)

) ;of defun
(c:wc)

 


 

;;=====================================================================
; 중심선 그리기
; * 원 또는 아크의 중심선 그리기
; * 사각형(폴리라인 구성)의 중심선 그리기
;
; Modify : – 중심선 연장 길이 설정 기능 추가 by nadau (2009.08.03)
;

(defun c:ccc(/ os ss k ent elist plist VtxList cenp rad po1 po2 po3 po4 dam ext la cenx ceny dix diy plusc plusx plusy paa)

(setvar “cmdecho” 0)
(setq os (getvar “osmode”) ) ; Current Osnap Setting Save
(prompt “n ** Draw Center Line for Circle or Arc or Rectangle(Polyline) ** n”)

(setq ss (ssget ‘((0 . “circle,arc,LWPOLYLINE”))))

(if (/= ss nil) (progn

(setq paa (getint “nInput length to extend the center line <10>: ” ))
(if (= paa nil) (setq paa 10))
(if (and (>= paa 0) (<= paa 100) ) (progn

(setq k 0)
(setvar “osmode” 0)
(command “undo” “be”)

(repeat (sslength ss)
(setq ent (ssname ss k))
(setq elist (entget ent))

(if (/= (cdr (assoc 0 elist)) “LWPOLYLINE”) (progn

(setq cenp (cdr (assoc 10 elist)))
(setq rad (cdr (assoc 40 elist)))
(setq dam (* 2 rad)
plusc (* (/ dam 2) (/ paa 100.0) )
ext (+ plusc rad)
); end setq

(setq po1 (polar cenp pi ext)
po2 (polar cenp 0 ext)
po3 (polar cenp (/ pi 2) ext)
po4 (polar cenp (+ (/ pi 2) pi) ext)
); end setq

); end progn

(progn
(setq VtxList (GetPolyVtx elist)
plist (getxy VtxList)
cenx (/ (+ xmin xmax) 2)
ceny (/ (+ ymin ymax) 2)
dix (/ (- xmax xmin) 2)
diy (/ (- ymax ymin) 2)
cen (list cenx ceny)
); end setq
(setq plusx (* dix (/ paa 100.0))
plusy (* diy (/ paa 100.0)))
(setq po1 (polar cen pi (+ dix plusx))
po2 (polar cen 0 (+ dix plusx))
po3 (polar cen (+ (/ pi 2) pi) (+ diy plusy))
po4 (polar cen (/ pi 2) (+ diy plusy)))
); end progn

); end if

(DrawCenterLine po1 po2 po3 po4)
(setq k (+ 1 k))
);repeat

(command “undo” “e”)
(setvar “osmode” os)
); end progn

(progn (prompt “n입력 가능 영역은 [0 ~ 100]입니다.n”)
);end progn
); end if
); end progn
); end if
(princ)
) ;defun end

;
; [[[ SubRoutine ]]]

(defun DrawCenterLine(p1 p2 p3 p4 / cla)
(setq cla (getvar “clayer”)) ; Current Layer Setting Save
(command “layer” “s” “1” “”) ; <-중심선 레이어로 일시적 변경 (이름 변경 필요)
(command “line” p1 p2 “”)
(command “line” p3 p4 “”)
(setvar “clayer” cla) ; 기억했던 레이어로 되돌림
)

(defun getxy(vtxlist) ; 피라인의각 포인트를 좌표추출
(setq p1 (car vtxlist)
p2 (cadr vtxlist)
p3 (caddr vtxlist)
p4 (cadddr vtxlist))
(setq 1x (car p1) 1y (cadr p1)
2x (car p2) 2y (cadr p2)
3x (car p3) 3y (cadr p3)
4x (car p4) 4y (cadr p4))
(setq xmax (max 1x 2x 3x 4x)
xmin (min 1x 2x 3x 4x))
(setq ymax (max 1y 2y 3y 4y)
ymin (min 1y 2y 3y 4y))
(setq pa (list xmin ymin) ; 왼쪽 하단점
pb (list xmax ymin) ; 오른쪽 하단점
pc (list xmin ymax) ; 왼쪽 상단
pd (list xmax ymax)) ; 왼쪽 상단
)

(defun GetPolyVtx(EntList)
(setq VtxList ‘())
(foreach x EntList
(if (= (car x) 10)
(setq VtxList (append VtxList (list (cdr x))))
)
) VtxList
)

;;
;; [[[ End SubRoutine ]]]

 

 

 

 

리습원점이동중심선리습
  • 0
  • 1 1 답변
  • 209 조회
공유
  • Facebook

    관련 있는 질문들

    • 캐드에서 복사해서 방향 옮길때 다른방향으로 가요.
    • 캐드에서 복사해서 방향 옮길때 다른방향으로 가요.
    • FAQ 51을 참조 하라는데 FAQ가 어디에 있나요??
    • jsk.shx 파일 받을 부탁드립니다 ㅠ

    답변을 남겨주세요
    응답 취소

    답변을 등록하기 위해서는 로그인이 필요합니다.

    비밀번호를 잊으셨나요?

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

    1 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 탭누리 Lv.9
      2022-10-19T10:14:34+09:00답변 등록 답변 등록 일시 2022-10-19 10:14 am

      wcs 좌표를 ucs 좌표로 변경해서 작도를 해주셔야 합니다.

      위의 코드에서

      (command “line” p1 p2 “”)
      (command “line” p3 p4 “”)

      의 p1, p2, p3, p4는 wcs 위치 값이므로

      ucs 가 적용된 상태에서는 trans 리습 함수를 사용해야 합니다.

      (command “line” (trans p1 0 1) (trans p2 0 1) “”)
      (command “line” (trans p3 0 1) (trans p4 0 1) “”)

      관련 기술 문서는 아래를 참고해 주세요.

      http://docs.autodesk.com/ACD/2013/ENU/index.html?url=files/GUID-1A316343-0B68-4DBE-8F49-B4D601CB8FCC.htm,topicNumber=d30e633480

       

      • 0
      • 댓글 달기
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    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

    링크 삽입/편집

    대상 URL을 입력하세요

    또는 기존의 콘텐츠에 링크

      검색어가 지정되지 않았습니다. 최근 항목 표시 검색하거나 위와 아래 화살키를 이용하여 항목을 선택하세요.