비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 112830
다음
진행 중
무니미니
무니미니Lv.0
등록일: 2021-01-252021-01-25T16:28:46+09:00 2021-01-25T16:28:46+09:00카테고리: AutoCAD & CADian

금형에 사용하는 육각볼트 단면 리습입니다. 조언부탁드립니다.

또한번의 문의 드립니다. 보유하고 있는 육각 볼트 단면 그리는 리습입니다.
하기는 명령어 실행 과정을 올린 것이고 적색부분에서 이상하게 에러가 발생합니다.
이전에는 사용하던 리습인데 뭔가 환경이 바뀐건지 통 모르겠습니다.
레이어는 0~9번 숫자레이어 존재하고 있습니다.
고수님들의 조언 부탁드립니다.

Command: SB


Layer “0” already exists.


Layer “1” already exists.


Layer “2” already exists.


▶ Bolt 규격은? M3/M4/M5/M6/M8/M10/M12/M14/M16/M20/M24 :[M8]
▶ 볼트가 작도될 시작점을 지정하시오 :
▶ 볼트가 체결될 끝점or길이(L)값을 입력하시오 :
▶ 전체작도는 [Enter] 반단면은 작도방향 위치를 지정 하시오 :
▶ 볼트 머리 삽입은 [I] 돌출은 [O]를 입력하시오 :  error: no function
definition: RTD
Specify rotation angle of text <0d0’0″>:
Enter text:

Command: *Cancel*

적색부분에서 에러 발생 볼트생성이 안되는 상황입니다.
혹시나 64bits에서 문제일까요? 32bits에서 사용했던 기억이~~~~~
하기는 리습 첨부입니다.

;;;————-BOLT SET DRAWING PROGRAM————————————
(defun c:SB (/ bt a p0 p1 ang1 ang2 ang2_2 ang3 ang4 e cen en enn t2 ea dp tem)



  (command “undo” “g”)
  (setvar “cmdecho” 0)
;;;->*error* start  
  (defun *error* (msg)
    (princ “error: “)
    (princ msg)
    (setvar “osmode” os)
    (setvar “highlight” highlt)
    (setvar “orthomode” orth)
    (princ)
  )
;;;-<*error* end
  (setq os (getvar “osmode”))
  (setq highlt (getvar “highlight”))
  (setq orth (getvar “orthomode”))


  (setvar “highlight” 0)
  (setvar “orthomode” 1)


  (if (tblsearch “layer” “0”)
  (command “layer” “n” “0” “”)
  )



  (if (tblsearch “layer” “1”)
  (command “layer” “n” “1” “c” “red” “1” “lt” “center” “1” “”) )
  (if (tblsearch “layer” “2”)
  (command “layer” “n” “2” “c” “yellow” “2” “lt” “hidden” “2” “”) )
  



;;;——————————————————————
  (if (= ai_size nil)
    (setq ai_size 8)
  )
  (prompt
    “n▶ Bolt 규격은? M3/M4/M5/M6/M8/M10/M12/M14/M16/M20/M24 :[M”
  )
  (prin1 ai_size)
  (setq t2 (getint
      “] “
    )
  )


  (if (= t2 nil)
    (setq bt ai_size)
    (setq bt t2
   ai_size t2
    )
  )


  (setvar “osmode” 16383)
  (setq p0 (getpoint “n▶ 볼트가 작도될 시작점을 지정하시오 :”))
  (setq p1 (getpoint p0 “n▶ 볼트가 체결될 끝점or길이(L)값을 입력하시오 :”))
  (setq ang1 (angle p0 p1))
  (setvar “orthomode” 1)
  (setq sec_set “off”)
  (setvar “osmode” 0)
  (setq
    dp (getpoint “n▶ 전체작도는 [Enter] 반단면은 작도방향 위치를 지정 하시오 :”
       )
  )
  (if (/= en nil)
    (entdel en)
  )
  (if dp
    (progn
      (setq ang2_2  (angle p0 dp)
     sec_set “on”
      )
      (if (> ang2_2 ang1)
 (setq ang2 (+ ang1 (dtr 90)))
 (setq ang2 (- ang1 (dtr 90)))
      )
    )
    (setq ang2 (- ang1 (dtr 90)))
  )
  (if (and (= ang1 0.0) (> ang2_2 pi))
    (setq ang2 (- ang1 (dtr 90)))
  )
  (setq ang3 (+ ang2 pi))
  (setq enn (ssget (polar p0 ang1 (/ (distance p0 p1) 2))))
  (if (/= enn nil)
    (command “erase” enn “”)
  )
  (initget “In Out”)
  (setq ps (getkword
      “n▶ 볼트 머리 삽입은 [I] 돌출은 [O]를 입력하시오 : “
    )
  )


 


  
 ; (setq a (getint “n▶ 실선 작도는 [1] / 은선 작도는 [Enter] :”))
  ;(if (= a nil)(setq a 1))


 
;(cond ((= a 1)


 


 (bolt bt p0 p1 sec_set ang2 ps)
  (setvar “osmode” os)
  (setvar “highlight” highlt)
  (setvar “orthomode” orth)
  (command “undo” “e”)
  (princ)
)


 


 


 


;;;—-Selecting of angle value———————-


(defun bolt (bt    p0  p1    sec_set    ang2  ps    /     p3
      p4    p5  p6    p7    p8    p9  p10   p11   p12
      p13   p14  p15   p16   p17   p18  p19   p20   en1
      en2   en3  en4   en5   en6   en7  en8   en9   en10
      en11  en12  en14  en15  ena   enb1  enb2  enb3  len1
      len2  len3  btsz  txtp  t2    dr  p2    d     d1
      d2    h1  dis1  dis2  dis3  ss
     )


 



 


 


 ;;;—-size choice———————-
(defun choice (/)
  (cond
    ((= bt 3)
     (setq d  2.75
    d1 3.0
    h1 3.3
    d2 1.7
    l  20.0
     )
    )
    ((= bt 4)
     (setq d  3.5
    d1 4.0
    h1 4.5
    d2 2.25
    l  25.0
     )
    )
    ((= bt 5)
     (setq d  4.25
    d1 4.8
    h1 5.5
    d2 2.75
    l  25.0
     )
    )
    ((= bt 6)
     (setq d  5.0
    d1 5.5
    h1 7.0
    d2 3.3
    l  50.0
     )
    )
    ((= bt 8)
     (setq d  6.5
    d1 7.0
    h1 9.0
    d2 4.5
    l  100.0
     )
    )
    ((= bt 10)
     (setq d  8.0
    d1 9.0
    h1 11.0
    d2 5.5
    l  125.0
     )
    )
    ((= bt 12)
     (setq d  9.0
    d1 10.0
    h1 13.0
    d2 6.5
    l  125.0
     )
    )
    ((= bt 14)
     (setq d  10.5
    d1 11.5
    h1 15.2
    d2 8.0
    l  160.0
     )
    )
    ((= bt 16)
     (setq d  12.0
    d1 13.0
    h1 18.0
    d2 9.0
    l  160.0
     )
    )
    ((= bt 20)
     (setq d  15.0
    d1 16.0
    h1 22.0
    d2 11.0
    l  180.0
     )
    )
    ((= bt 24)
     (setq d  18.0
    d1 19.5
    h1 26.0
    d2 13.0
    l  200.0
     )
    )
    ((> bt 24)
     (setq d  (* bt 0.75)
    d1 (+ d 1.5)
    h1 (+ bt 2.0)
    d2 (+ (/ bt 2.0) 1)
    he (* bt 0.72)
     )
    )
    (t (alert! “n▶ 잘못된 볼트 규격입니다. 다시 입력하시오 : “))
  )    
)


 


 


 



(defun blt_angselec ()
  (cond
    ((and (>= ang1 (dtr 45)) (< ang1 (dtr 135)))
     ;and
     (setq txtfit “ml”)
    )
    ((and (>= ang1 (dtr 135)) (< ang1 (dtr 225)))
     (setq txtfit “mr”)
    )
    ((and (>= ang1 (dtr 225)) (< ang1 (dtr 315)))
     (setq txtfit “mr”)
    )
    ((or (and (>= ang1 0) (< ang1 (dtr 45)))
  (and (> ang1 (dtr 315)) (< ang1 (dtr 360)))
     )
     (setq txtfit “ml”)
    )
  )
)



  (choice)
 


 


 


  (setq ang1 (angle p0 p1))
  (setq ang4 (angle p1 p0))
  (if (= ps “Out”)
    (setq p0 (polar p0 ang4 h1))
  )
  (blt_angselec)
  (setvar “osmode” 0)
  (setq p2 (polar p0 ang1 h1))
  (setq dis1 (distance p2 p1)
 dis2 (* bt 0.075)
 dis3 (- (/ bt 2.0) dis2)
  )
  (setq len1 (atof (rtos (/ (+ dis1 (* bt 1.5)) 5.0) 2 0))
 len2 (* len1 5.0)
 len3 (- len2 dis1)
 btsz (strcat “M” (itoa (fix bt)) “x” (itoa (fix len2)))
  )
  (setq txtp (polar p0 ang1 (+ h1 1.5)))
  (setvar “osmode” 0)
  (command “layer” “m” “0” “”)
  (if (= txtfit “mr”)
    (command “text”
      “j”
      “mr”
      txtp
      “3.5”
      (rtd (+ ang1 pi))
      btsz
    )
    (command “text”
      “j”
      “ml”
      txtp
      “3.5”
      (rtd ang1)
      btsz
    )
  )
;;;———————————————-
  (if (<= dis1 (+ bt (* dis2 2.0)))
    (setq p3 (polar p1 ang4 (/ dis1 2.0)))
    (setq p3 (polar p1 ang4 bt))
  )
  (setq p5  (polar p1 ang1 len3)
 p4  (polar p5 ang4 dis2)
 p6  (polar p1 ang1 (* bt 2.0))
 p7  (polar p6 ang1 (* bt 0.3))
 p8  (polar p7 ang1 (* dis3 0.577))
 p10 (polar p2 ang4 bt)
 p9  (polar p10 ang1 dis2)
 p11 (polar p2 ang2 (/ bt 2.0))
 p12 (polar p2 ang2 d2)
 p13 (polar p2 ang2 d)
 p14 (polar p0 ang2 d1)
 p15 (polar p3 ang2 dis3)
 p16 (polar p5 ang2 dis3)
 p17 (polar p4 ang2 (/ bt 2.0))
 p18 (polar p1 ang2 d2)
 p19 (polar p7 ang2 dis3)
 p20 (polar p3 ang2 (/ bt 2.0))
 p20 (polar p20 ang4 (* dis2 1.732))
  )
;;;—————————————————


  (command “line” p0 p9 “”)
  (setq en1 (entlast))
  (command “line” p2 p11 “”)
  (setq en2 (entnext en1))
  (command “copy” en1 “” p9 p13)
  (command “copy” en1 “” “m” p0 p11 p15 p16 p17 “”)
  (command “copy” en2 “” “m” p2 p9 p10 p3 p4 p5 “”)
;;;———————————————-
  (setq en3  (entnext en2)
 en4  (entnext en3)
 en5  (entnext en4)
 en6  (entnext en5)
 en7  (entnext en6)
 en8  (entnext en7)
 en9  (entnext en8)
 en10 (entnext en9)
 en11 (entnext en10)
 en12 (entnext en11)
  )
;;;—————————————————
  (setvar “FILLETRAD” 0)
  (setvar “CHAMFERA” dis2)
  (setvar “CHAMFERB” dis2)


  (command “chamfer” en3 en9)
  (command “chamfer” en4 en12)
  (command “fillet” en3 en8)
  (command “fillet” en3 en2)
  (command “fillet” en5 en12)
  (setq en13 (entnext en12)
 en14 (entnext en13)
  )
  (command “line” p12 p18 “”)
  (setq en15 (entlast))
  (command “line” p15 p20 “”)
  (setq en16 (entlast))
  (command “CHANGE” en5 en7 en16 “” “P” “LA” “3” “”)
;;;—————————————————
  (setq ss (ssadd))
  (setq ss (ssadd en2 ss))
  (setq ss (ssadd en3 ss))
  (setq ss (ssadd en4 ss))
  (setq ss (ssadd en5 ss))
  (setq ss (ssadd en6 ss))
  (setq ss (ssadd en7 ss))
  (setq ss (ssadd en8 ss))
  (setq ss (ssadd en9 ss))
  (setq ss (ssadd en10 ss))
  (setq ss (ssadd en11 ss))
  (setq ss (ssadd en12 ss))
  (setq ss (ssadd en13 ss))
  (setq ss (ssadd en14 ss))
  (setq ss (ssadd en15 ss))
  (setq ss (ssadd en16 ss))
;;;—————————————————-
  (if (/= ps “Out”)
    (progn
      (command “copy” en1 “” p0 p14)
      (setq ena (entlast))
      (command “fillet” ena en2)
      (setq ss (ssadd ena ss))
    )
  )
;;;—————————————————–


  (command “copy” en11 “” p4 p6)
  (setq enb1 (entlast))
  (command “fillet” en7 enb1)
  (command “line” P7 p19 P8 “”)
  (setq enb2 (entnext enb1)
 enb3 (entnext enb2)
  )
  (command “fillet” en6 enb2)
  (setq p6 (polar p6 ang2 (/ bt 2.0)))
  (command “copy” en16 “” p20 p6)
  (setq enb4 (entlast))
  (setq ss (ssadd enb1 ss)
 ss (ssadd enb2 ss)
 ss (ssadd enb3 ss)
 ss (ssadd enb4 ss)
  )


;;;——————————————————


  (if (= sec_set “on”)
    ()
    (command “mirror” ss “” p0 p2 “”)
  )
  (entdel en1)
  (setq p1 (polar p0 ang4 0.0))
  (setq p2 (polar p8 ang1 0.0))
  (command “line” P1 p2 “”)
  (command “CHANGE” (entlast) “” “P” “LA” “1” “”)
)

  • 0
  • 6 6 답변
  • 74 조회
공유
  • Facebook

    관련 있는 질문들

    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..
    • 질문오토캐드 라인타입이 너무 많은데 어떻게 정리하나요..
    • 캐드출력시 pc3모드이 이상현상
    • 객체 전체 간격 조정 할수 있을까요?

    6 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. 수야12 Lv.21
      2021-01-25T16:51:16+09:00답변 등록 답변 등록 일시 2021-01-25 4:51 pm

      (defun dtr(a)(* pi(/ a 180.0))) 

      리습에다 추가하세요 
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 무니미니 Lv.0
      2021-01-25T16:58:07+09:00답변 등록 답변 등록 일시 2021-01-25 4:58 pm

      수야 12님 항상 감사드립니다.
      그런데 위의 내용을 어느 위치에 추가를 해야하는 거지요??

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. 수야12 Lv.21
      2021-01-25T17:06:18+09:00답변 등록 답변 등록 일시 2021-01-25 5:06 pm

      리습의 끝이나 앞 또는 밖에도 상관없습니다 그렇다고 막 가운데다만 안넣으시면 됩니다 ㅎㅎ;;

      캐드에 같이 로딩만 되면 되니까요
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. 무니미니 Lv.0
      2021-01-25T17:20:39+09:00답변 등록 답변 등록 일시 2021-01-25 5:20 pm

      수야 12님 리습 끝에다가 삽입을 했고요
        (command “CHANGE” (entlast) “” “P” “LA” “1” “”)
      )

      (defun dtr(a)(* pi(/ a 180.0)))

      그런데 상황은 동일 하네요

      ▶ 볼트 머리 삽입은 [I] 돌출은 [O]를 입력하시오 : O error: no function
      definition: RTD
      Specify rotation angle of text <0d0’0″>:
      44

      Enter text:

      위의 단계에서 볼트머리 삽입또는돌출 에러에 로테이트 값이 나옵니다.
      거기에서 숫자치면 그각도로 글씨가 써져 버리는데 뭐가 문제일까요??
      바쁘실텐테 항상 죄송하고 감사합니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. 수야12 Lv.21
      2021-01-25T17:54:36+09:00답변 등록 답변 등록 일시 2021-01-25 5:54 pm
      헉 제가 잘못봤네요  이걸로 다시 해보세요 ㅎㅎ;;

      (defun rtd (a)(/ (* a 180.0) pi))  

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. 무니미니 Lv.0
      2021-01-26T10:27:55+09:00답변 등록 답변 등록 일시 2021-01-26 10:27 am

      수야12님

      항상 감사드립니다. 잘 해결했습니다.
      좋은일만 가득하세요~~~~

      다시한번 감사드립니다.

      • 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