找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4212|回复: 5

solidworks自己录制的VBA代码有问题

[复制链接]
发表于 2019-6-8 14:12:22 | 显示全部楼层 |阅读模式
本帖最后由 jinjunbai 于 2019-6-8 14:17 编辑
! B( |0 p0 A/ H+ A8 {6 @- r' |+ l! {' k# i' F9 X. q
今天尝试用VBA代码完成一个图形的绘制,发现程序自己录制的VBA执行都有问题,比如基准面,绘图的时候设置好,VBA中执行出来就没有了,请高手帮忙解决一下% ?/ U0 ~  W9 w9 u2 ]5 g& K6 c

" G( a0 y& i& i+ ]6 g# v代码如下:/ U0 H& G' u! Z4 U5 O
' ******************************************************************************4 F4 D0 T+ p6 l1 C- W
' C:\Users\admin\AppData\Local\Temp\swx11724\Macro1.swb - macro recorded on 06/08/19 by admin
. R# g3 W1 x4 S  r# F' ******************************************************************************
3 S6 I- A$ @2 n& |5 U& EDim swApp As Object. `# Z" c  Q) w) v, E

* u- G' a( \1 F2 o6 S, WDim Part As Object
' T* A3 M# Q% Z5 b4 gDim boolstatus As Boolean
. o* h6 h% f. \' y5 IDim longstatus As Long, longwarnings As Long/ U5 n0 b+ A/ i# v: [! W  r
3 f7 `3 Q, s4 o4 N
Sub main()
5 K# n; n/ q2 h) ~0 y+ b  b1 o8 c  r2 t% l2 ^, s- ^* }
Set swApp = Application.SldWorks
7 Q$ B0 V: `0 ?5 }/ q% ~/ c4 v( p9 v7 z" {1 A3 S" m0 K1 g4 ]% G
5 R5 E& v8 K$ g- ]8 K, n: ~( v
' New Document( z. q8 W$ E$ m6 V3 ^
Dim swSheetWidth As Double3 R  y1 k" c- O7 g: ]" n. Q) T/ q; ^
swSheetWidth = 0
& @+ o, G; z3 F# L8 LDim swSheetHeight As Double/ A2 g! d5 O& A/ x# n
swSheetHeight = 0! f8 j" f2 j" `
Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2018\templates\gb_part.prtdot", 0, swSheetWidth, swSheetHeight)6 F3 S, z3 H& `) _4 v* ^7 r. N! ~. T
Dim swPart As PartDoc" j  T" g7 W7 A9 S3 ?/ Q
Set swPart = Part
: R2 q4 Y; {% OswApp.ActivateDoc2 "零件1", False, longstatus
( {4 ~* B) D% V( M- DSet Part = swApp.ActiveDoc
7 e. a) d5 v" l+ G0 W1 r7 m2 hDim myModelView As Object
# k! q: @9 Z! Q- x6 u% n" y0 P, \Set myModelView = Part.ActiveView' v+ g2 x) x2 ~
myModelView.FrameState = swWindowState_e.swWindowMaximized- \- V5 y9 t  y$ ?7 v+ x
boolstatus = Part.Extension.SelectByID2("注解", "DCABINET", 0, 0, 0, False, 0, Nothing, 0), u) N* r: P3 W7 J
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
/ F5 M' r  K! g; W. XPart.SketchManager.InsertSketch True
2 s) Y9 _" P1 ~, u/ ^& I) a. a: EPart.ClearSelection2 True
7 }' ~2 u- z. |0 H7 Aboolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstToRectEntity, swUserPreferenceOption_e.swDetailingNoOptionSpecified, False)' O. F) g4 ~$ q+ S% Y% N! y6 u
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstLineDiagonalType, swUserPreferenceOption_e.swDetailingNoOptionSpecified, True)
' p; V+ R9 p! i" A; l- nDim vSkLines As Variant% l9 ?# n* e3 n3 w0 h' O
vSkLines = Part.SketchManager.CreateCornerRectangle(-4.03305583756345E-02, 3.97460575296108E-02, 0, 6.89710998307952E-02, -0.03010179357022, 0)
. H4 L+ H- K# h# T4 E
0 @0 u+ T) }4 M( L) R& W/ c/ }' Named View, U' }; a' j  j/ t2 U4 T
Part.ShowNamedView2 "*上下二等角轴测", 8
* S5 M) z! {! i( t" s$ R* v7 fPart.ViewZoomtofit2
) }5 o( d, f! ^5 @# l  ~5 xDim myFeature As Object
* N9 E9 R# \- e* r5 p' uSet myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)+ G) J' |; X3 E3 a% P$ `8 ?  I! b
Part.SelectionManager.EnableContourSelection = False) J$ Z% a. f6 B! }/ y( y/ ?
boolstatus = Part.Extension.SelectByRay(-1.52826298517539E-02, 1.47929888240128E-02, 9.99999999999091E-03, -0.400036026779312, -0.515038074910024, -0.758094294050284, 5.70826886238244E-04, 2, False, 0, 0)
" ~+ l  r- T1 l. c8 d6 qPart.ClearSelection2 True! u& ?" ~( _8 F4 r- |- K% C; \
boolstatus = Part.Extension.SelectByRay(-1.52826298517539E-02, 1.47929888240128E-02, 9.99999999999091E-03, -0.400036026779312, -0.515038074910024, -0.758094294050284, 5.70826886238244E-04, 2, False, 0, 0)1 |: n# z7 |2 m% a
Part.ClearSelection2 True0 M& j/ e7 N: \+ M- \2 B4 `
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
6 Z( v+ V. G2 M. G8 y1 J- eboolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
4 d# o$ R1 j8 u4 E/ ]0 BDim myRefPlane As Object
- e% q, V1 @% f' `$ P2 XSet myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.01, 0, 0, 0, 0)
* R- k! m. U2 Z  |9 OPart.ClearSelection2 True
. W: j) ~( U3 H$ W4 x1 Aboolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
4 L, M; [2 ~/ Q/ |Part.ClearSelection2 True
* C0 L$ _6 l% l$ xPart.ClearSelection2 True
. `4 S) k$ E* \- ?; Bboolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstToRectEntity, swUserPreferenceOption_e.swDetailingNoOptionSpecified, False)
6 G3 [# D* O& @( P+ lboolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstLineDiagonalType, swUserPreferenceOption_e.swDetailingNoOptionSpecified, True): e# f2 m+ R$ v/ S$ e' n5 \! y
vSkLines = Part.SketchManager.CreateCornerRectangle(-1.26249913529932E-02, 1.98473013094258E-02, 0, 4.43244050501335E-02, -1.64793375533918E-02, 0)
$ T5 w) H' c! @9 S+ s7 XSet myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.01, 0.01, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)
/ s" e( d! f1 I" b1 RPart.SelectionManager.EnableContourSelection = False6 ~. v3 m! N8 h
End Sub' y( o! q  j2 m6 |0 v: |9 ~, X7 u

3 w5 K5 U6 c" }& d
) I1 n, J3 S) R' H2 v0 A

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2019-6-8 16:00:55 | 显示全部楼层
SW录制的部分动作不会记录,需要对二次开发的语句有一定了解才能修改,建议看一下API帮助文档入门后再提问。
发表于 2019-6-8 16:29:15 | 显示全部楼层
先说清楚自己想实现什么动作  q8 A' ]. [: B% J6 r, j( v
 楼主| 发表于 2019-6-8 16:49:25 | 显示全部楼层
问题已经搞定
发表于 2019-6-8 20:20:08 | 显示全部楼层
这样都是C语言吗
发表于 2019-6-8 22:28:52 | 显示全部楼层
进阶功能^_^
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-8-10 13:22 , Processed in 0.074149 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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