找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 33705|回复: 50
打印 上一主题 下一主题

[原创] 笨笨教新手之十——35行代码!解决公式曲线输入

[复制链接]
跳转到指定楼层
1
发表于 2006-10-1 19:18:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
教程来源
        从见到SW2001到学习2003一直到现在的2007,骚窝好像对公式曲线的输入一直不屑一顾。自己甚至为SW2005编写过一个小的插件——笨笨曲线,来进行这个工作。但是编写过程中发现90%的工作量都来自对用户输入的判读和安全运算,因此中途停止了开发工作。而且到了SW2006中发现API并不是全部兼容的,这样的工作量实在不是笨笨这个业余爱好者所能承受的。这次又见到这个问题,干脆把程序中最精华的代码写成宏,由有使用者自行直接更改代码来运行,一个三百多行代码的插件转眼间变成了一个只有35行代码的宏文件。虽然没有人机交互界面,但是功能却比原来强大了许多。
        本教程下载:https://www.3dportal.cn/discuz/thread-102121-1-1.html
教程目的:
        使用最简单的方法解决SOLIDWORKS的公式曲线绘制问题,包括二维曲线、三维曲线,支持加减乘除、乘方、级数、对数、三角函数……所有数学运算。但是对于分段函数,由用户自己解决。
        笨教程分为两个部分,前面讲述这个宏的使用方法,后面讲述宏的编写过程。
       
阅读需求:
简单的Solidworks2007应用基础,会用宏的基本操作,简单的VB6应用基础。这些都在笨笨的另一篇教程《笨笨教新手之八——最简单二次开发步骤》里面有所提到。

[ 本帖最后由 SW笨笨 于 2006-10-1 19:29 编辑 ]

评分

参与人数 1技术 +3 收起 理由
菜豆 + 3 教程做的非常棒!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 赞一下!赞一下!
2
发表于 2006-10-1 19:20:53 | 只看该作者
废话少说,先来实惠的。这是宏文件下载。笨笨写的宏文件,已经写了很详细的注释,大家下载后可以编辑成自己喜欢的公式然后运行得到曲线。

!!!注意不适合分段函数,比如Y=1/X,这样的函数请分段分别求解!!!

这是修改单位为mm的宏


[ 本帖最后由 SW笨笨 于 2006-10-1 20:32 编辑 ]
3
发表于 2006-10-1 19:24:21 | 只看该作者
用法:
在图中两处代码中,=后面输入相应的代码或方程式。凡是VB中支持的函数运算的表达方法都可以使用,包括加减乘除,乘方,三角函数,对数,甚至逻辑运算……使用方法用VB帮助来搜索就行了。需要高中的代数方程知识:
4
发表于 2006-10-1 19:26:21 | 只看该作者
举例:二次变距的八字截面螺旋函数曲线

解:设XY为横截面,Z方向为螺距,使用曲线XY截面投影点与X轴夹角为参数t,
        x = 10 * Sin(2 * t)
        y = 16 * Cos(t)
        z = 0.1 * t ^ 2 + 1
将参数方程写入宏,参数t的范围取0-10,精度0.3。

[ 本帖最后由 SW笨笨 于 2006-10-4 11:23 编辑 ]
5
发表于 2006-10-1 19:27:55 | 只看该作者
下面来讲编写过程
第一步:取得应用函数及用法
打开Solidworks2007,首先打开宏的录制,对新建零件、插入3D草图、画三维样条曲线、退出草图的动作进行录制。完成后关闭宏的录制,打开编辑这个宏。这些请参考《笨笨教新手之八——最简单二次开发步骤》,使用编辑宏,打开刚刚录制的宏,找到画曲线的函数以及用法。不啰嗦了,那个教程里面已经很详细了。
6
发表于 2006-10-1 19:28:33 | 只看该作者
第二步:更改宏
1、新建零件
这是从别人那里学来的方法,比自动生成的用起来更方便。

'建立新零件
    Set swApp = Application.SldWorks
    Set Part = swApp.NewPart
    Set Part = swApp.ActiveDoc

2、声明部分
添加所需要的参数t及其范围和精度,计数器n,函数变量x,y,z的声明,注意数据类型的使用

'程序需要的变量声明
Dim n As Long 'SW曲线点的计数器

Dim x As Currency
Dim y As Currency
Dim z As Currency

Dim t As Currency '简化计算所用的参数变量
Dim tMax As Currency
Dim tMin As Currency
Dim tStep As Currency

3、运算和绘图部分
绘图部分只有一个函数,就是曲线的创建函数,通过运算得到各个点数值,并进行运算和绘图。整体采用最简单的循环语句,参数从小到大按照精度依次变化。
For t = tMin To tMax Step tStep
    '给定公式
        x = t
        y = t ^ 3 + 5 + t ^ 2 - 1   
        z = 0
'绘图
Part.SketchSpline n, x, y, z

'循环计数
n = n - 1

Next t

第三步:调试
如果有报错,看看是否在运算过程中出现了分母为0的情况,也就是出现了函数的分段情况,适当更改函数的范围就可以了。
7
发表于 2006-10-1 20:26:56 | 只看该作者
不错,还有注释。。。
8
发表于 2006-10-1 20:34:29 | 只看该作者
原帖由 菜豆 于 2006-10-1 20:26 发表
不错,还有注释。。。


没注释不方便别人用啦,嘻嘻。也方便自己改程序呦
9
发表于 2006-10-1 21:14:45 | 只看该作者
顶!
10
发表于 2006-10-1 21:18:04 | 只看该作者
国庆大礼,谢笨笨兄!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-2-7 23:02 , Processed in 0.027723 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

快速回复 返回顶部 返回列表