비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 108305
다음
진행 중
Lv.0
등록일: 2017-04-182017-04-18T16:33:13+09:00 2017-04-18T16:33:13+09:00카테고리: AutoCAD & CADian

고수님들 볼트 리습 수정 부 탁 드립니다

안녕하세요 설계쪽 일을하면서 렌치볼트를 많이 그리는데요

관련 리습을 구했는데 추가로 수정 좀 부탁 드립니다.
고수님들 도움 꼭 부탁 드려요
1.수정 – 마지막에 볼트가 반토막 잘린 모양으로만 나오내요… 대칭으로 가능하고 좀..부탁드려요
2.추가 기능 – 볼트 그린후에 볼트 규격도 같이 나오게 가능할까요?
부탁 드립니다.
————————————————–
;;;——————————————————————-
;;;This macro is to draw hexasocketbolt, plan of tap, section of tap hole,
;;;circle of c’bore, section of c’bore and plan of hexabolt.
;;;lisp by Jeong chan-mho
;;;1992
;;;———————————————————————-
;;—————BOLT C’BORE BORING LISP——————————
(princ “Please wait ! Bolt lisp is loading now.”)
(defun choice(/)
(cond
          ((equal bt 3.0000 0.0001) (setq d 2.75  d1 3.0   h1 3.3   d2 1.7  he 2.5))
          ((equal bt 4.0000 0.0001) (setq d 3.5   d1 3.5   h1 4.5   d2 2.25 he 3.0))
          ((equal bt 5.0000 0.0001) (setq d 4.25  d1 4.8   h1 5.5   d2 2.75 he 4.0))
          ((equal bt 6.0000 0.0001) (setq d 5.0   d1 5.5   h1 7.0   d2 3.5  he 5.0))
          ((equal bt 8.0000 0.0001) (setq d 6.5   d1 7.0   h1 9.0   d2 4.5  he 6.0))
          ((equal bt 10.0000 0.0001)(setq d 8.0   d1 9.0   h1 11.0  d2 5.5  he 8.0))
          ((equal bt 12.0000 0.0001)(setq d 9.0   d1 10.0  h1 13.0  d2 6.5  he 10.0))
          ((equal bt 14.0000 0.0001)(setq d 10.5  d1 11.5  h1 15.2  d2 8.0  he 12.0))
          ((equal bt 16.0000 0.0001)(setq d 12.0  d1 13.0  h1 18.0  d2 9.0  he 14.0))
          ((equal bt 20.0000 0.0001)(setq d 15.0  d1 16.0  h1 22.0  d2 11.0 he 17.0))
          ((equal bt 24.0000 0.0001)(setq d 18.0  d1 19.5  h1 26.0  d2 13.0 he 19.0))
          ((> bt 24.0)(setq d (* bt 0.75) d1 (+ d 1.5) h1 (+ bt 2.0)
                          d2 (+ (/ bt 2.0) 1)  he (* bt 0.72)))
          (t (prompt “is not bolt size:”))
       ); bolt size condition closed
)
;;——————————————————————–
(defun btborerr (s)
   (if (/= s “Funtion cancelled”) ;if an error(such as ctrl-c) accurs
       (princ (strcat “nError: ” s)) ;while this command active
   )
   (setvar “blipmode” blip)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “orthomode” ortho)
   (if (/= en1 nil)(entdel en1))
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;———————————————————————-
(defun C:BTC-BOR (/ older os ortho blip cmde cho e ea pt d2 bt d11 h1 pt1 en1
                    en2 en3 en4 en5 pt2 pt3 pt4 pt5 pt6 pt7 xx)
   (setq older *error*)
   (setq *error* btborerr)
   (command “undo” “group”)
   (COMMAND “LAYER” “s” “0” “”)
   (setq blip (getvar “blipmode”))
   (setq os (getvar “osmode”))
   (setq cmde (getvar “cmdecho”))
   (setq ortho (getvar “orthomode”))
   (setvar “blipmode” 0)
   (setvar “cmdecho” 0)
   (setvar “orthomode” 1)
   (initget “Circle Size”)
   (setq cho (getkword “Drawing Method: pick <C>ircle/ Size:”))
   (if (/= cho “Size”)
       (progn
          (setq e nil)
          (while (null e)
             (setq e (entsel “n Select C’Bore inner circle:”))
             (if e
               (progn
                  (setq pt (cadr e))
                  (setq e (car e))
                  (if (and
                         (= (cdr (assoc 0 (entget e))) “CIRCLE”)
                         (= (cdr (assoc 62 (entget e))) 7)
                      )
                      (progn
                         (setq ea (entget e))
                         (setq d2 (cdr (assoc 40 ea)))
                         (setq d2 (* d2 2))
                         (cond
                            ((= d2 3.4) (setq bt 3   d1 3.0   h1 3.3  ))
                            ((= d2 4.5) (setq bt 4   d1 3.5   h1 4.5  ))
                            ((= d2 5.5) (setq bt 5   d1 4.8   h1 5.5  ))
                            ((= d2 6.6) (setq bt 6   d1 5.5   h1 7.0  ))
                            ((= d2 9.0) (setq bt 8   d1 7.0   h1 9.0  ))
                            ((= d2 11.0) (setq bt 10  d1 9.0   h1 11.0 ))
                            ((= d2 13.0) (setq bt 12  d1 10.0  h1 13.0 ))
                            ((= d2 16.0) (setq bt 14  d1 11.5  h1 15.2 ))
                            ((= d2 18.0) (setq bt 16  d1 13.0  h1 18.0 ))
                            ((= d2 22.0)(setq bt 20  d1 16.0  h1 22.0 ))
                            ((= d2 26.0)(setq bt 24  d1 19.5  h1 26.0 ))
                            ((> d2 26.0)(setq bt (* (- d2 1) 2.0)
                                           d1 (+ (* bt 0.75) 1.5) h1 (+ bt 2)))
                            (t
                              (progn
                                (prompt “nSelect is not bolt count circle:”)
                                (setq e nil)
                              )
                            )
                         )
                      )
                      (progn
                         (prompt “n Error :Entity is not inner circle:”)
                         (setq e nil)
                      )
                  )
                )
             )
          )
          (setq d2 (/ d2 2))
          (setq pt (osnap pt “cen”))
          (initget 1)
          (setq pt1 (getpoint pt “nEnter C’bore base line point:”))
          (setvar “osmode” 0)
          (command “line” pt pt1 “”)
          (setq en1 (entlast))
      )
   )
   (if (= cho “Size”)
       (progn
          (setq d1 nil)
          (while (null d1)
              (setq bt (getdist “n Enter bolt size: M<10>”))
              (if (= bt nil)(setq bt 10))
              (choice)
          )
       )
   )
   (setvar “osmode” 32)
   (princ “(Aperture box is intsec)”)
   (setq pt1 (getpoint “n Enter bolt counter head point:”))
   (setq pt2 (getpoint pt1 “n Enter end point:”))
   (setvar “osmode” 0)
   (setq ang (angle pt1 pt2))
   (setq ang1 (+ ang (/ pi 2.0)))
   (setq pt3 (polar pt1 ang h1)
         pt4 (polar pt1 ang1 d1)
         pt5 (polar pt3 ang1 d1)
         pt6 (polar pt3 ang1 d2)
         pt7 (polar pt2 ang1 d2)
   )
   (command “Line” pt6 pt7 “”)
   (setq en2 (entlast))
   (command “line” pt4 pt5 pt3 “”)
   (setq en3 (entnext en2)
         en4 (entnext en3))
   (setq pt1 (polar pt1 (- ang pi) 0))
   (setq pt2 (polar pt2 ang 0))
   (if (/= en1 nil)(entdel en1))
   (command “line” pt1 pt2 “”)
   (setq en5 (entlast))
   (command “change” en5 “” “P” “la” “1” “”)
   (initget “Yes No”)
   (setq xx (getkword “n Continue mirror: <Y> / N :”))
   (prompt “n Delete old object?:<N>”)
   (if (/= xx “No”)
       (command “mirror” en2 en3 en4 “” pt1 pt2 pause)
   )
   (setvar “blipmode” blip)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “orthomode” ortho)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;——————————————————————
;;—————BOLT C’BORE CIRCLE LISP—————————–
(defun btcirerr (s)
   (if (/= s “Funtion cancelled”) ;if an error(such as ctrl-c) accurs
       (princ (strcat “nError: ” s)) ;while this command active
   )
   (setvar “blipmode” blip)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “pickbox” pic)
   (command “LAYER” “s” lay “”)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;——————————————————————-
(defun c:BTC-CIR(/ older os blip cmde lay pic cho ki es ans e ea pt bt
                   pt1 ss ans1)
   (setq older *error*)
   (setq *error* btcirerr)
   (command “undo” “group”)
   (COMMAND “LAYER” “s” “0” “”)
   (setq blip (getvar “blipmode”))
   (setq os (getvar “osmode”))
   (setq cmde (getvar “cmdecho”))
   (setq lay (getvar “clayer”))
   (setq pic (getvar “pickbox”))
   (setvar “blipmode” 0)
   (setvar “cmdecho” 0)
   (initget “Size Circle”)
   (setq cho (getkword “Drawing Method: pick <C>ircle / Size: “))
   (setvar “osmode” 0)
   (initget “Yes No”)
   (setq ans (getkword “n Hidden line change to outline: Y <N>: “))
   (if (/= cho “Size”)
       (progn
          (setq ki 5)
          (while  ki
            (setq es 7)
            (while es
               (setq e nil)
               (setq e (entsel “n Select arc or circle of Tap:”))
               (setq pt2 (cadr e))
               (if (/= e nil)
                   (progn
                      (setq e (car e))
                      (if (and (/= (cdr (assoc 0 (entget e))) “ARC”)
                               (/= (cdr (assoc 0 (entget e))) “CIRCLE”)
                          )
                          (prompt “n Entity is not tap :”)
                          (progn
                             (setq ea (entget e))
                             (setvar “pickbox” 1)
                             (setq pt (osnap pt2 “cen”))
                             (if (= (cdr (assoc 0 ea)) “ARC”)
                                 (progn
                                    (setq bt (cdr (assoc 40 ea)))
                                    (setq pt1 (polar pt (* 1.25 pi)(* bt 1.42)))
                                    (setq pt2 (polar pt (* 0.25 pi)(* bt 1.42)))
                                    (setq ss (ssget “w” pt1 pt2))
                                    (if (/= ss nil)(command “erase” ss “”))
                                 )
                                 (progn
                                    (setq bt (cdr (assoc 40 ea)))
                                    (setq bt (/ bt 0.85))
                                    (setq pt1 (polar pt (* 1.25 pi)(* bt 1.42)))
                                    (setq pt2 (polar pt (* 0.25 pi)(* bt 1.42)))
                                    (setq ss (ssget “w” pt1 pt2))
                                    (if (/= ss nil)(command “erase” ss “”))
                                 )
                             )
                             (setq bt (* bt 2.0))
                             (setq la (itoa (atoi (rtos bt))))
                             (choice)
                             (setq la (strcat “m” la))
                             (command “layer” “m” la “”)
                             (command “circle” pt d2)
                             (command “change” (entlast) “” “P” “LA” “0” “”)
                             (command “circle” pt d1)
                             (command “change” (entlast) “” “p” “la” “2” “”)
                             (if (= ans “Yes”)
                                 (command “change” (entlast) “” “p” “la” “0” “”)
                             )
                             (setvar “pickbox” 4)
                          )
                      )
                   )
                   (setq es nil)
               )
            )
            (setq ki nil)
          )
       )
   )
   (if (= cho “Size”)
       (progn
          (setq bt (getint “n Enter bolt size:M<10>”))
          (if (= bt nil) (setq bt 10))
          (choice)
          (setq la (itoa bt))
          (setq la (strcat “m” la))
          (command “layer” “m” la “”)
          (setvar “osmode” 32)
          (setq ki 7)
          (while ki
             (setq pt (getpoint “n Pick C’Bore center point:(aperture box int)”))
             (if (= pt nil)(setq ki nil))
             (if (/= pt nil)
                 (progn
                   (command “circle” pt d2)
                   (command “change” (entlast) “” “P” “LA” “0” “”)
                   (command “circle” pt d1)
                   (command “change” (entlast) “” “p” “la” “2” “”)
                   (if (= ans “Yes”)
                       (command “change” (entlast) “” “p” “la” “0” “”)
                   )
                 )
             )
          )
      )
   )
   (setvar “blipmode” blip)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “pickbox” pic)
   (command “LAYER” “s” lay “”)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;———————————————————————
;;—————- BOLT HEAD DRAWING LISP——————————-
(defun headerr (s)
   (if (/= s “Funtion cancelled”) ;if an error(such as ctrl-c) accurs
       (princ (strcat “nError: ” s)) ;while this command active
   )
   (setvar “blipmode” blip)
   (setvar “gridmode” grid)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;————-BOLT HEAD DRAWING PROGRAM————————————
(defun c:BOLTHEAD (/ older os grid blip cmde bt d2 k pt mt d d1 he)
   (setq older *error*)
   (setq *error* headerr)
   (command “undo” “group”)
   (COMMAND “LAYER” “s” “0” “”)
   (setq blip (getvar “blipmode”))
   (setq grid (getvar “gridmode”))
   (setq os (getvar “osmode”))
   (setq cmde (getvar “cmdecho”))
   (setvar “blipmode” 0)
   (setvar “cmdecho” 0)
   (if (= bthe nil)(setq bthe 10))
   (setq bt bthe)
   (setq bthe (getint (strcat “n Last used. Bolt size <M”(itoa bthe)”>
                   ,Enter new size:”)))
   (if (/= bthe nil)
       (setq bt bthe)
   )
   (choice)
   (setq d2 (* d 0.87))
   (setq k 5)
   (while k
      (setvar “osmode” 32)
      (setq mt (strcat “M”(itoa bt)))
      (setq pt (getpoint  “n Enter bolt position:”))
      (if (= pt nil)
          (setq k nil)
          (progn
             (setvar “osmode” 0)
             (command “CIRCLE” pt d2)
             (command “CIRCLE” pt d1)
             (command “CIRCLE” pt d)
             (command “POLYGON” “6” pt “c” (/ he 2.0))
             (command “TEXT” “m” pt “3” “0” mt)
             (command “CHANGE” (entlast) “” “p” “LA” “40” “”)
          )
      )
   )
   (setvar “blipmode” blip)
   (setvar “gridmode” grid)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;—————————————————————–
;;————— TAP HOLE DRAWING LISP——————————
(defun taphoerr (s)
   (if (/= s “Funtion cancelled”) ;if an error(such as ctrl-c) accurs
       (princ (strcat “nError: ” s)) ;while this command active
   )
   (setvar “blipmode” blip)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “orthomode” ortho)
   (if (/= en1 nil)(entdel en1))
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;—————MAIN PROGRAM LISP——————-
(defun C:TAPHOLE (/ older os ortho blip cmde cho e ea pt d2 bt d1 h1 pt1 en1
                    en2 en3 en4 en5 pt2 pt3 pt4 pt5 pt6 pt7 xx)
   (setq older *error*)
   (setq *error* taphoerr)
   (command “undo” “group”)
   (COMMAND “LAYER” “s” “0” “”)
   (setq blip (getvar “blipmode”))
   (setq os (getvar “osmode”))
   (setq cmde (getvar “cmdecho”))
   (setq ortho (getvar “orthomode”))
   (setvar “blipmode” 0)
   (setvar “cmdecho” 0)
   (setvar “orthomode” 1)
   (initget “Circle Size”)
   (setq cho (getkword “Drawing Method: pick <C>ircle / Size:”))
   (if (/= cho “Size”)
       (progn
          (setq e nil)
          (while (null e)
             (setq e (entsel “n Select Tapping circle:”))
             (if e
               (progn
                  (setq e (car e))
                  (if (and (/= (cdr (assoc 0 (entget e))) “CIRCLE”)
                           (/= (cdr (assoc 0 (entget e))) “ARC”)
                      )
                      (progn
                         (prompt “n Error :Entity is tap:”)
                         (setq e nil)
                      )
                  )
                )
             )
          )
          (setq ea (entget e))
          (command “UCS” “e” e)
          (setq pt (trans (cdr (assoc 10 ea)) e 1))
          (setvar “osmode” 0)
          (initget 1)
          (setq pt1 (getpoint pt “nEnter Tapping hole line point:”))
          (setvar “osmode” 0)
          (command “line” pt pt1 “”)
          (setq en1 (entlast))
          (command “ucs” “P”)
          (if (= (cdr (assoc 0 ea)) “ARC”)
              (setq d (* (cdr (assoc 40 ea)) 2.0))
              (setq d (* (/ (cdr (assoc 40 ea)) 0.85) 2.0))
          )
       )
   )
   (if (= cho “Size”)
       (progn
          (setq d1 nil)
          (while (null d1)
              (setq bt (getdist “n Enter bolt size: M<10>”))
              (if (= bt nil)(setq bt 10))
              (choice)
          )
          (setq d bt)
       )
   )
   (command “osnap” “int,end”)
   (setq pt1 (getpoint “n Enter tap start point:”))
   (setq pt2 (getpoint pt1 “n Enter end point:”))
   (setq ang (angle pt1 pt2))
   (setq dis (distance pt1 pt2))
   (setq ang1 (+ ang (/ pi 2.0)))
   (setq d1 (/ d 2.0))
   (setq ss (ssadd))
   (setvar “osmode” 0)
   (initget “Through Drill”)
   (setq thr (getkword (strcat
       “n Tappng dist:”(rtos dis)” bolt size:M”(rtos d 2 0)”
            , Tap hole: Through/<Drill>:”)))
   (if (= thr “Through”)
       (progn
         (setq pt3 (polar pt1 ang1 d1))
         (setq pt4 (polar pt2 ang1 d1))
         (setq pt5 (polar pt1 ang1 (* d1 0.85)))
         (setq pt6 (polar pt2 ang1 (* d1 0.85)))
         (command “Line” pt5 pt6 “”)
         (setq en2 (entlast))
         (command “line” Pt3 pt4 “”)
         (setq en3 (entnext en2))
         (command “change” en3 “” “p” “LA” “4” “”)
         (setq ss (ssadd en2 ss))
         (setq ss (ssadd en3 ss))
       )
   )
   (if (/= thr “Through”)
       (progn
         (setq pt3 (polar pt1 ang1 d1)
               pt4 (polar pt1 ang (* d 1.8))
               pt5 (polar pt4 ang1 d1)
               pt6 (polar pt4 ang1 (* 0.85 d1))
               pt6 (polar pt6 ang (* 0.15 1.732 d1))
               pt7 (polar pt1 ang1 (* 0.85 d1))
               pt8 (polar pt1 ang (* d 2.1))
               pt9 (polar pt8 ang1 (* 0.85 d1))
               pt2 (polar pt8 ang (* 0.577 0.85 d1))
         )
         (command “Line” pt4 pt5 “”)
         (setq en2 (entlast))
         (command “line” pt7 pt9 pt8 “”)
         (command “line” pt9 pt2 “”)
         (command “line” pt3 pt5 pt6 “”)
         (setq en3 (entnext en2)
               en4 (entnext en3)
               en5 (entnext en4)
               en6 (entnext en5)
               en7 (entnext en6)
         )
         (command “change” en6 en7 “” “p” “LA” “4” “”)
         (setq ss (ssadd en2 ss)
               ss (ssadd en3 ss)
               ss (ssadd en4 ss)
               ss (ssadd en5 ss)
               ss (ssadd en6 ss)
               ss (ssadd en7 ss)
         )
       )
   )
   (setq pt1 (polar pt1 (- ang pi) 0))
   (setq pt2 (polar pt2 ang 0))
   (if (/= en1 nil)(entdel en1))
   (command “line” pt1 pt2 “”)
   (setq en5 (entlast))
   (command “change” en5 “” “P” “la” “1” “”)
   (setvar “osmode” 1)
   (initget “Yes No”)
   (setq xx (getkword “n Continue mirror: <Y> / N :”))
   (prompt “n Delete od object?:<N>”)
   (if (/= xx “No”)
       (command “mirror” ss “” pt1 pt2 pause)
   )
   (setvar “blipmode” blip)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “orthomode” ortho)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;————————————————————–
;;;————–TAP CIRCLE LISP——————————–
(defun tapierr(s)
   (if (/= s “Function cancelled”) ;if an error (such as ctrl-c) occurs
       (princ (strcat “nError:” s));while this command is active
   )
   (setvar “osmode” os)
   (setvar “blipmode” blip)
   (setq *error* olderr) ;restore old *error* handler
   (princ)
)
;—————Main Program————————–
(defun dtr (f)(* pi (/ f 180.0)))
(defun C:TAP (/ os blip tap b k pt1 c d pt2 pt3)
   (setq olderr *error*
         *error* tapierr)
   (setq blip (getvar “blipmode”))
   (COMMAND “LAYER” “s” “0” “”)
   (setq os (getvar “osmode”))
   (setvar “cmdecho”  0)
   (setvar “blipmode” 0)
   (if (= tapsz nil) (setq tapsz 6))
   (setq tap tapsz)
   (setq tapsz (getint (strcat “n Last used Tapping size is:< M “(itoa tapsz )” >,  Enter new size:  or Return:”)))
   (if (= tapsz nil)
       (setq tapsz tap))
   (setq b tapsz)
   (setq k 5)
   (while k
       (setvar “osmode” 32)
       (setq pt1 (getpoint “nPick Tapping point;”))
       (if (/= pt1 nil)
         (progn
           (setq c (/ b 2.0))
           (setq d (* c 0.85))
           (setvar “OSMODE” 0)
           (setq pt2 (polar pt1 (dtr 270) c))
           (setq pt3 (polar pt1 (dtr 180) c))
           (command “arc” “c” pt1 pt2 pt3)
           (command “change” “l” “” “p” “LA” “4” “”)
           (command “circle” pt1 d)
         )
       )
       (if (= pt1 nil)(setq k nil))
   )
   (setvar “osmode” os)
   (setvar “blipmode” blip)
   (setq *error* olderr)
   (princ)
);defun closed
;;;————————————————————–
;;;——————BOLT DRAWING LISP—————————
(defun bolter (s)
   (if (/= s “Funtion cancelled”) ;if an error(such as ctrl-c) accurs
       (princ (strcat “nError: ” s)) ;while this command active
   )
   (setvar “blipmode” blip)
   (setvar “gridmode” grid)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “highlight” high)
   (setvar “orthomode” ortho)
   (if (/= en nil)(entdel en))
   (if (/= en1 nil)(entdel en1))
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;———————————————————————
(defun dtr (a) (* pi (/ a 180.0)))
;;————-BOLT SET DRAWING PROGRAM————————————
(defun C:BOLTAS(/ older os ortho grid blip cmde high bt p0 p1 ang1 ang2 ang3 ang4
                dis1 dis2 dis3 ch e cen en d d1 d2 h1
                p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19
                en1 en2 en3 en4 en5 en6 en7 en8 en9 en10 en11 en12 en14 en15
                ena enb1 enb2 enb3
                ps dr)
   (setq older *error*)
   (setq *error* bolter)
   (command “undo” “group”)
   (COMMAND “LAYER” “s” “0” “”)
   (setq blip (getvar “blipmode”))
   (setq grid (getvar “gridmode”))
   (setq os (getvar “osmode”))
   (setq cmde (getvar “cmdecho”))
   (setq high (getvar “highlight”))
   (setq ortho (getvar “orthomode”))
   (setvar “orthomode” 0)
   (setvar “blipmode” 0)
   (setvar “cmdecho” 0)
   (setvar “highlight” 0)
   (setvar “orthomode” 1)
   (initget “Circle Size”)
   (setq ch (getkword
       “nDrawing method:(Press C= pick circle):Return=<Enter bolt Size> “))
   (if (/= ch “Circle”)
       (progn
          (setq bt (getint “nEnter bolt size:M<10>”))
          (if (= bt nil)
              (setq bt 10)
          )
       )
   )
   (if (= ch “Circle”)
       (progn
          (setq e nil)
          (while (null e)
             (setq e (entsel “n Select circle of Tap draw:”))
             (if e
                (progn
                   (setq e (car e))
                   (if (and (/= (cdr (assoc 0 (entget e))) “CIRCLE”)
                            (/= (cdr (assoc 0 (entget e))) “ARC”)
                       )
                       (setq e nil)
                   )
                )
             )
          )
          (setq ea (entget e))
          (setq bt (cdr (assoc 40 ea)))
          (setq bt (* bt 2.0))
          (if (= (cdr (assoc 0 ea)) “CIRCLE”)
              (setq bt (/ bt 0.85))
          )
          (command “UCS” “e” e)
          (setq cen (trans (cdr (assoc 10 ea)) e 1))
          (setq p0 (getpoint cen “n Enter bolt base line point:”))
          (setvar “osmode” 0)
          (command “line” cen p0 “”)
          (setq en (entlast))
          (command “ucs” “P”)
       )
   )
   (setvar “osmode” 32)
   (setq p0 (getpoint “nPick Bolt head point:”))
   (setq p1 (getpoint p0 “nPick Bolting point:”))
   (setq ang1 (angle p0 p1) ang4 (angle p1 p0))
   (setq dp (getpoint p0 ”  Pick draw side or Return = left :”))
   (if dp
       (progn
          (setq ang2 (angle p0 dp))
          (if (or (equal ang2 ang1 0.0005)
                  (equal ang2 ang4 0.0005)
              )
;;                (setq ang2 (angle p0 dp))
                (setq ang2 (+ ang1 (dtr 90)))
          )
       )
       (setq ang2 (- ang1 (dtr 90)))
   )
   (setq ang3 (+ ang2 pi))
   (if (/= en nil) (entdel en))
   (choice)
   (initget “In Out”)
   (setq ps (getkword “n Bolt head set  position: <I>:inner O:outer: “))
   (if (= ps “Out”)
       (setq p0 (polar p0 ang4 h1))
   )
   (setvar “osmode” 0)
   (setq p2 (polar p0 ang1 h1))
   (setq dis1 (distance p2 p1)  dis2 (* bt 0.075)
         dis3 (- (/ bt 2.0) dis2))
   ;;;—————–point  select————————————-
   (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 (* bt 1.5))
         p4 (polar p5 ang4 dis2)
         p6 (polar p5 ang1 (* bt 0.3))
         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))
   );;setq closed
   ;;—————————————————
   (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” “4” “”)
   ;;—————————————————
   (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))
       )
   )
   ;;—————————————————–
   (initget “No Yes”)
   (setq dr (getkword “n Continue drawing Drill and Tapping: N / <Y>”))
   (if (/= dr “No”)
       (progn
          (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)
          )
       )
   )
   ;;——————————————————
   (initget “No”)
   (setq mi (getkword “n Continue drawing Mirror: N / <Y>”))
   (if (/= mi “No”)
       (progn
          (prompt “n Delete old object: <N>”)
          (command “mirror” ss “” p0 p2 pause)
       )
   )
   (entdel en1)
   (setq p1 (polar p0 ang4 0))
   (setq p2 (polar p8 ang1 0))
   (command “line” P1 p2 “”)
   (command “change” (entlast) “” “p” “la” “1”””)
   (setvar “blipmode” blip)
   (setvar “gridmode” grid)
   (setvar “osmode” os)
   (setvar “cmdecho” cmde)
   (setvar “highlight” high)
   (setvar “orthomode” ortho)
   (command “undo” “e”)
   (setq *error* older)    ;Restore old *error* handeler
   (princ)
)
;;;———————END—————————————
  • 0
  • 2 2 답변
  • 21 조회
공유
  • Facebook

    관련 있는 질문들

    • mvsetup 및 align 안됨
    • mvsetup 및 align 안됨
    • 에어컨 실외기 도면
    • cad에서 기준점 복사 후 다른 파일에 붙여넣기 시 블록참조객체의 길이가 줄어들어있어요

    2 답변

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

      검토 하시느라 고생 하셧어요

      감사드립니다.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. 수야12 Lv.21
      2017-04-19T07:40:39+09:00답변 등록 답변 등록 일시 2017-04-19 7:40 am

      레이어가 없어서 정상작동을 안했네요 

      일단 문자표시는 다 넣어놨으니 필요없는 부분은 직접 삭제 하시면 됩니다 
      (_Text  어쩌구로) 시작하는 부분앞에 세미 콜론 붙이시면 리습이 없는 명령으로 간주합니다 
      eg.)  (_Text pt1 (_Boltsize bt pt1 pt2)) 이런식으로 앞부분이 _Text로 시작하는 명령을
        ;;(_Text pt1 (_Boltsize bt pt1 pt2)) 앞에 세미콜론붙이시면 됩니다 아예 지우시거나 
      덧) 본문이 길경우 첨부 파일 형태로 올리시는 것도 좋아요 본문이 너무 길면 드래그 하기 힘들어서 ㅎㅎ
      bolt(rev).lsp
      • 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