autocad vba编程时候遇到的问题
Subsinl()Dimp(0To719)AsDouble'定义点坐标Fori=0To718Step2'开始画多段线p(i)=i*2*3.1415926535897/36...
Sub sinl()
Dim p(0 To 719) As Double '定义点坐标
For i = 0 To 718 Step 2 '开始画多段线
p(i) = i * 2 * 3.1415926535897 / 360 '横坐标
p(i + 1) = 2 * Sin(p(i)) '纵坐标
Next i
ThisDrawing.ModelSpace.AddLightWeightPolyline (p) '画多段线
ZoomExtents '显示整个图形
End Sub
我在AutoCAD中加入这段程序后可以绘制出一条正弦函数曲线,但是当我把程序改为下面:
Sub sinl()
Dim p(0 To 1440) As Double '定义点坐标
For i = 0 To 1440 Step 2 '开始画多段线
p(i) = i * 2 * 3.1415926535897 / 360 '横坐标
p(i + 1) = 2 * Sin(p(i)) '纵坐标
Next i
ThisDrawing.ModelSpace.AddLightWeightPolyline (p) '画多段线
ZoomExtents '显示整个图形
End Sub
就会出错 我原来是想绘制出范围更广的曲线的,没有想到会出现错误,小弟求诸位帮帮我!谢谢 展开
Dim p(0 To 719) As Double '定义点坐标
For i = 0 To 718 Step 2 '开始画多段线
p(i) = i * 2 * 3.1415926535897 / 360 '横坐标
p(i + 1) = 2 * Sin(p(i)) '纵坐标
Next i
ThisDrawing.ModelSpace.AddLightWeightPolyline (p) '画多段线
ZoomExtents '显示整个图形
End Sub
我在AutoCAD中加入这段程序后可以绘制出一条正弦函数曲线,但是当我把程序改为下面:
Sub sinl()
Dim p(0 To 1440) As Double '定义点坐标
For i = 0 To 1440 Step 2 '开始画多段线
p(i) = i * 2 * 3.1415926535897 / 360 '横坐标
p(i + 1) = 2 * Sin(p(i)) '纵坐标
Next i
ThisDrawing.ModelSpace.AddLightWeightPolyline (p) '画多段线
ZoomExtents '显示整个图形
End Sub
就会出错 我原来是想绘制出范围更广的曲线的,没有想到会出现错误,小弟求诸位帮帮我!谢谢 展开
展开全部
知其然,当知其所以然
画二维多段线的参数p数组中的元素必须是偶数,每1对数字代表1个点
您代码中的0-1440其实是1441个元素,缺少最后1个点的纵坐标数据,所以程序会报错
您的程序应该出自本人编写的Autocad VBA初级教程
在此感谢您的提问,我会在2020修订版中把这个问题再解释1下
画二维多段线的参数p数组中的元素必须是偶数,每1对数字代表1个点
您代码中的0-1440其实是1441个元素,缺少最后1个点的纵坐标数据,所以程序会报错
您的程序应该出自本人编写的Autocad VBA初级教程
在此感谢您的提问,我会在2020修订版中把这个问题再解释1下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
几点经验与技巧:
1、 线宽的显示
在AutoCAD的“图层”设置中新增“线宽”的特性,可以用粗线和细线清楚地表现出部件的截面,标高的深度,尺寸线和标记,以及不同的对象厚度,还可以为不同图层指定不同的线宽,这样就可以图形化地表示对象和信息。具有线宽的对象除了可以使用线宽值打印外,还可以显示线宽或通过输出具有线宽的对象到其它应用程序中,但用户不能用线宽特性来精确表示对象的宽度,所以如果对象实际是具有宽度的对象,最好还是使用“Polyline”命令制定复合线宽度来绘制。同时线宽的显示在模型空间和图纸空间布局中是不同的,在模型空间中,按像素显示线宽;而在图纸空间布局中,线宽以实际打印宽度显示。可以通过在线宽设置命令中设置线宽的显示比例来设置对象在模型空间内线宽显示的粗细,显示比例的改变不会影响线宽的打印值。
2、图形的打印方向与打印机的送纸方向
在“页面设置”对话框的“布局设置”选项卡“图形方向”实际是指图形在图纸上的打印方向,用一个字母A来表示,通过“横向”、“纵向”和“反向打印”来设置图形在图纸上的打印方向,使用“横向”设置时,要打印区域的长边是水平的,使用“纵向”打印时,要打印区域的短边是水平的。而一般的打印机或绘图仪,也有“横向”和“纵向”两种送纸方向,所以同一尺寸的图纸在“图纸尺寸”下拉菜单中列出两次,但这里的横向和纵向是指打印机内部判断图纸的方向,“横向”送纸指的是打印机将打印纸放入打印机的物理方向作为X轴的方向,从出纸口首先出来的是的图纸左边界,而“纵向”送纸是指打印机将打印纸放入打印机的物理方向作为Y轴方向,从出纸口首先出来的是图纸的上边界。所以在AutoCAD2000中修改图纸方向的效果就象是在图形下面旋转图纸,而要打印图形的位置不变。
3、机械设计与输出一体化的实现
我们在使用CAD进行辅助设计时,按照设计的步骤就应有设计草图、装配图、工程图(零件图),这些图之间应保持一定的关联关系:装配图与零件图依据设计图绘制;当修改设计即修改设计草图后,应能同时修改装配图与工程图,由于AutoCAD2000提供了布局以及页面设置等新功能,我们完全可以实现设计图、装配图以及零件图位于同一个文件中,但由于在这样的一个文件中,图线比较复杂,为了编辑和打印输出的需要,一般用不同的层和颜色进行管理,将设计草图、装配图以及零件图分别位于不同的层内,这样当要显示或者编辑某个零件的图线时,可以将其它层关闭或冻结,做到编辑操作不影响其它不相关的图线;同时对应要输出的每个零件图与装配图都要创建一个布局,若要输出某一个零件图,则在输出该布局的浮动视口中冻结其它层,即通过在激活的浮动视口中选择性地冻结图层以及平移和缩放模型空间的对象,就可以指定显示或输出模型空间中图型的不同部分。从而只显示和输出该零件的图线,而当设计者在模型空间修改设计后,布局中要输出的图形将自动更新。
由于没有安装打印机或想用别人高档打印机输入AutoCAD图形,需要到别的计算机去打印AutoCAD图形,但是别的计算机也可能没安装AutoCAD,或者因为各种原因(如AutoCAD图形在别的计算机上字体显示不正常,通过网络打印,网络打印不正常等),不能利用别的计算机进行正常打印,这时,可以先在自己计算机上将AutoCAD图形打印到文件,形成打印机文件,然后,再在别的计算机上用DOS的拷贝命令将打印机文件输出到打印机,方法为:copy <打印机文件> prn /b,须注意的是,为了能使用该功能,需先在系统中添加别的计算机上特定型号打印机,并将它设为默认打印机,另外,COPY后不要忘了在最后加/b,表明以二进制形式将打印机文件输出到打印机。
1、 线宽的显示
在AutoCAD的“图层”设置中新增“线宽”的特性,可以用粗线和细线清楚地表现出部件的截面,标高的深度,尺寸线和标记,以及不同的对象厚度,还可以为不同图层指定不同的线宽,这样就可以图形化地表示对象和信息。具有线宽的对象除了可以使用线宽值打印外,还可以显示线宽或通过输出具有线宽的对象到其它应用程序中,但用户不能用线宽特性来精确表示对象的宽度,所以如果对象实际是具有宽度的对象,最好还是使用“Polyline”命令制定复合线宽度来绘制。同时线宽的显示在模型空间和图纸空间布局中是不同的,在模型空间中,按像素显示线宽;而在图纸空间布局中,线宽以实际打印宽度显示。可以通过在线宽设置命令中设置线宽的显示比例来设置对象在模型空间内线宽显示的粗细,显示比例的改变不会影响线宽的打印值。
2、图形的打印方向与打印机的送纸方向
在“页面设置”对话框的“布局设置”选项卡“图形方向”实际是指图形在图纸上的打印方向,用一个字母A来表示,通过“横向”、“纵向”和“反向打印”来设置图形在图纸上的打印方向,使用“横向”设置时,要打印区域的长边是水平的,使用“纵向”打印时,要打印区域的短边是水平的。而一般的打印机或绘图仪,也有“横向”和“纵向”两种送纸方向,所以同一尺寸的图纸在“图纸尺寸”下拉菜单中列出两次,但这里的横向和纵向是指打印机内部判断图纸的方向,“横向”送纸指的是打印机将打印纸放入打印机的物理方向作为X轴的方向,从出纸口首先出来的是的图纸左边界,而“纵向”送纸是指打印机将打印纸放入打印机的物理方向作为Y轴方向,从出纸口首先出来的是图纸的上边界。所以在AutoCAD2000中修改图纸方向的效果就象是在图形下面旋转图纸,而要打印图形的位置不变。
3、机械设计与输出一体化的实现
我们在使用CAD进行辅助设计时,按照设计的步骤就应有设计草图、装配图、工程图(零件图),这些图之间应保持一定的关联关系:装配图与零件图依据设计图绘制;当修改设计即修改设计草图后,应能同时修改装配图与工程图,由于AutoCAD2000提供了布局以及页面设置等新功能,我们完全可以实现设计图、装配图以及零件图位于同一个文件中,但由于在这样的一个文件中,图线比较复杂,为了编辑和打印输出的需要,一般用不同的层和颜色进行管理,将设计草图、装配图以及零件图分别位于不同的层内,这样当要显示或者编辑某个零件的图线时,可以将其它层关闭或冻结,做到编辑操作不影响其它不相关的图线;同时对应要输出的每个零件图与装配图都要创建一个布局,若要输出某一个零件图,则在输出该布局的浮动视口中冻结其它层,即通过在激活的浮动视口中选择性地冻结图层以及平移和缩放模型空间的对象,就可以指定显示或输出模型空间中图型的不同部分。从而只显示和输出该零件的图线,而当设计者在模型空间修改设计后,布局中要输出的图形将自动更新。
由于没有安装打印机或想用别人高档打印机输入AutoCAD图形,需要到别的计算机去打印AutoCAD图形,但是别的计算机也可能没安装AutoCAD,或者因为各种原因(如AutoCAD图形在别的计算机上字体显示不正常,通过网络打印,网络打印不正常等),不能利用别的计算机进行正常打印,这时,可以先在自己计算机上将AutoCAD图形打印到文件,形成打印机文件,然后,再在别的计算机上用DOS的拷贝命令将打印机文件输出到打印机,方法为:copy <打印机文件> prn /b,须注意的是,为了能使用该功能,需先在系统中添加别的计算机上特定型号打印机,并将它设为默认打印机,另外,COPY后不要忘了在最后加/b,表明以二进制形式将打印机文件输出到打印机。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询