马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
3 t z2 p! z8 H! u+ [* s
◆◆关注智诚科技微信公众号ICT1994◆◆
/ S w2 \ F. w最近一直在做标准件二开的相关工作,不过由于年中工作较多,导致进度比较缓慢。文章也没有更新,这厮泼猴不是在撸啊撸上分,就是开刀塔三秒选大圣。而笔者最近也沉迷辐射避难所养小人而不能自拔,噫!
K/ I- [- Q" `) a2 t- i5 c0 D) `7 F7 T! \/ r; }2 t4 c# }
不过,还是有实质的东西我还是能拿出来给诸位用用的。鄙人根据国标做了一个半圆头带椓螺栓的一键生成宏。不过暂时只支持Solidwork2017版本。根据以后反应我再修改成低版本使用(主要还是懒!)。 + w( J( V& e" J9 M* K
8 P# A/ R, T i0 b& J" d8 }最近发现很多同鞋都在询问有没有关于二次开发的资料。鄙人老实说,其实是有的,随便一家淘宝或者京东找Solidwork的教程书籍找到二次开发的就可以了。不过鉴于内容过于苦涩,枯燥。这里我笼统讲解一下Solidwork二次开发代码的基础架构。
- M* `- F" g% |' t5 _8 N* ~ k
& b) P5 u4 _9 X% o+ o# c" b# j7 V0 d" Q, F' c: X. F
! h, q! {6 }# G2 d
http://img.xdnphb.com/ueditor/edit/upload/image/20180727/1532681778735068500.png; s0 |5 t J' ~, H t
: |# u, \3 y" O+ n' N: s
- s' Y" ~' ^8 @$ J% T: G6 P+ Z( R6 P9 D4 N( C
大家肯定不会凭空徒手编写一个完整的能运行的SW宏,或者无间断不停歇地从头到尾录制一个自己完整建模的SW宏。相信大家在抱住学习第一的心态,在看完这篇文章以后........
l' J3 t$ o# K6 z' n P
3 T: R. }% @: g# l# Z+ F3 i
5 o' q1 F z6 h$ Y
) U6 l# A i) n% b/ m* S, k8 S9 W! y- k: j$ }, Y* o
$ B- X; `+ r5 q( H
5 v @1 T, d; \
) I I6 Q. z2 U* l5 J [& g
7 y+ ]8 |8 v' @% z3 u1 K0 e b! g% R' o* F- h% k
/ n m, e+ \% T2 _) u. n6 }6 I! ^ P3 R; Z3 i
也是不会的,别想太多。 - e% j, T6 w. J# w
7 b+ [+ H" i9 d3 b/ ]
记代码这么麻烦的事情我是不会做的,所以下面我们拿最常用的录制宏所生成的代码给诸位作讲解之用。 随便录制一个宏,简单操作一下Solidwork界面。甚至不操作,直接结束保存都可。保存完毕后,选择编辑我们刚刚新录制的Solidwork宏。可以发现如下几条祖传代码。
; ?9 R3 E4 f9 j: ]Set swApp = Application.Sldworks
O4 B# o- Z7 W8 c6 B9 D(此语句基本上为所有SW宏开发的基础语句,除非该宏内容不涉及任何SW文件) 7 W/ n8 `6 ]) d7 q
Set swModel = swap.ActiveDoc
; I: y3 i. y+ U* k2 c(此语句基本上为所有基于现开启的SW文件的宏开发基础语句,除非该宏内容不涉及任何SW文件。重点说明一下,此语句几乎在所有录制宏操作中都出现,但实际上,并不是所有功能都基于此语句。定义改语句后,此后几乎所有现模型参数的调用皆基于此swModel) * P" k+ @% H W
上文第一句定义swApp这条语句为基础语句。这里要简单讲解一下sw宏的字段。以添加sw配置特定属性这个功能为例。(下面语句要视乎Solidwork版本是否兼容,例子以Solidwork2017为例)
, P, `* a8 M1 x4 c( p# FSub main() Set swApp = Application.Sldworks Set swModel = swap.ActiveDoc swModel.AddCustomInfo3 ”默认”, ”添加的属性”, swCustomInfoText, “See me!” End sub 例1-1
/ O1 ~& T6 r$ U+ x上面所示短宏(例1-1)即为我们的开启文件添加了一个配置特定的属性,对应的属性名字为”添加的属性”,值为”See me!”。而事实上,上面语句可以简单缩短为一句。(下面语句要视乎Solidwork版本是否兼容,例子以Solidwork2017为例)
6 p; K" k5 h# ~! u9 MSub main() Application.Sldworks.ActiveDoc.AddCustomInfo3 ”默认”, ”添加的属性”, swCustomInfoText, “See me!” End sub 例1-2 3 o. t: K& k4 G! T& k0 V% P: B: ?7 R
上面所示短宏(例1-2)同样实现了我们例1-1的功能。相比之下,例1-2更加简短,精炼。不过,由于在实际开发中我们并不是单单为了实现一个简单的功能,如果我们每条代码都从源(Application)开始调用成员,代码会变得相到冗余。需调用的功能越多,你就会发现其实例1-1的编码思路越简洁。所以,在实际开发中我们还是提倡使用例1-1的编码方式。
! C2 Z$ ~5 M7 n5 |! B1 o因此,从上述例子对比可以知道,SW宏的编程其实是基于已有角色一个一个选取调用数据参数来实现对应功能。在代码中将我们常用的角色设置为变量后,后续参数的变更或者增删就可以直接基于此变量,无需再从源头开始抽调。设置后的变量地位类似于在VB中Option Base所设置的参数一样,可以重复使用。 ; z9 q% ^" p- F; J
了解了SW宏的角色调用后,现在回到我们最基础的swApp变量中。在上面的举例中我们所设置生成的swModel参数,其实是将调控对象设置在现开启的模型中(ActiveDoc)。当然,除此之外我们还能将swModel设置成如获取Solidworks窗体大小,Solidworks窗体的控制等等其他功能,更详细的设置可以查阅ISldWorks member栏目。(Solidwork官网API栏目,ISldWorks对应swApp类型)学有余力或者闲得蛋疼的童鞋们可以去看一下。全部都是拼音而已(喂!),简单得很。
! {. a' P7 i! r0 U7 t% @7 o3 ^
: d6 C+ X( Q/ R以上就是本文全部内容。个人感觉还是比较简单,不难理解。好事者完全可以上官网看看相关的角色代码。代码这事情,最好还是多测试,多debug。接下来等再有时间才填下一个坑吧。 · · · · · · · · · · · ·
) H' |" D$ R- D" U3 C _4 K5 S6 Y
9 k* s0 i6 h+ w2 f% v$ H! z7 k
6 B- Y& D: W$ @$ n% L- B+ w! Q |