在AutoCAD中怎样画“阿基米德螺旋线”? 赏分400分

如题所述

如何绘制三维螺旋线(3dspiral)和平面螺旋线即阿基米德螺旋线(spiral):①将Autodesk公司网站 http://www.icad.com.cn/icad/share/autocadtool.htm 打开上述网页,点击其中的:3dspiral.zip 用于螺旋线的绘制上的可下载软件:“3dspiral.Lsp”复制到自己计算机硬盘下的“某”文件夹中;②打开AutoCADR14或R2000绘图界面,利用tool下拉式菜单(Autolisp)load Application命令加载(Load)“3dspiral.Lsp”应用软件程序;③人工键入命令(Command): 3dspiral (按回车键)---绘制三维螺旋线; spiral (按回车键)---绘制二维螺旋线(即阿基米德螺旋线)④按照自己的设计意图可连续回答该软件设置的6项提问后,就能画出较理想的各种螺旋线:即绘制弹簧的路径(Path)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-20
在AUTOCAD里按ALT+F11
打开VBA窗口,把下面的程序全粘进去, 参数自己设
在AUTOCAD里运行宏,或在VBA窗口里点那个运行的三角号

Const pi As Double = 3.1415926
Const AngStart As Double = 0 '起始角度
Const AngEnd As Double = 720 '终止角度
Const nPoints As Long = 4000 '总计点数
Const a As Double = 1

'极坐标转换函数
Function CoordConv(ByRef x As Double, ByRef y As Double, ByVal r As Double, ByVal angle As Double)
x = r * Sin(angle * pi / 180)
y = r * Cos(angle * pi / 180)
End Function
'主程序
Sub Main()
Dim points(nPoints * 3 + 2) As Double
Dim n As Long
Dim b As Boolean
Dim x As Double
Dim y As Double
Dim r As Double
Dim ang As Double

n = 0
For ang = AngStart To AngEnd Step (AngEnd - AngStart) / nPoints
'曲线的极坐标公式 r=a*θ
r = a * (ang / 2 / pi)
b = CoordConv(x, y, r, ang)
points(n) = x
points(n + 1) = y
points(n + 2) = 0
n = n + 3
Next ang
'画多线段
ThisDrawing.ModelSpace.AddPolyline (points)

End Sub本回答被网友采纳
第2个回答  2013-11-20
新建一个文本文件 把下面的代码复制到文件 保存为 .lsp
; 3DSPIRAL.LSP

(defun myerror (s)
(if (/= s "function cancelled")
(princ (strcat "\nError: " s))
)
(setvar "cmdecho" ocmd)
(setvar "blipmode" oblp)
(setq *error* olderr)
(princ)
)

(defun cspiral (ntimes bpoint hfac lppass strad vfac
/ ang dist tp ainc dhinc dvinc circle dv)

(setvar "blipmode" 0)
(setvar "cmdecho" 0)
(setq circle (* 3.141596235 2))
(setq ainc (/ circle lppass))
(setq dhinc (/ hfac lppass))
(if vfac (setq dvinc (/ vfac lppass)))
(setq ang 0.0)
(if vfac
(setq dist strad dv 0.0)
(setq dist 0.0)
)
(if vfac
(command "3dpoly")
(command "mline" bpoint)
)
(repeat ntimes
(repeat lppass
(setq tp (polar bpoint (setq ang (+ ang ainc))
(setq dist (+ dist dhinc))
)
)
(if vfac
(setq tp (list (car tp) (cadr tp) (+ dv (caddr tp)))
dv (+ dv dvinc)
)
)
(command tp)
)
)
(command "")
(princ)
)

(defun C:SPIRAL (/ olderr ocmd oblp nt bp cf lp)
;;;;(setq olderr *error*
;;;; *error* myerror)
(setq ocmd (getvar "cmdecho"))
(setq oblp (getvar "blipmode"))
(setvar "cmdecho" 0)
(initget 1) ; bp must not be null
(setq bp (getpoint "\nCenter point: "))
(initget 7) ; nt must not be zero, neg, or null
(setq nt (getint "\nNumber of rotations: "))
(initget 3) ; cf must not be zero, or null
(setq cf (getdist "\nGrowth per rotation: "))
(initget 6) ; lp must not be zero or neg
(setq lp (getint "\nPoints per rotation <30>: "))
(cond ((null lp) (setq lp 30)))
(cspiral nt bp cf lp nil nil)
(setvar "cmdecho" ocmd)
(setvar "blipmode" oblp)
(setq *error* olderr) ; Restore old *error* handler
(princ)

)

;;;
;;; Interactive spiral generation
;;;

(defun C:3DSPIRAL (/ olderr ocmd oblp nt bp hg vg sr lp)
;;;;(setq olderr *error*
;;;; *error* myerror)
(setq ocmd (getvar "cmdecho"))
(setq oblp (getvar "blipmode"))
(setvar "cmdecho" 0)
(initget 1) ; bp must not be null
(setq bp (getpoint "\nCenter point: "))
(initget 7) ; nt must not be zero, neg, or null
(setq nt (getint "\nNumber of rotations: "))
(initget 7) ; sr must not be zero, neg, or null
(setq sr (getdist bp "\nStarting radius: "))
(initget 1) ; cf must not be zero, or null
(setq hg (getdist "\nHorizontal growth per rotation: "))
(initget 3) ; cf must not be zero, or null
(setq vg (getdist "\nVertical growth per rotation: "))
(initget 6) ; lp must not be zero or neg
(setq lp (getint "\nPoints per rotation <30>: "))
(cond ((null lp) (setq lp 30)))
(cspiral nt bp hg lp sr vg)
(setvar "cmdecho" ocmd)
(setvar "blipmode" oblp)
(setq *error* olderr) ; Restore old *error* handler
(princ)

)

(princ "\n\tC:SPIRAL and C:3DSPIRAL loaded. ")
(princ)

在CAD 下用命令 load 加载你保存的文件 后
使用命令 3dspiral
OK
第3个回答  2019-02-24
绘图里有螺旋工具啊,怎么还出来这么多方法?

在AutoCAD中怎样画“阿基米德螺旋线”? 赏分400分
②打开AutoCADR14或R2000绘图界面,利用tool下拉式菜单(Autolisp)load Application命令加载(Load)“3dspiral.Lsp”应用软件程序;③人工键入命令(Command): 3dspiral (按回车键)---绘制三维螺旋线; spiral (按回车键)---绘制二维螺旋线(即阿基米德螺旋线)④按照自己的设计意图可连续回答该软件设...

在AutoCAD中怎样画“阿基米德螺旋线”? 赏分400分
用样条曲线描点画

用autocad怎么画阿基米德螺旋线
底面半径是指螺旋起始时的半径;顶圆半径是指螺旋结束时的半径;其中圈数、圈高等辅助参数根据自己的需要选定,这样既可获得螺旋线。希望可以帮到你!哈哈~~~

用autocad怎么画阿基米德螺旋线
底面半径是指螺旋起始时的半径;顶圆半径是指螺旋结束时的半径;其中圈数、圈高等辅助参数根据自己的需要选定,这样既可获得螺旋线。希望可以帮到你!哈哈~~~

AUTOCAD中的螺旋线怎么画?(椭圆的上下两面圆的不同象限点如何在椭圆表...
1、打开CAD后,找工具/AUTOLISP/VISUAL LISP编辑器,打开.点新建文件 2、然后输入 (defun c:luoxuan (\/)(setq b1 (getpoint "请指定螺旋线基点: "))(setq r (getreal "请输入螺纹平均半径: "))(setq disp (getreal "请输入螺纹节距: "))(setq n (getint "请输入每圈细化段数: ")...

AutoCAD中的螺旋究竟是什么螺旋?
CAD中的螺旋线实质上属于阿基米德螺旋,可以通过计算与图形判断。以60为底面半径,每个周期外扩20,顶面半径为120的螺旋为例,若继续向内收缩,完成三个周期后将通过圆心。通过直接绘制从圆心开始,每周期外扩20的螺旋,结果与计算相符,证实为阿基米德螺旋。改变底面半径为100,顶面半径为10,每个周期...

自定心卡盘的盘丝用AutoCAD怎么画?
你说是那个卡盘上那个丝杆吧!其实那个只是梯形螺纹!画法和普通螺纹是一样的!只是在标注的时候标注 例:Tr40X7 40是公称直径 7是螺距!

相似回答