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

您的位置:網(wǎng)站首頁(yè) > CAD新聞

CAD中3D的螺紋畫(huà)法

時(shí)間:2011-08-23 12:51:08 來(lái)源:未知

;-------------------------------------------------------------------
; 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內(nèi)螺紋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 內(nèi)螺紋 或 外螺紋(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 " 起始圓心坐標(biāo): "))
(initget 3) ; no enter, not zero, not negative
(setq length (getdist "n 螺紋長(zhǎng)度: "))

; 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)

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


久久国产色av_国产人妻777人伦精品hd_欧美 国产 日本_好吊色欧美一区二区三区
欧美亚洲丝袜| 久久国产精品 国产精品| 午夜精品美女久久久久av福利| 国产精品一区久久| 久久伊人色综合| 国产亚洲欧美另类一区二区三区| 视频在线观看99| 国产精品又粗又长| 亚洲第一精品区| 国产一区免费| 日韩av成人在线| 日韩视频免费大全中文字幕| 欧洲国产精品| 日本不卡免费新一二三区| 国产精品视频大全| 国产精品有限公司| 日本一区二区在线免费播放| 久久精品99久久久久久久久| www.日本在线视频| 国产欧美亚洲日本| 精品一区日韩成人| 午夜视频久久久| 国产精品久久久久7777| 色综合久久久888| youjizz.com亚洲| 欧美亚洲激情在线| 欧美日韩天天操| 国产精品美女免费| 91久久国产精品91久久性色| 国语自产精品视频在线看| 九九热久久66| 日韩午夜在线视频| 成人av一级片| 国产高清一区二区三区| 国产成人亚洲欧美| 日韩专区中文字幕| 久久er99热精品一区二区三区| 韩国福利视频一区| 国产一区红桃视频| 日本欧美色综合网站免费| 日韩久久在线| 岳毛多又紧做起爽| 日本一区二区免费高清视频| 热re99久久精品国99热蜜月| 国产在线一区二区三区四区| 粉嫩av四季av绯色av第一区| 国产高清精品一区| 国产精品毛片一区视频| 久久色在线播放| 制服诱惑一区| 欧美日韩国产高清视频| 粉嫩av免费一区二区三区| 久草热久草热线频97精品| 精品国产一区二区三区久久狼5月| 日韩在线视频观看正片免费网站| 久久亚洲一区二区三区四区五区高| 久久6精品影院| 全黄性性激高免费视频| 黄色大片在线免费看| 91精品国产一区| 国产精彩精品视频| 美女999久久久精品视频| 青青青青在线视频| 国产精品99久久久久久人 | 成人黄色中文字幕| 最新欧美日韩亚洲| 精品中文字幕视频| 国产伦精品一区二区三区免费视频| 精品国产网站地址| 国产区一区二区三区| 91av视频在线免费观看| 亚洲午夜精品久久| 久久一区免费| 黄色www在线观看| 亚洲自拍中文字幕| 精品国产拍在线观看| 韩国欧美亚洲国产| www.日韩免费| 成人国产精品久久久久久亚洲| 日本精品久久久久影院| 久久精品国产一区二区三区| av动漫在线播放| 欧美在线视频一二三| 88国产精品欧美一区二区三区| 国产视频99| 日韩欧美精品一区二区三区经典 | 久久精品国产理论片免费| 亚洲av首页在线| 国产精品入口福利| 97色在线观看免费视频| 日本三级中文字幕在线观看| 热re99久久精品国产99热| 欧美激情在线视频二区| 中文字幕日韩精品久久| 国产成+人+综合+亚洲欧洲| 国产日韩在线亚洲字幕中文| 亚洲综合五月天| 久热精品视频在线| 国产精品99久久久久久大便| 人人爽久久涩噜噜噜网站| 欧美精品999| 久久riav| av一区二区三区免费| 欧美精品一区二区三区四区五区| 九九久久精品一区| 国产精品欧美亚洲777777| 久久综合一区| 97色伦亚洲国产| 国产伦精品一区二区三| 国产中文一区二区| 狠狠噜天天噜日日噜| 日本高清不卡三区| 国产精品入口福利| 国产999在线| 欧洲亚洲在线视频| 精品无码一区二区三区爱欲 | 99国产在线视频| 蜜桃av噜噜一区二区三区| 日韩黄色片在线| 欧美日韩电影一区二区三区| 国内精品久久国产| 国产免费一区二区三区视频 | 国产伦精品免费视频| 99久久99| 久久久久亚洲精品| 久久视频这里只有精品| 国产aⅴ夜夜欢一区二区三区| 亚洲中文字幕无码中文字| 日本一区二区在线视频| 青草视频在线观看视频| 国产在线不卡精品| 91极品视频在线| 久久久久久亚洲精品| 国产精品成人国产乱一区| 久久综合伊人77777| 人人做人人澡人人爽欧美| 狠狠干视频网站| 久久国产色av免费观看| 欧美精品一二区| 亚洲欧洲免费无码| caoporn国产精品免费公开| 在线一区日本视频| 国产青青在线视频| 精品人妻大屁股白浆无码| 日韩视频在线免费观看| 国产一区二区在线网站| 日韩在线观看a| 午夜精品一区二区三区四区| 青青视频免费在线观看| 成人国产在线看| 国产精品久久久久一区二区| 亚洲精品在线免费| 精品1区2区| 久久免费视频网站| 国产精品国产三级国产专区53| 亚洲精品一品区二品区三品区| 欧美综合激情网| 69久久夜色精品国产69| 久久综合免费视频| 欧美成人高潮一二区在线看| 久热国产精品视频一区二区三区| 精品久久免费观看| 欧美夜福利tv在线| 深夜福利日韩在线看| 亚洲va男人天堂| 国产精品影片在线观看| 国产不卡av在线免费观看| 精品国产乱码久久久久久丨区2区| 青草青草久热精品视频在线观看| 91精品久久久久久久久久| 一区二区精品免费视频| 国产欧美一区二区视频| 欧美成人精品在线播放| 国产一区二区视频免费在线观看| 国产精品视频久久久| 欧美亚洲视频一区二区| 国产成人免费电影| 韩国国内大量揄拍精品视频| 国产精品欧美日韩久久| 国产女同一区二区| 久久99热这里只有精品国产 | 91福利视频在线观看| 日本在线观看天堂男亚洲| 久久精品二区| 韩国精品一区二区三区六区色诱| 久久成人综合视频| 国产熟女高潮视频| 国产一区二区三区四区五区在线| 一本久道久久综合| 欧美激情精品久久久久久黑人| 91蜜桃网站免费观看| 国产日韩精品入口| 蜜桃传媒一区二区三区| 奇米四色中文综合久久| 日本一区二区三区视频免费看| 一区中文字幕在线观看| 一区二区三区四区视频在线观看| 欧美日韩不卡合集视频| 亚洲一区二区三区四区中文| 欧美精品免费看|