비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 108125
다음
진행 중
Lv.0
등록일: 2017-03-162017-03-16T11:04:31+09:00 2017-03-16T11:04:31+09:00카테고리: AutoCAD & CADian

안녕하세요 리습 좀 도와 주십시오 ㅜ

안녕하세요 리습 초보입니다. 선이나 호 등 시작점에서 시작해 원하는 길이만큼의 위치에서 끊어주는
기능의 리습을 제가 하나 가지고 있습니다. 이 리습에 대해 간략히 설명드리면 첨에 끊어야할 선 이나 호를 선택하면 전체길이가 확인이 되고 그다음 끊을 길이를 입력하면 끊을 길이만큼의 위치에서 끊어주는(break) 기능을 하는 리습입니다. 그리고 계속 연속적으로 자기가 원하는 길이를 입력하면 연속 작업도 가능하구요.. 하지만 제가 지금  Autocad 2016 버전을 사용중인데 이 리습이 명령어 실행 및 끊으야할 선 선택과 전체길이 확인까지만 실행이 되고 그다음 단계 동작인 끊어야할 길이를 입력하면 그 포인트가 
잡혀야 하는데 잡히지 않습니다. 혹시나 리습언어가 잘못 된건가 싶어 확인차 2010 버전에 적용해보니 아무 문제없이 동작이 됩니다. 그래서 제 판단으로는 리습언어 문제 보다 버전 차이에서 발생하는 문제라고 판단했습니다. 저는 지금 2016버전을 사용 하는지라 2016 버전에서 이 리습을 꼭 사용 하고 싶습니다.
혹시 이와 같이 비슷한 리습을 가지고 계신분이나.. 아님 제 문제를 해결해 주실 고수님들의 도움을 간절히 바랍니다. 위 리습 언어는 아래와 같으니 수정이 가능하다면 수정 부탁드립니다. ㅜㅡ
긴글 읽어 주셔서 감사 합니다.

(vl-load-com)
(defun c:bbb (/ *error* AT:GetSel AT:DrawX _getDist ent pnt cmd undo total add dist break)
  (defun *error* (msg)
    (and cmd (setvar ‘CMDECHO cmd))
    (and *AcadDoc* (vla-endundomark *AcadDoc*))
    (if (and msg (not (wcmatch (strcase msg) “*BREAK*,*CANCEL*,*QUIT*,”)))
      (princ (strcat “nError: ” msg))
    )
  )

  (defun AT:GetSel (meth msg fnc / ent)
    (setvar ‘ERRNO 0)
    (while
      (progn (setq ent (meth (cond (msg)
                                   (“nSelect object: “)
                             )
                       )
             )
             (cond ((eq (getvar ‘ERRNO) 7) (princ “nMissed, try again.”))
                   ((eq (type (car ent)) ‘ENAME)
                    (if (and fnc (not (fnc ent)))
                      (princ “nInvalid object!”)
                    )
                   )
             )
      )
    )
    ent
  )


  (defun _getDist (total point / dist)
    (and undo (initget “Undo”))
    (cond ((not (setq dist (getdist (AT:DrawX point 4)
                                    (strcat
                                      “nDistance at which to break curve (Total= “
                                      (rtos total)
                                      (if undo
                                        “) [Undo]: “
                                        “): “
                                      )
                                    )
                           )
                )
           )
           nil
          )
          ((eq dist “Undo”) dist)
          ((not (< 0. dist total))
           (princ (strcat “nValue must be between 0.0 and and ” (rtos total) “!”))
           (_getDist total point)
          )
          (dist)
    )
  )


  (vla-startundomark
    (cond (*AcadDoc*)
          ((setq *AcadDoc* (vla-get-activedocument (vlax-get-acad-object))))
    )
  )



  (if (setq ent (AT:GetSel
                  entsel
                  “nSelect curve to break: “
                  (lambda (x)
                    (and (wcmatch (cdr (assoc 0 (entget (car x))))
                                  “ARC,LINE,*POLYLINE,SPLINE”
                         )
                         (not (vlax-curve-isClosed (car x)))
                    )
                  )
                )
      )
    (progn
      (setq pnt (trans (cadr ent) 1 0)
            ent (car ent)
            cmd (getvar ‘CMDECHO)
      )
      (setvar ‘CMDECHO 0)
      (while
        (setq
          dist (_getDist (setq total (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent)))
                         (setq pnt
                                (trans (if (> (vlax-curve-getParamAtPoint
                                                ent
                                                (vlax-curve-getClosestPointToProjection ent pnt ‘(0. 0. 1.))
                                              )
                                              (vlax-curve-getParamAtDist ent (/ total 2.))
                                           )
                                         (progn (setq add total) (vlax-curve-getEndPoint ent))
                                         (progn (setq add 0.) (vlax-curve-getStartPoint ent))
                                       )
                                       0
                                       1
                                )
                         )
               )
        )
         (if (eq dist “Undo”)
           (progn (vl-cmdf “_.U”)
                  (setq ent  (caar undo)
                        pnt  (cadar undo)
                        undo (cdr undo)
                  )
           )
           (progn
             (setq break (trans (vlax-curve-getPointAtDist ent (abs (- add dist))) 0 1))
             (vl-cmdf “_.break” ent “_F” “_non” break “_non” break)
             (setq undo (cons (list ent pnt) undo))
             (and (zerop add) (setq ent (entlast)))
           )
         )
         (redraw)
         (foreach p (vl-remove (last undo) undo) (AT:DrawX (cadr p) 1))
      )
    )
  )
  (*error* nil)
  (princ)
)

  • 0
  • 3 3 답변
  • 20 조회
공유
  • Facebook

    관련 있는 질문들

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

    3 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2017-03-17T18:00:59+09:00답변 등록 답변 등록 일시 2017-03-17 6:00 pm

      안녕하세요 상큼메론님 먼저 제글에 관심가져 주셔서 너무 감사합니다.^^ 사실 많은분들께 여쭤봤는데
      딱히 시원한 해답을 찾지 못하고 있었습니다. 댓글 달아주셔서 감사드리고 조언해 주신대로 한번 실행해 보겠습니다. 다시한번 감사드립니다^^*

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2017-03-16T13:01:41+09:00답변 등록 답변 등록 일시 2017-03-16 1:01 pm

      ㅎㅎ맘이 급한 나머지 글을 너무 붙여서 썻네요 ^^ 정리해 주셔서 감사합니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2017-03-16T11:42:30+09:00답변 등록 답변 등록 일시 2017-03-16 11:42 am

      어우 글이 정말 읽기도 싫어지게 다닥다닥 붙어있네요 ^^a
      난독증 유발이 있는 윗글을 읽기 힘드신분은 아래 참조…

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

      안녕하세요 리습 초보입니다.

      선이나 호 등 시작점에서 시작해 원하는 길이만큼의 위치에서 끊어주는
      기능의 리습을 제가 하나 가지고 있습니다.

      이 리습에 대해 간략히 설명드리면 첨에 끊어야할 선 이나 호를 선택하면 전체길이가 확인이 되고 그다음 끊을 길이를 입력하면 끊을 길이만큼의 위치에서 끊어주는(break) 기능을 하는 리습입니다.
      그리고 계속 연속적으로 자기가 원하는 길이를 입력하면 연속 작업도 가능하구요..

      하지만 제가 지금 Autocad 2016 버전을 사용중인데
      이 리습이 명령어 실행 및 끊으야할 선 선택과 전체길이 확인까지만 실행이 되고
      그다음 단계 동작인 끊어야할 길이를 입력하면 그 포인트가 잡혀야 하는데 잡히지 않습니다.
      혹시나 리습언어가 잘못 된건가 싶어 확인차 2010 버전에 적용해보니 아무 문제없이 동작이 됩니다.

      그래서 제 판단으로는 리습언어 문제 보다 버전 차이에서 발생하는 문제라고 판단했습니다.
      저는 지금 2016버전을 사용 하는지라 2016 버전에서 이 리습을 꼭 사용 하고 싶습니다.

      혹시 이와 같이 비슷한 리습을 가지고 계신분이나..
      아님 제 문제를 해결해 주실 고수님들의 도움을 간절히 바랍니다.
      위 리습 언어는 아래와 같으니 수정이 가능하다면 수정 부탁드립니다. ㅜㅡ

      긴글 읽어 주셔서 감사 합니다.

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

      같은글 다른 느낌

      • 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