비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 96569
다음
Lv.0
등록일: 2012-11-072012-11-07T14:02:47+09:00 2012-11-07T14:02:47+09:00카테고리: AutoCAD & CADian

한 점과 선에 접하는 원 그리는 리습인데요…

금형설계쪽이라 점과 선에 접하는 호를 그리는 경우가 종종 있어 리습을 만들어 봤는데요, 

마지막이 조금 아쉽네요. 도움 부탁 드립미다. 



교점은 vlisp에 함수가 있다고 하는데, 무식하게 수학공식이용. 내가봐도 무식하다.ㅋ ㅋ



혹~ 점과 직선에 접하는 호 그리는 다른 방법 있으시면 조언부탁요^^






;Circle touching line and point with radius

(defun c:crt ()

(setq pt1 (getpoint “Specify first point”))    첫 번째점

(setq radi (getreal “Enter radius”))    원 반경 입력

(setvar “osmode” 0)  

(setq l1 (entsel))       첫 번째 선 [접할 선 선택]

(setq pt2 (getpoint “Which side do you want to offset?”)) 첫번째 선 옵셋 방향

(command “offset” radi l1 pt2 “”)    첫번째 선 옵셋 [원 반경 만큼]

(setq l2 (entlast))      두 번째 선 [옵셋된 선]

(setq dxf1 (entget l2))

(setq x1 (car (cdr (assoc 10 dxf1))))   

(setq y1 (cadr (cdr (assoc 10 dxf1))))

(setq x2 (car (cdr (assoc 11 dxf1))))

(setq y2(cadr (cdr (assoc 11 dxf1))))

(setq v1 (/ (- y2 y1) (- x2 x1)))

(setq v2 (- y1 (* v1 x1)))

(command “circle” pt1 radi “”)    [1번 원] 첫번째 점을 중심으로 주어진 반경으로 원 그리기

(setq c1 (entlast))

(setq dxf2 (entget c1))

(setq a (car (cdr (assoc 10 dxf2))))

(setq b (cadr (cdr (assoc 10 dxf2))))

(setq r (cdr (assoc 40 dxf2)))

(setq v3 (- v2 b))

(setq  a1  (+ 1.0 (expt v1 2.0)))

(setq  b1 (* -2 (- a (* v1 v3))))

(setq c (+ (expt a 2.0) (expt v3 2.0) (* -1 (expt r 2.0))))

(setq x11 (/ (+ (* -1  b1) (sqrt (- (expt b1 2.0) (* 4.0 a1 c)))) (* 2.0 a1)))

(setq x22 (/ (- (* -1  b1) (sqrt (- (expt b1 2.0) (* 4.0 a1 c)))) (* 2.0 a1)))

(setq y11 (+ (* v1 x11) v2))

(setq y22 (+ (* v1 x22) v2))

(if (> (car pt2) (car pt1)) (setq pt3 ( if (= x11 (max x11 x22)) (list x11 y11) (list x22 y22)))

                                    (setq pt3 ( if (= x11 (min x11 x22)) (list x11 y11) (list x22 y22))))



  위의 잡다한 식은 첫 번째 원과 옵셋한 선의 교점을 직선 방정식과 원 방정식을 이용해서  

  이차방정식의 근을 구해 두 교점을 구한다는 내용입니다. 만다꼬 이랬을 꼬…ㅎㅎ



(command “circle” pt3 radi “”) 
[2번 원]  1번 원과 두 번째 선의 교점을 중심으로 주어진 반경의 원  그리기         

(setq c2 (entlast))

(command “erase” c1 l2 “”)  1번 원과 두 번째 선 지우고

(command “trim” l1 c2  (ssget “x” ‘((0 . “line”))) “”) 첫 번째 선과 2번 원, 모든 직선을 선택 트림할려구요!

 (setvar “osmode” (+ 1 32 128 2048))

(princ)

  )



————————————————————————–

그러니까 질문은요? ^^



1. 좀 더 효율적이고 스마트하게 하는 방법 조언부탁.



2. 마지막에 trim할 때 개체선택에서 ssget 부분인데요, 첫 번째 점 주위 반경 5mm안에 있는 

    개체를 선택하고 싶은데요, ssget에서 윈도우, 펜스를 사용 했는데 계속 오류가 뜨는거예요.

    고 걸 어케 해결해 주실 분. 

    (command “trim” l1 c2 [pt1 인근에 있는 객체] “”) 요렇게 요.  위의 주언진 변수를 이용해서 

    한번 더 손이 가지 않게 부탁드려봅니다. 

3. (setq x1 (car (cdr (assoc 10 dxf1)))) 여기서 x1좌표가 소수 두 자리까지만 입력 됩니다.
   왜 그럴까요? 소수 네 자리까지 입력 어케 하면 될까요?

  • 0
  • 55 조회
공유
  • Facebook

    관련 있는 질문들

    • jsk.shx 파일 받을 부탁드립니다 ㅠ
    • 오토캐드 마지막 화면으로 실행 안됨
    • 오토캐드 마지막 화면으로 실행 안됨
    • 도서관 도면 구합니다. !

    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