)
(coiranand,H,)
(setvar“CMDECHOT)
(pniic)
)
用EXCEL将螺旋线的X、Y、Z坐标计算出來,用啰存为冲的“CSV(逗号分隔广格式存盘为.CSV格式文件,用记事本打开此文件后全部复制。
进入ACAD中.在命令行中执行3DPOT.Y.需坐标时用CTRT.+V将数据粘过?
夫就OK!
用excel画螺旋线的话,只耍知道tyz的坐标方程式就很容易画出來了。
也可以不存为cst格式,如果x为A列,y为B列,z为c列,在D1输入公式"=al&","&bl&”,"&cl然后拖动到其它行构成如“xyz”的点表;复制D列的内容:
在Acad命令行输入命令**3dpoly\回车,按“F2“切换至文本屏幕,粘贴,回车
些画法都足近似的,ACAD的三维螺旋线用PEDIT光滑后无法作为拉伸的路径。
因此这些螺旋体都是一段一段的,秸度开髙一点,文件就比较大了,一般除了做特写,没多少实际意义.
用INXTNTOR做就太简单了!
!
zxdcad附带了这个的图片:
有•个lisp小程序可以画,注意“每圈线段数”输入一个人于30的数,才显得圆。
;;HELIXLSP螺旋线生成
(DefiuiC:
Helix(/prbamnxydadz)
(SetQp(GetPoint”\n中心点:
")
x(Carp)
y(Cadip)
z(Caddrp)
r(GetDistp”\n半径:
”)b(GetDistp"\n总高度:
")a(GetAnglep”\n起始角:
")m(Getlnt"\n圈数:
")n(Getlnt”\n每圈线段数:
”)da(/(*m2Pi)(♦mn))dz(/b(♦mn))
)
(Command"3dpoly")
(Repeat(1+(♦mn))
(Conmiand(Polar(Listxyz)ar))(SetQa什ada)
z(+zdz)
)
)
(Command”")
(PruiC)
)
代接画是很难的•你可以先用•电子表格”按阿基米德螺线公式计算出一列成对的X、丫的值.并做成・X,Y-的形式,然荷复制这一列值,任CAD里価样条时粘贴上决就成「-屯子我格••中収样越细,曲的图越箱确,,"电子农格-中収样细不会增加人的工作虽的。
2°还可以用CAXA®i,那更方便。
阿基米德螺旋线
用autolisp编程可以实现.
(command"pline")
(setqn0)
(repeat1000
(command(polar(list00)(/n57.3)n))
(setqn(1+n))
)
(command)
弹簧和螺纹(三维)
1、打开CAD后,找工具/AUTOLISP/VISUALLISP编辑器,打开.点新建文件
2、然后输入
(defuncJuoxuan
(/)
(setqD1(getpoint"请指定蝶旋线呈点:
"))
(setqr(getreal"请输入螺纹平均半径:
"))
(setqdisp(getreal•请输入螺纹节距:
J)
(setqn(getint"请输入毎圈细化段数:
"))
(setqdelta(/C2.0pi)n))
(setqj(/dispn))
(setqbb(caddrb1))
(setqang0)
(setqjj0)
(Command"UCSW"oRb1)
(Command"3dpoly*(listr00))
(repeatn
(setqjj(+jj1)
(setqang(+deltaang))
(setqpt2(list(•r(cosang))(*r(sinang))(+0(*jjj))))
(Commandpt2)
)
(Command"f,)
)
存盘为luoxuan.lsp,关闭编牠器
3、要用时•点工具/AUTOLISP/加载,找到luoxuan.lsp文件将英加载,关闭对话框•在命令行输入luoxuan回车.就开始了螺旋线的绘制
MsualLISP开发三维圆柱螺旋线(2007-01-2512:
29:
42)
标签:
螺旋线visualtlii附线分类:
CAD开发“题
*圆柱螺旋线的形成
圆柱螺旋线是技术上应用域广的空间曲线,其形成如图1所示。
一动点M沿圆柱的母线AB作等速逍线运动,而该母线又绕圆柱的轴线作等角速旋域时,点M的运动轨迹即为圆柱螺旋线.
*数学模型
当圆柱螺旋线的轴线与坐标系的Z轴重合时,
圆柱螺旋线上动点M(x,y,z)的参数方程如下:
x=rcosa
y=rsma
z=±tl*a/(2TT)
在参数方程中:
r为圆柱面的半径,a为螺旋线升角,tl为导程(即母线AB旋转i周时,动点M沿轴线方向上升的距离),右旋取正号,左旋収负号。
程序代码
打开AutoCAD2000进入VisualLISP开发环境,新建一个文件.在VisualLISP文本编辑器窗口进行程序代码编制。
绘制圆柱螺旋线的AutoLISP程序代码如下:
;Tlusprogramisusmgfordrawingahelix
(setqbl(getpoint"请输入基点:
"))(setqr(getreal"半径r=:
"))
(setqtl(getreal"节距tl=:
"))
(setqk(getint"段数k=:
"))
(setqn(getmt"圈数n=:
'*))
(setqta(/(*23.14159)k))
(setqjl(/tlk))
(setqa0)
(setqjj0)
(setqli0)
(commandHucsMMoMbl)
(commandM3dpolyn(listr00))
(repeatn
(repeatk
(setqjj什JJ1))
(setqa(+taa))
(setqx(*r(cosa)))
(setqy(*r(sma)))
(setqz(*jljj))
(setqp2(listxyz))
(commandp2)
)
(setqli(+li1))
(setqz(*tlii))
)
(command)
在电子图版CAXA中用公式曲线画好,然后存为CAD的DWG文件即口J!
哈哈!
这是故省
事的做法!
应该用lisp代码比较好,但是好象很多人都不愿学那个
仃一种比校简单的亦法是用excel获得点坐标
1.新建一个excel表,al单尤格中输入1
2•在a2单元格输入公式:
=30*SIN(Al*PI()/180)
其中30是振幅卫1是指al单元格,PI()/180是把弧度转为角度
3•在a3单元格输入:
=A1&T&B1
为了在输入坐标时要用逗号把数字分开
4.在bl单元格中输入2”选中al-a3单元格,用句柄拖好bl-b3
5.选中al-b3,用句柄拖到第360行
&选中第三列,复制
7.在acad中点选pline命令,用鼠标点击命令行,按卜”ctrl+T"
祝成功
止确的程序应该是:
(defunc:
zx(/abcxyhos)
(setqa1)
(setqb2)
(setqc3)
(setqh0.01)
(setqx0.0)
(setqos(getvarwosmodew))(setvarwosmodew0)
(command"line"-0,0")
(while(<=x15)
(setqx(+xh))
(setqy(+Ca(sin(*xb)))c))
(command(listxy))
)
(commandm,)
(setvarMosmodef,os)
这样写更黄观、更好懂空(多用个局部变量p):
(defunc:
zx(/abcxyhpos)
(setqa1b2c3h0.01x0.0)
(setqos(getvar-osmode-))(setva「wosmodew0)
(command"line"-0,0”)
(while(<=x15)
(setqx(+xh))
(setqy(+(•a(sin(*xb)))c))
(setqp(listxy))
(commandp)
)
(command"M)
(setvar-osmode**os)
)
程序由三部分组成,主体和两个地位相同的子函数(局部的),主体完成周期、振幅和起点的输入与分析计算,子旳数「P完成正弦怖数值的计算并产生所需要的循环间图,子函数fp完成坐标值的平移和旋转变换,并将计算值合成点供rp使用:
(derunc.sl(/p1p2p3xOyOxyaudrtiTprp)
(defunfp(xy/xxyy)
(setqxx(-(*x(cosa))(*y(sina))))
(setqyy(+(*x(sina))(*y(cosa))))
(list(+xxxO)(+yyyO))
)
(defunrp(ndx)
(repeatn
(setqd(+ddx)x(*dc)y(sinx)x(*(/d180)h)y(*fy))
(command(fpxy))
(setqp1(getpoint"指定起点■)p2(getpointp1"指定终点J)
(setqp3(getpointp15指示振幅Jc(/pi180))
(setqxO(carp1)yO(cadrp1)h(distancep1p2)a(anglep1p2))
(setqx(-(carp3)xO)y(-(cadrp3)yO)f(-(*y(cosa))(*x(sina))))
(setqd0.0p3(getvar-osmode11))
(command"cmdecho"0wosmodeM0"spline"p1)
(rp65)(rp152)(rp601)(rp152)(rp55)
(commandp2ww初m,"osmodeMp3)
(pnnc)
)
这个程序只完成半个周期的绘制.实际使用中多半只需如此。
程序启动后需要输入三个点:
起点、终点和第三点p1.p2.p3,程序根据p1,p2计算半周期,将p3到p1.p2连线的览离作为振幅,同时p3任p1,p2连线的哪-边决定了曲线画在p1,p2连线的哪一边。
所冇CAD冇关点输入的方式与技巧.在此都适用.N却是用这个程序产生的螺旋推进器的图:
如果使用CAD11带的坐标旋转功能,则程序还可以进-步简化.另外7”与CAD的剖切指令的缩写同
名•好在三维指令使用的不多.并H此命令有工具按钮.所以冲突不大.改成其他的名称是很容易的。
EXCEL中如何画正弦曲线(sinx)发Z:
2007-8-1715:
16:
00冋吏
(1)
fujiard115
同学中午问到一个问题,即EXCEL中如何画正弦曲线,方法解答如F:
一设置x.y轴的值
X:
在第一列A中,取阳到A361(不为A360)为装载X轴数值的单元格,A1输入0.A2输入=A1+2*PI()/360(不能将二或右"遗忘),然后拖动填充町完成数据输入:
y:
同样取B1到B361.在B1中输入=sin(a1),然后拖动填充至B361完成数据输入。
二绘制曲线
选中Y轴的所有数据(即B1到B361),然后点常用工具栏里的“图表向导”按钮,弹出对话框,图表类型选择“XY散点图”,右边的子图表类型选择“无数据点平滑线散点图”,然后点击完成即可,也可点“下一步”设置图表上显示X,丫轴标志的字样。
说明:
步骤一中的单元格列数取360,是为了在最后的图表中显示0,360充到度数,如果取40,100也可以划出曲线,但横轴上标注的曲线X轴范闱是0-40和0-100,而不是0-360:
同时取值越多,曲线越平滑。
步骤二中的图表类型,也町以选择自定义或者“XY散点图”中子类型“平滑线散点图”等,只是效果不同。
川Autolisp在AutoCAD屮实现多种曲线的绘制
一、引言:
AutoCAD自1982年山Autodcsk公诃推出以來,经历了20年的发展更新,目前,已深入到包插机械、建筑、服装、航天航空、地质气彖等等的众多领域中.AutoCAl)己成为众名工程设计人员的首选设计软件,其格式也逐渐成为各CAD系统间的交换标准。
AutoCADZ所以有如此广泛的应用,除了其功能强大、易学易用外,还在于它是一个幵放的交互软件,自85年推出的2.17版中,AutoCAD就内嵌了Aulolisp语言,方便用户对其进行二次开发.自此,便有无数的工程技术人负成为Autodesk的编外程序如随<AutoCAD版本的不断升级,
它所支持的开发环境也不断增加,如:
ADS、ARX.DicsckDCL、VBA等等。
但山于方便和易学易用,Autolisp始终是技术人员在开发AutoCAD时运用最名的编程语言。
同时也有更名的工稈技术人员投入到Autolisp的学习之中来。
但是,毕竞Autolisp也是一种编程语言,学习起来远不如学习AiHoCAI)的操作來得简单。
故也有部分技术人员在学习过程中有危难请绪,针对这一情况,木人在此通过一种方法、三个例F来制述Autolisp编程的一般过程,希羞能对Autolisp初学者有所梧助。
二、Aulolisp的二次开发:
(一)问題提出:
尽管AutoCAD在各个领域中冇着广泛的应用,但总不会面面俱到,在机械行业中,经常要曲一些复杂曲线,*1:
三角曲数曲线、渐开线、螺旋线等等。
这些曲线住AutoCAl)中没有专门的命令,难以用一般的方法绘制,尽竹机械制图国家标准中有用圆弧近似替代渐开线和螺旋线的顾法,但它们-不冷确,不能通过装配干涉,二不方便,需耍取很多位辻点才济:
丽出.而用Autolisp编程绘制,却能快速准确的得到所需图形。
(二)曲线绘制:
1、获取曲线的数学模型:
正弦曲线:
x=a
渐开线:
rx=br*(cosa4-asina)
圆柱螺旋线:
rxrcosa
Jy-rsina
Iz=s»a/(2x)(s取正值为右旋、取负值为左旋)