久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区

您的位置:網站首頁 > CAD新聞

CAD中3D的螺紋畫法

時間:2011-08-23 12:51:08 來源:未知

;-------------------------------------------------------------------
; THREAD.LSP Creates 3D solid (ACIS) threads. 01/9/1999
;
; Corrected
;
; written by: Robbert Teggelove
;
;-------------------------------------------------------------------
;
; This is a way to make 3D solid external threads in
; AutoCAD R13 and R14.
; You can make threads according to:
; - ISO 228 (equal to DIN 228 and NEN 176)
; - Gas thread straight inside thread only, ISO 7-1 (equal to DIN 2999 and NEN 3258)
; - Metric inside and outside thread, NEN 81 and NEN 1870, geometrically 100% correct
;
; There is no error trapping or anything like that.
;
; The program works by creating a single thread
; and then arraying it out to the proper length. The threads are
; drawn a little longer and then sliced off to the correct length.
; This program only draws the thread, you're on your own drawing
; the rest of the screw or internal thread.
;
; Note, the threads created by this can make for some rather big files,
; so make sure your system is up to it. Also, it might take a while
; to union all of the single threads together so be patient.
;
;-------------------------------------------------------------------


(defun myerror (s)

(if (/= s "function cancelled") (princ (strcat "nError: " s)))
(setvar "cmdecho" ocmd)
(setvar "osmode" osm)
(setq *error* olderr)
(princ)
)

(defun c:ISO228 (/ nom pitch length threadangle cpt inout minordiafactor nom1 nom2 size n s olderr)

;;;;(setq olderr *error*
;;;; *error* myerror)
(setq osm (getvar "osmode"))
(setq ocmd (getvar "cmdecho"))
(setq minordiafactor 1.6666666667)
(Princ "nThread according to DIN ISO 228, NEN 176")
(initget 1 "I E")
(setq inout (getkword "n內螺紋al or External thread (I/E): "))
(initget "1/16 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 1-1/8 1-1/4 1-1/2 1-3/4 2 2-1/4 2-1/2 2-3/4 3 3-1/2 4 4-1/2 5 5-1/2 6")
(setq size (getkword "nNominal size, 1/16' to 6' (for example: 1/8 or 1-1/4): "))
(setq size "1") ; demo version only 1
(if (= size "1") (if (= inout "E") (setq nom1 33.069 n 11) (setq nom1 33.568 n 11)))
(setq pitch (/ 25.4 n))
(initget 1) ; no enter
(setq cpt (getpoint "Start center point: "))
(initget 3) ; no enter, not zero
(setq length (getdist "nTotal thread length in Y direction: "))

(setq h (* 0.96049 pitch)) ; h according to ISO 228
(setq nom (+ nom1 (/ h 3))) ; biggest outside diameter
(setq nom2 (- nom (* h minordiafactor))) ; inside diameter
(setq threadangle (+ 27.5 0)) ; threadangle

(setvar "osmode" 0)
(setvar "cmdecho" 0)

(drawthread nom nom1 nom2 pitch length threadangle cpt)

(princ "nDone")
(setvar "osmode" osm)
(setvar "cmdecho" ocmd)
(setq *error* olderr)
(princ)
)


; Next routine makes metric thread according to NEN 1870

(defun c:Metric (/ nom pitch length threadangle cpt inout minordiafactor nom1 nom2 ocmd osm 4H 5H 6H h6 g6 tol)

;-------------------------------------------------------------------
; Gets the nominal size, tpi, and total length
; then calculates a bunch of geometry points.
; All running osnaps are turned off as well.
;-------------------------------------------------------------------

(setq 4H (list 0.0015 0.002 0.002 0.0025 0.003 0.0035 0.004 0.005 0.006 0.007 0.008 0.009 0.010))
(setq 5H (list 0.002 0.0025 0.003 0.004 0.0045 0.0055 0.0065 0.0075 0.009 0.010 0.0115 0.0125 0.0135))
(setq 6H (list 0.003 0.004 0.0045 0.0055 0.0065 0.008 0.0095 0.011 0.0125 0.0145 0.016 0.018 0.020))
(setq h6 (list -0.003 -0.004 -0.0045 -0.0055 -0.0065 -0.008 -0.0095 -0.011 -0.0125 -0.0145 -0.016 -0.018 -0.020))
(setq g6 (list -0.005 -0.008 -0.0095 -0.0115 -0.0135 -0.017 -0.0195 -0.023 -0.0265 -0.0295 -0.033 -0.036 -0.0515))

(setq osm (getvar "osmode"))
(setq ocmd (getvar "cmdecho"))
(setq minordiafactor 1.5)
(initget 1 "I E")
(setq inout (getkword "n 內螺紋 或 外螺紋(I/E): "))
(initget 7) ; no enter, not zero, not negative
(setq nom1 (getdist "n 螺紋外徑: "))

(initget 7) ; no enter, not zero, not negative
(setq pitch (getreal "n 螺距: "))

(initget 1) ; no enter
(setq cpt (getpoint " 起始圓心坐標: "))
(initget 3) ; no enter, not zero, not negative
(setq length (getdist "n 螺紋長度: "))

; add tolerance to nominal diameter

(if (<= nom1 3) (setq n 0) ; position in tolerance field depending on nominal diameter
(if (<= nom1 6) (setq n 1)
(if (<= nom1 10) (setq n 2)
(if (<= nom1 18) (setq n 3)
(if (<= nom1 30) (setq n 4)
(if (<= nom1 50) (setq n 5)
(if (<= nom1 80) (setq n 6)
(if (<= nom1 120) (setq n 7)
(if (<= nom1 180) (setq n 8)
(if (<= nom1 250) (setq n 9)
(if (<= nom1 315) (setq n 10)
(if (<= nom1 400) (setq n 11)
(if (<= nom1 500) (setq n 12)
)))))))))))))

(if (= inout "I")
(if (< pitch 0.25) (setq nom1 (+ nom1 (nth n 4H))) ; tolerance field to use depending on pitch
(if (< pitch 0.35) (setq nom1 (+ nom1 (nth n 5H)))
(if (>= pitch 0.35) (setq nom1 (+ nom1 (nth n 6H)))
)))
)
(if (= inout "E")
(if (< pitch 0.35) (setq nom1 (+ nom1 (nth n h6)))
(if (>= pitch 0.35) (setq nom1 (+ nom1 (nth n g6)))
))
)

(setq h (* 0.866025 pitch)) ; h=0.866025
(setq nom (+ nom1 (/ h 4))) ; h/8
(setq nom2 (- nom (* h minordiafactor))) ; inside diameter
(setq threadangle (+ 30 0)) ; 30?threadangle

(setvar "osmode" 0)
(setvar "cmdecho" 0)

(drawthread nom nom1 nom2 pitch length threadangle cpt)

(princ "nDone")
(setvar "cmdecho" ocmd)
(setvar "osmode" osm)
(princ)
)



; Next routine makes all threads

(defun c:mythread (/ nom pitch length threadangle cpt inout minordiafactor nom1 ocmd osm)

;-------------------------------------------------------------------
; Gets the nominal size, tpi, and total length
; then calculates a bunch of geometry points.
; All running osnaps are turned off as well.
;-------------------------------------------------------------------

(setq osm (getvar "osmode"))
(setq ocmd (getvar "cmdecho"))
(initget 7) ; no enter, not zero, not negative
(setq nom1 (getdist "nNominal outside diameter: "))
(setq nom1 22) ; demo version only 22
(initget 7) ; no enter, not zero, not negative
(setq nom (getdist "nGeometric outside diameter: "))
(setq nom 22.5) ; demo version only 22.5
(initget 7) ; no enter, not zero, not negative
(setq nom2 (getdist "nNominal inside diameter: "))
(initget 7) ; no enter, not zero, not negative
(setq pitch (getreal "nPitch: "))
(initget 7) ; no enter, not zero, not negative
(setq threadangle (getreal "nThreadangle: "))
(initget 1) ; no enter
(setq cpt (getpoint "Start center point: "))
(initget 3) ; no enter, not zero, not negative
(setq length (getdist "nTotal thread length in Y direction: "))

(setq h (* 0.866025 pitch)) ; h=0.866025

(setvar "osmode" 0)
(setvar "cmdecho" 0)

(drawthread nom nom1 nom2 pitch length threadangle cpt)

(princ "nDone")
(setvar "cmdecho" ocmd)
(setvar "osmode" osm)
(princ)
)



(defun drawthread (nom nom1 nom2 pitch length threadangle cpt / total pt1 pt1z pt2 pt3 ang pt1a
pt1az pt3a pt1b pt1bz pt3b pt4 pt4 pt6 pt7 pt8 pt9 pt10 pt11 pt12 ss conewantedstart conewantedend)

;-------------------------------------------------------------------
; Gets the nominal size, tpi, and total length
; then calculates a bunch of geometry points.
; All running osnaps and cmdecho are turned off as well.
;-------------------------------------------------------------------
(command "undo" "begin") ; start undo steps

(setq total (+ (fix (/ (abs length) pitch)) 3)
pt1 (list (- (car cpt) (/ nom 2.0)) (cadr cpt) (caddr cpt))
pt1z (list (- (car cpt) (/ nom 2.0)) (cadr cpt) (+ (caddr pt1) 1.0))
pt2 (polar pt1 (/ (* threadangle pi) 180.0) 1)
pt3 (list (+ (car pt1) nom) (+ (cadr pt1) (/ pitch 2.0)) (caddr cpt))
ang (angle pt1 pt3)
pt1a (polar pt1 (+ ang (/ pi 2.0)) pitch)
pt1az (list (car pt1a) (cadr pt1a) (+ (caddr pt1a) 1.0))
pt3a (polar pt1a ang nom)
pt1b (polar pt1 (- ang (/ pi 2.0)) pitch)
pt1bz (list (car pt1b) (cadr pt1b) (+ (caddr pt1b) 1.0))
pt3b (polar pt1b ang nom)
pt4 (polar pt3 (/ (* (- 180 threadangle) pi) 180.0) 1)
pt5 (inters pt1 pt2 pt3 pt4 nil)
pt6 (list (car pt5) (cadr cpt) (caddr cpt))
pt7 (polar pt1 (/ (* (- 360 threadangle) pi) 180.0) 1)
pt8 (polar pt3 (/ (* (+ 180 threadangle) pi) 180.0) 1)
pt9 (inters pt1 pt7 pt3 pt8 nil)
pt10 (list (car pt9) (cadr pt3) (caddr pt3))
pt11 (polar cpt (/ pi 2.0) pitch)
pt12 (polar pt11 (/ pi 2.0) (abs length))
)

;-------------------------------------------------------------------
; Draws two cones which are inverted and offset 1/2 the pitch.
; The cones are each sliced at the angle of the crest line
; and then unioned together
;-------------------------------------------------------------------

(initget 0 "Y N")
(setq conewantedstart (getkword "nDo you want a 90?top angle at the start? (Y/N) <Y>: "))
(initget 0 "Y N")
(setq conewantedend (getkword "nDo you want a 90?top angle at the end? (Y/N) <Y>: "))

(command "zoom" "w" (list (car pt1a) (+ (cadr pt1a) (abs length)) (caddr pt1a)) pt3b)

(princ "nCreating thread...this might take a while.")
(command "pline" pt1 pt5 pt6 "c")
(command "revolve" "l" "" pt5 pt6 "")
(command "slice" "l" "" pt1 pt3 pt1z pt5)
(command "slice" "l" "" pt1a pt3a pt1az pt3)
(setq ss (ssadd (entlast)))
(command "pline" pt3 pt9 pt10 "c")
(command "revolve" "l" "" pt9 pt10 "")
(command "slice" "l" "" pt1 pt3 pt1z pt9)
(command "slice" "l" "" pt1b pt3b pt1bz pt3)
(setq ss (ssadd (entlast) ss))
(command "union" ss "")

;-------------------------------------------------------------------
; This above solid is sliced in half and then mirrored. This
; creates the "helix" in the thread. The height of the single
; thread is actually equal to twice the pitch, but the
; excess is either absorbed or cut off in the last step
;-------------------------------------------------------------------

(command "slice" ss "" "xy" cpt "b")
(setq ss (ssadd (entlast) ss))
(command "mirror" "l" "" pt1 "@10<0" "y")
(command "union" ss "")

;-------------------------------------------------------------------
; The thread is arrayed and then unioned together (this part can
; take a while). The resulting solid is cut to the specified length.
;-------------------------------------------------------------------

(setq e (entlast))
(command "array" ss "" "r" total 1 pitch)
(repeat (1- total)
(setq e (entnext e)
ss (ssadd e ss)
)
)
(command "union" ss "")

; if wanted make a 45?cone at the start and union with thread

(if (/= conewantedstart "N")
(progn (setq e (entlast))
(command "cone" (list (car cpt) (+ (cadr cpt) pitch) (caddr cpt)) "d" nom1 "a" (list (car cpt) (+ (+ (cadr cpt) (/ nom1 2)) pitch) (caddr cpt)))
(command "union" "l" e "")
)
)

(command "slice" "l" "" "zx" pt11 pt12)
(command "slice" "l" "" "zx" pt12 pt11)
(command "move" "l" "" cpt (list (car cpt) (- (cadr cpt) pitch) (caddr cpt)))

; make a minor diameter cylinder and union with thread

(setq e (entlast))
(command "cylinder" cpt "d" nom2 "c" (list (car cpt) (+ (cadr cpt) (abs length)) (caddr cpt)))
(command "union" "l" e "")
(setq ss (entlast))

; make a hollow cylinder, with or without end cone, and subtract from thread

(command "cylinder" cpt "d" nom1 "c" (list (car cpt) (+ (cadr cpt) (abs length)) (caddr cpt))) ; minor dia
(setq e (entlast))

; if wanted make a 45?cone at the end

(if (/= conewantedend "N")
(progn (command "move" "l" "" cpt (list (car cpt) (- (cadr cpt) (/ (- nom1 nom2) 2)) (caddr cpt))) ; move minor dia down
(command "cone" cpt "d" nom1 "a" (list (car cpt) (+ (cadr cpt) (/ nom1 2)) (caddr cpt))) ; put cone on minor dia
(command "move" "l" "" cpt (list (car cpt) (- (+ (cadr cpt) (abs length)) (/ (- nom1 nom2) 2)) (caddr cpt)))
(command "union" "l" e "") ; union cone and minor dia
(setq e (entlast))
)
)

; subtract minor dia from bigger cylinder

(command "cylinder" cpt "d" (* nom1 1.5) "c" (list (car cpt) (+ (cadr cpt) (abs length)) (caddr cpt)))
(command "subtract" "l" "" e "")
(setq e (entlast))

; subtract hollow cylinder from thread

(command "subtract" ss "" e "")

; if thread negative length then mirror

(setq e (entlast))
(if (< length 0) (mirror3d e "zx" cpt "y"))

(command "zoom" "p")

(command "undo" "end") ; end undo steps
)



;;;---------------------------------------------------------------------------------------------------------------------;

(arxload "geom3d" nil)
(princ "ntISO228, Metric and Mythread loaded. ")
(princ "ntThis copy is licensed to: DEMO VERSION ")
(princ)

把以上復制到文本另存為螺紋.lsp
打開CAD,工具,加載應用程序,選剛才的文件,
在命令輸入metric,便可以生成螺紋,再另外可以和你的圓柱或者孔進交集或并集,便生成了內螺紋或者外螺紋
 


久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
北条麻妃av高潮尖叫在线观看| 深夜精品寂寞黄网站在线观看| 五月天亚洲综合情| 亚洲专区国产精品| 亚洲最大福利网| 一区二区三区一级片| 亚洲一区二区三| 午夜欧美不卡精品aaaaa| 日韩一区二区高清视频| 日本一区二区在线免费播放| 午夜精品www| 三区精品视频观看| 人人澡人人澡人人看欧美| 欧美亚洲丝袜| 国模吧一区二区| 国产九色porny| 91精品国产高清自在线| 久久久久久久中文| 国产精品久久中文字幕| 欧美wwwxxxx| 亚洲va欧美va国产综合久久| 日本免费在线精品| 黄色大片在线免费看| 国产精品一色哟哟| 国产不卡一区二区视频| 日韩中文字幕网站| 九九精品视频在线观看| 亚洲欧美一区二区原创| 人妻内射一区二区在线视频| 国产中文日韩欧美| 97激碰免费视频| 日韩视频一区在线| 一区二区三区四区在线视频| 日本久久久久久| 免费国产成人看片在线| 91精品国产自产在线| 国产成人精品在线观看| 在线视频不卡一区二区| 人妻无码久久一区二区三区免费| 国产一区免费在线| 久久久亚洲影院| 国产精品二区三区四区| 欧美一级视频一区二区| 国产日韩综合一区二区性色av| 久久综合久久网| 精品国产综合久久| 日韩欧美视频第二区| 成人国产在线看| 国产精品旅馆在线| 日本国产欧美一区二区三区| 国产精品影片在线观看| 国产精品网站免费| 日本精品视频一区| 97碰碰碰免费色视频| 国产精品久久国产精品| 色狠狠久久av五月综合|| 国产一区二区精品在线| 日韩中文字幕在线视频| 日日噜噜噜夜夜爽爽| www..com日韩| 欧美精品手机在线| 黄色一级片国产| 色妞久久福利网| 日韩精品免费播放| 69久久夜色精品国产69乱青草| 精品国产第一页| 蜜桃成人免费视频| 久热国产精品视频| 欧美在线3区| 亚洲字幕一区二区| 国产精品日韩在线| 亚洲国产精品影视| 国产免费一区二区三区香蕉精 | 欧美性猛交久久久乱大交小说| www.浪潮av.com| 欧美日韩成人在线观看| 免费在线黄网站| 久久久精品一区| 青青青在线视频播放| 国产成人在线免费看| 亚洲中文字幕无码中文字| 国产伦精品一区二区三区在线| 国产精品盗摄久久久| 免费久久99精品国产自| 国产精品久久久久久久免费大片| 欧洲美女7788成人免费视频| 国产激情片在线观看| 日韩中文字幕免费在线| 国产成人一区二区三区别| 日本一区二区三区视频免费看 | 免费毛片网站在线观看| 久久久国产在线视频| 热久久精品国产| 久久精品国产成人| 狠狠噜天天噜日日噜| 国产精品国产对白熟妇| 国产一级做a爰片久久毛片男| 国产精品第8页| 国产欧亚日韩视频| 在线不卡视频一区二区| 91国产美女视频| 日韩av一区二区三区在线| 久久大香伊蕉在人线观看热2| 日韩亚洲不卡在线| 久久久精品国产一区二区| 国模精品系列视频| 精品国产区在线| 91蜜桃网站免费观看| 日本一区二区三区视频免费看| 久久久久久欧美| 国内久久久精品| 精品国产电影| 91成人免费观看网站| 欧美诱惑福利视频| 欧美成aaa人片免费看| 国产精品一区久久| 欧美一区二区大胆人体摄影专业网站| 久久久久久久久综合| 国产在线一区二区三区欧美| 一区二区三区四区欧美| 国产极品精品在线观看| 欧美最大成人综合网| 国产精品成人国产乱一区| 97久久精品视频| 热久久免费国产视频| 精品国产乱码久久久久软件| 久久免费一区| 国产午夜福利100集发布| 亚洲成色www久久网站| 久久av秘一区二区三区| 国产区精品视频| 日本福利视频一区| 欧美xxxx做受欧美| 久久青青草综合| 国产在线视频2019最新视频| 熟女视频一区二区三区| 国产精品视频二| 91精品91久久久中77777老牛| 精品欧美一区免费观看α√| 亚洲精品国产精品久久| 国产精品无码一区二区在线| av一区二区三区免费| 欧美亚洲另类在线一区二区三区| 自拍视频一区二区三区| 国产精品欧美激情在线观看| 国产精品99免视看9| 国产又粗又爽又黄的视频| 日韩少妇中文字幕| 亚洲一区二区在线| 久久综合88中文色鬼| 北条麻妃一区二区三区中文字幕| 国产精品专区一| 黄色国产精品一区二区三区| 日本免费在线精品| 亚洲在线www| 欧美理论电影在线观看| 日韩视频永久免费观看| 久久综合入口| 91国产丝袜在线放| 国产精品夜夜夜一区二区三区尤| 欧美日韩一区在线视频| 日韩精品手机在线观看| 午夜美女久久久久爽久久| 久久久久久69| 欧美成年人视频网站欧美| 久久久久久伊人| 成人精品水蜜桃| 国外色69视频在线观看| 日本免费一区二区三区视频观看| 久久久久成人网| 九九热精品在线| 国产精品久久久久久久久久| 久久精品成人欧美大片| 色妞欧美日韩在线| 久久久久久欧美| 国产freexxxx性播放麻豆| 91精品国产自产91精品| www.日本少妇| 成年丰满熟妇午夜免费视频| 国产乱子夫妻xx黑人xyx真爽| 国产在线一区二区三区四区| 欧美国产日韩激情| 欧美日韩精品在线一区二区| 人妻无码一区二区三区四区| 日本91av在线播放| 欧美一性一乱一交一视频| 欧美资源一区| 加勒比在线一区二区三区观看| 精品91一区二区三区| 麻豆久久久9性大片| 国产一区二区不卡视频| 国产精品午夜视频| 91精品国产成人| 久久久久久久国产| 久热国产精品视频| 欧美xxxx做受欧美.88| 欧美片一区二区三区| 九九热这里只有精品免费看| 一本久道高清无码视频| 欧美一区二区三区在线免费观看|