비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 109570
다음
진행 중
Lv.0
등록일: 2018-03-142018-03-14T20:21:19+09:00 2018-03-14T20:21:19+09:00카테고리: AutoCAD & CADian

양쪽으로 옵셋하는 리습 수정 부탁드립니다.


양쪽으로 옵셋하는 리습입니다.

현재는 offset distance 를 10 을 입력하면 양쪽으로 10m 씩 옵셋되는건데

이것을 10을 입력하면 양쪽으로 절반인 5m씩 옵셋되도록 고치고 싶은데

어디를 고쳐야 할까요?


(vl-load-com)
(vlax-remove-cmd “offsetm”)
(defun C:om
       (/ *error* r2luprec
        ofsetdst ofsetmsg offsetdist ss cmdecho
        nn ename *ename* sParam eParam sPoint longth dParam mParam dist
        ubound mPoint dirpnt ang leftpt rigtpt eline *eline* intsect ;;lists
       )
  (setvar”errno”0)
  (defun *error*(errmsg)
    (setvar”cmdecho”0)(command)(command)
    (if (and
          errmsg
          (not(member errmsg ‘(“Function cancelled” “quit / exit abort” “console break”)))
        )
      (progn(princ”nErrNo “)(princ(getvar”errno”))(princ”: “)(princ errmsg))
    )
    (if cmdecho(setvar”cmdecho”cmdecho))
    (if (and *ename*(not(vlax-object-released-p *ename*))) (vlax-release-object *ename*))
    (if (and *eline*(not(vlax-object-released-p *eline*))) (vlax-release-object *eline*))
    (if eline(entdel eline))
    (princ)
  )
  ;;
  (defun r2luprec(num / dimzin return)
    (if (=(type num)’STR) (setq num(atof num))(setq num(float num)))
    (if (numberp num)
      (progn
        (setq dimzin(getvar”dimzin”))
        (setvar “dimzin”0)
        (setq return(rtos num(getvar”lunits”)(getvar”luprec”)))
        (setvar “dimzin”dimzin)
    ) )
    return
    ;;(setq a -1.2)(r2luprec a)(r2luprec”a”)(r2luprec “2.3”)(r2luprec -2.3)
  )
  ;;
  (if (=(setq ofsetdst(getvar”offsetdist”))-1.0) (setq ofsetdst(- ofsetdst)))
  (setq ofsetmsg(strcat”nSpecify offset distance <“(r2luprec ofsetdst)”>: “))
  (initget (+ 2 4))
  (if (setq offsetdist(getdist ofsetmsg))
    (setq offsetdist(setvar”offsetdist”offsetdist))
    (setq offsetdist(setvar”offsetdist”ofsetdst))
  )
  ;; You can offset lines, arcs, circles, 2D polylines,
  ;; ellipses, elliptical arcs, xlines, rays, and planar splines.
  (if (setq ss(ssget”:L”
        ‘((-4 . “<OR”)
          (0 . “LINE”)(0 . “ARC”)(0 . “CIRCLE”)(0 . “LWPOLYLINE”)
          (-4 . “<AND”)(0 . “POLYLINE”)(-4 . “<NOT”)(-4 . “&=”)(70 . 8)(-4 . “NOT>”)(-4 . “AND>”)
          (0 . “ELLIPSE”);;(0 . “XLINE”)(0 . “RAY”)
          (-4 . “<AND”)(0 . “SPLINE”)(-4 . “&=”)(70 . 8)(-4 . “AND>”)
          (-4 . “OR>”)
         )
      ))
    ;; “&” Bitwise AND (integer groups only)
    ;;   The bitwise operators “&” and “&=” are valid only for integer-valued groups.
    ;;   The bitwise AND, “&”, is true if ((integer_group & filter) /= 0) that is,
    ;;   if any of the bits set in the mask are also set in the integer group.
    ;; “&=” Bitwise masked equals (integer groups only)
    ;;   The bitwise masked equals, “&=”, is true if ((integer_group & filter) = filter) that is,
    ;;   if all bits set in the mask are also set in the integer_group
    ;;   (other bits might be set in the integer_group but are not checked).
    (progn
      (setq cmdecho(getvar”cmdecho”))
      (setvar”cmdecho”0)
      (setq nn -1)
      (while (setq ename(ssname ss(setq nn(1+ nn))))
        (setq *ename*(vlax-ename->vla-object ename))
        (setq sParam(vlax-curve-getStartParam *ename*))
        (setq eParam(vlax-curve-getEndParam *ename*))
        (setq sPoint(vlax-curve-getStartPoint *ename*))
        (setq longth(vlax-curve-getDistAtParam *ename* eParam))
        ;;
        (setq dParam(*(- eParam sParam)0.0001))
        (setq mParam(+ sParam dParam))
        (setq dist(* longth 0.000001))
        ;;
        (setq ubound nil)
        (while (and
                 (/= ubound 2)
                 (setq mParam(+ mParam dParam))
                 (< mParam eParam)
               )
          (setq mPoint(vlax-curve-getPointAtParam *ename* mParam))
          (setq dirpnt(vlax-curve-getFirstDeriv *ename* mParam))
          (setq ang(angle(list 0.0 0.0)dirpnt))
          (setq leftpt(polar mPoint(+ ang(* pi 0.5))dist))
          (setq rigtpt(polar mPoint(- ang(* pi 0.5))dist))
          (entmake (list'(0 . “LINE”)(cons 10 leftpt)(cons 11 rigtpt)))
          (setq eline(entlast))
          (setq *eline*(vlax-ename->vla-object eline))
          (setq intsect(vlax-variant-value(vla-IntersectWith *ename* *eline* acExtendNone)))
          (setq ubound(vlax-safearray-get-u-bound intsect(vlax-safearray-get-dim intsect)))
          ;;(setq lists(vlax-safearray->list intsect))
          (cond
            ((< ubound 0) (setq dist(* dist 2.0)))
            ((< 2 ubound) (setq dist(* dist 0.9)))
          )
          (vlax-release-object *eline*)
          (entdel eline)
          (setq eline nil)
        )
        ;;
        (command
          “._offset”(getvar”offsetdist”)
          (list ename mPoint)”_none”(trans leftpt 0 1)
          (list ename mPoint)”_none”(trans rigtpt 0 1) “”
        )
        (vlax-release-object *ename*)
      )
      ;;(command)
    )
  )
  (*error* nil)
)
(vlax-add-cmd “offsetm” ‘C:offsetm “offsetm” (+ acrx_cmd_Modal acrx_cmd_Redraw))

  • 0
  • 2 2 답변
  • 27 조회
공유
  • Facebook

    관련 있는 질문들

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

    2 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 자유천지 Lv.8
      2018-03-14T22:12:33+09:00답변 등록 답변 등록 일시 2018-03-14 10:12 pm

      (setq leftpt(polar mPoint(+ ang(* pi 0.5))dist))
      (setq rigtpt(polar mPoint(- ang(* pi 0.5))dist))
      두줄을
      (setq leftpt(polar mPoint(+ ang(* pi 0.5)) (* 0.5 dist)))
       (setq rigtpt(polar mPoint(- ang(* pi 0.5))  (* 0.5 dist)))

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2018-03-16T20:31:38+09:00답변 등록 답변 등록 일시 2018-03-16 8:31 pm

      두줄을 바꿨는데 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