SolidWorks机械工程师网——最大的SolidWorks学习平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3204|回复: 50
打印 上一主题 下一主题

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

[复制链接]

83

主题

294

帖子

160

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
477
QQ
跳转到指定楼层
楼主
发表于 2006-10-1 19:18:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

   经典图书
教程来源
从见到SW2001到学习2003一直到现在的2007,骚窝好像对公式曲线的输入一直不屑一顾。自己甚至为SW2005编写过一个小的插件——笨笨曲线,来进行这个工作。但是编写过程中发现90%的工作量都来自对用户输入的判读和安全运算,因此中途停止了开发工作。而且到了SW2006中发现API并不是全部兼容的,这样的工作量实在不是笨笨这个业余爱好者所能承受的。这次又见到这个问题,干脆把程序中最精华的代码写成,由有使用者自行直接更改代码来运行,一个三百多行代码的插件转眼间变成了一个只有35行代码的文件。虽然没有人机交互界面,但是功能却比原来强大了许多。
本教程下载:SolidWorks机械工程师论坛
教程目的:
使用最简单的方法解决SolidWorks机械工程师论坛的公式曲线绘制问题,包括二维曲线、三维曲线,支持加减乘除、乘方、级数、对数、三角函数……所有数学运算。但是对于分段函数,由用户自己解决。
笨教程分为两个部分,前面讲述这个的使用方法,后面讲述的编写过程。

阅读需求:
简单的Solidworks2007应用基础,会用的基本操作,简单的VB6应用基础。这些都在笨笨的另一篇教程《笨笨教新手之八——最简单二次开发步骤》里面有所提到。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享教程|习题|模型|技巧 点赞点赞17230 拍砖拍砖1912
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

10

主题

215

帖子

22

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
251
QQ
沙发
发表于 2006-10-1 19:18:57 | 只看该作者
废话少说,先来实惠的。这是文件下载。笨笨写的文件,已经写了很详细的注释,大家下载后可以编辑成自己喜欢的公式然后运行得到曲线
!!!注意不适合分段函数,比如Y=1/X,这样的函数请分段分别求解!!!
这是修改单位为mm的

[ 本帖最后由 SW笨笨 于 2006-10-1 20:32 编辑 ]
笨笨曲线宏ForSW2007.rar (23.96 KB, 下载次数: 11)
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

11

主题

244

帖子

26

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
282
QQ
板凳
发表于 2006-10-1 19:19:05 | 只看该作者

   经典图书
用法:
在图中两处代码中,=后面输入相应的代码或方程式。凡是VB中支持的函数运算的表达方法都可以使用,包括加减乘除,乘方,三角函数,对数,甚至逻辑运算……使用方法用VB帮助来搜索就行了。需要高中的代数方程知识:
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

219

帖子

16

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
251
QQ
地板
发表于 2006-10-1 19:19:40 | 只看该作者
举例:二次变距的八字截面螺旋函数曲线
解:设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。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

215

帖子

21

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
251
QQ
5#
发表于 2006-10-1 19:20:22 | 只看该作者

   经典案例图书
下面来讲编写过程
第一步:取得应用函数及用法
打开Solidworks2007,首先打开的录制,对新建零件、插入3D草图、画三维样条曲线、退出草图的动作进行录制。完成后关闭的录制,打开编辑这个。这些请参考《笨笨教新手之八——最简单二次开发步骤》,使用编辑,打开刚刚录制的,找到画曲线的函数以及用法。不啰嗦了,那个教程里面已经很详细了。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

210

帖子

13

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
230
6#
发表于 2006-10-1 19:21:18 | 只看该作者
第二步:更改
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的情况,也就是出现了函数的分段情况,适当更改函数的范围就可以了。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

13

主题

223

帖子

42

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
290
QQ
7#
发表于 2006-10-1 19:22:01 | 只看该作者

   经典案例图书
不错,还有注释。。。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

220

帖子

27

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
271
QQ
8#
发表于 2006-10-1 19:22:05 | 只看该作者
没注释不方便别人用啦,嘻嘻。也方便自己改程序呦
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

217

帖子

25

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
262
QQ
9#
发表于 2006-10-1 19:22:08 | 只看该作者
顶!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

202

帖子

29

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
250
QQ
10#
发表于 2006-10-1 19:22:52 | 只看该作者

   经典图书
国庆大礼,谢笨笨兄!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

254

帖子

27

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
281
11#
发表于 2006-10-1 19:22:54 | 只看该作者
多谢,学习学习。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

8

主题

216

帖子

24

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
258
QQ
12#
发表于 2006-10-1 19:23:39 | 只看该作者
厉害!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

221

帖子

21

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
265
QQ
13#
发表于 2006-10-1 19:23:43 | 只看该作者
不懂二次开发.但这确实是个好东西,强顶
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

217

帖子

33

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
266
QQ
14#
发表于 2006-10-1 19:24:03 | 只看该作者
学习
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

220

帖子

19

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
256
QQ
15#
发表于 2006-10-1 19:25:54 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

笨笨大大的教程的确做得很好,受教了,谢谢!
不过大大在4楼的一句话:“二次变距的八字截面螺旋函数曲线(这个恐怕没有软件能够建模的,嘻嘻)”却未必见得。请看我按你的方程建模所作的图,而且精度完全超过你的要求。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

235

帖子

31

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
287
QQ
16#
发表于 2006-10-1 19:26:49 | 只看该作者

   经典案例图书
SW笨笨先生的教程很好,以简单方法解释如何善用SW的 二次开发
但是,偶还是比较欣赏w_hs先生的扫描方式,得到曲线的精度高。
SW笨笨先生以离散数据绘画样条曲线,只能像而不能准,
以这样的曲线作为基础继续建立模型的话,可能会带来隐患,
因此在实际用途上,还是w_hs先生的方法比较好,既灵活又准确。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

265

帖子

31

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
321
QQ
17#
发表于 2006-10-1 19:26:52 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

还是笨笨大大的办法好,他的办法具有普遍性。我的做法只能对每一种曲线专门做模型,自然不够方便。我的做法只是想说明用模型来做虽然不太方便但也还是可以的罢了。老实说,我还正在学习和品味笨笨大大的办法呢。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

230

帖子

35

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
281
QQ
18#
发表于 2006-10-1 19:27:09 | 只看该作者

   经典案例图书
两种方法都应该有自己的应用范围吧。
苯苯老大的应该比价方便应用,
而大侠的,并不是一般人都可以用的,每个不同的方程都要重新思考的。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

17

主题

219

帖子

44

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
293
QQ
19#
发表于 2006-10-1 19:27:33 | 只看该作者
这个跟笨笨想的一样谢谢,还是把那句话改了吧,是有一点味道……
螺旋曲面和外形曲面交线法,这是对于螺旋类曲线的通用做法,以前用过也讲许多次了,优点是:
    1、精度高,拥有理论准确性。2、适合各种线型、非线性截面的螺旋曲线
但是缺点就是:
    1、操作比较复杂,建模时间和操作步骤要多得多。2、针对某些特定情况,比如有中心交叉或者是自相交的公式曲线,那将是很难作出来的或者操作非常繁琐。3、只能用于这类螺旋曲线,方法的应用范围比较小。
所以一般对于新手,笨笨不推荐螺旋曲面方法。而对于商业应用,精度上当然优于,关键看应用的目标性质如何。
另:这个的方法与使用EXCEL的方法是一样的道理,大家参考。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

9

主题

247

帖子

28

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
288
QQ
20#
发表于 2006-10-1 19:27:53 | 只看该作者
完全没有用到螺旋曲面或外形曲面啊,前面两个螺旋线只是用来生成一条正弦曲线和一条余弦曲线,第三个螺旋线是为了改善扫描精度而设置的引导线。
      同意笨笨大大的说法,此法我一般只用于做练习题和考验软件的适应性而已,这次拿出来也仅仅是说明建模并非不可解罢了,别无他意。我的此法由于对不同方程要分别建模(虽然也没有用曲面交线等复杂方法),自然不如笨笨大大的方法通用性比较好,故此我也在学习和品味笨笨之法呢。
      再次谢谢笨笨大大的教程。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭 卷起
关闭 卷起

SOLIDWORKS 2023 机械设计从入门到精通

手机版|小黑屋| GMT+8, 2024-9-26 00:25 , Processed in 0.424630 second(s), 26 queries , Memcache On.

SolidWorks机械工程师网 ( 鲁ICP备14025122号-2 ) 鲁公网安备 37028502190335号

声明:本网言论纯属发表者个人意见,与本网立场无关。
如涉版权,可发邮件: admin@swbbsc.com

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