비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 94364
다음
진행 중
Lv.0
등록일: 2012-02-152012-02-15T17:05:02+09:00 2012-02-15T17:05:02+09:00카테고리: AutoCAD & CADian

aw.lisp 수정부탁드립니다

한번에 여러선이나 객체를 중심선 기준으로 현재의 레이어로 양쪽으로 offset 하는 명령어 인데
현재는 입력값이 200인 경우 중심선을 기준으로 양쪽으로 각각 200씩 offset되는데
100씩 offset 되게 수정 부탁 드립니다.


(vl-load-com)
(if (not cal) (arxload(findfile “geomcal.arx”)nil))
(vlax-remove-cmd “aw”)
(defun C:aw
       (/ *error* r2luprec getawdist
        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)
  )
  ;;
  (defun getawdist(ofsetmsg / return)
    (initget (+ 1 2 4 128))
    (if (setq return(getdist ofsetmsg))
      (cond
        ((=””return) return)
        ((numberp return) (prompt(strcat”n”(r2luprec return)))return)
        ((=(type return)’STR)
          (if (numberp(setq return(cal return)))
            (if (< 0 return)
              (progn(prompt(r2luprec return))return)
              (progn(prompt”nValue must be positive and nonzero.”)(getawdist ofsetmsg))
            )
            (progn(getawdist ofsetmsg))
          )
        )
        (T (getawdist ofsetmsg))
      )
      (getawdist ofsetmsg)
    )
  )
  ;;
  (if (=(setq ofsetdst(getvar”offsetdist”))-1.0) (setq ofsetdst(- ofsetdst)))
  (setq ofsetmsg(strcat”nSpecify offset distance <“(r2luprec ofsetdst)”>: “))
  (if (=””(setq offsetdist(getawdist ofsetmsg)))
    (setvar”offsetdist”ofsetdst)
    (setvar”offsetdist”offsetdist)
  )
  ;; 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(trans mPoint 0 1)) “_none”(trans leftpt 0 1)
          (list ename(trans mPoint 0 1)) “_none”(trans rigtpt 0 1) “”
        )
        (vlax-release-object *ename*)
      )
      ;;(command)
    )
  )
  (*error* nil)
)
(vlax-add-cmd “aw” ‘C:aw “aw” (+ acrx_cmd_Modal acrx_cmd_Redraw))
(princ)
 
 

  • 0
  • 1 1 답변
  • 26 조회
공유
  • Facebook

    관련 있는 질문들

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

    1 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. shilee97 Lv.0
      2017-11-23T16:51:24+09:00답변 등록 답변 등록 일시 2017-11-23 4:51 pm

      태은님.

      감사 감사 합니다
      • 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