机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3546|回复: 5

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

[复制链接]
发表于 2019-6-8 14:12:22 | 显示全部楼层 |阅读模式
本帖最后由 jinjunbai 于 2019-6-8 14:17 编辑
% I: l+ E9 z- ?
$ @/ \) G. D$ f0 B  J& l$ e8 M今天尝试用VBA代码完成一个图形的绘制,发现程序自己录制的VBA执行都有问题,比如基准面,绘图的时候设置好,VBA中执行出来就没有了,请高手帮忙解决一下  |( h; g5 k' S

* ]5 o8 t% K& `4 \( M- Z; b  L代码如下:
- H  s4 o  u4 D. M2 n$ t; ~' ******************************************************************************5 X: {5 H& [6 i; w1 }
' C:\Users\admin\AppData\Local\Temp\swx11724\Macro1.swb - macro recorded on 06/08/19 by admin
0 N* \' |4 [) M' ******************************************************************************
( U  Z$ A# v# t+ n$ b6 h2 EDim swApp As Object
! A& y, T( r# y
4 Y7 {0 W4 v" N" z% MDim Part As Object
4 {$ M- U9 o$ w0 v# A/ @, KDim boolstatus As Boolean/ d3 B% z& \7 w
Dim longstatus As Long, longwarnings As Long
+ {; a0 o4 K/ R  g, J4 f9 b+ E$ O) j
& |2 [9 s7 s4 y0 d. lSub main()8 |) A, G4 I7 n( D* U2 F

% q: o8 d2 K3 `/ j4 h5 VSet swApp = Application.SldWorks2 I2 k# ~1 y5 L2 o  X

# l  N+ ?0 E# [$ F2 u
2 w$ l  f( [4 h. x" K# t% l$ w% I' New Document8 ~6 ~8 D* S. O( v! b
Dim swSheetWidth As Double
' ~% e* L$ A7 H: oswSheetWidth = 0  n! u" q+ z% v/ T& ?/ v
Dim swSheetHeight As Double
3 n+ ?% I8 y+ W7 a; sswSheetHeight = 0
9 ?  z9 Z, Q9 d. T3 M) Z5 h  C2 ]Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\SOLIDWORKS 2018\templates\gb_part.prtdot", 0, swSheetWidth, swSheetHeight)
. n+ P7 u9 W( B: V, A3 _( J" F! mDim swPart As PartDoc3 j( z  c0 Q5 G, r9 v0 L9 N3 ~
Set swPart = Part( b; {1 @- J. e
swApp.ActivateDoc2 "零件1", False, longstatus: {9 N5 t# g- T$ L- y* |' A
Set Part = swApp.ActiveDoc# r+ j; t) y; H7 {/ n9 j. |6 t
Dim myModelView As Object) U6 j6 n, ]+ W9 O8 A7 q
Set myModelView = Part.ActiveView
. A# ~: x+ `$ DmyModelView.FrameState = swWindowState_e.swWindowMaximized
( O5 J1 A' A2 b; W# ?boolstatus = Part.Extension.SelectByID2("注解", "DCABINET", 0, 0, 0, False, 0, Nothing, 0)3 H& M7 J" g; i
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
5 a% P+ Y; {, Y* x. `! B$ [% OPart.SketchManager.InsertSketch True" J7 @: D) q& |6 T) k
Part.ClearSelection2 True
$ A8 t( {* E6 d- D; ~8 zboolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstToRectEntity, swUserPreferenceOption_e.swDetailingNoOptionSpecified, False)
# d% `9 F8 f' P/ Dboolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstLineDiagonalType, swUserPreferenceOption_e.swDetailingNoOptionSpecified, True)6 l( v; O& ~4 `$ l
Dim vSkLines As Variant2 _  \0 U0 @- {
vSkLines = Part.SketchManager.CreateCornerRectangle(-4.03305583756345E-02, 3.97460575296108E-02, 0, 6.89710998307952E-02, -0.03010179357022, 0)
+ Q  F$ U: s1 m) g3 }3 A5 `6 Y5 f( F; h& h6 k3 F
' Named View0 q5 }8 }) O/ ?+ a; R
Part.ShowNamedView2 "*上下二等角轴测", 8: j! K* Y6 }  x; M" y; O
Part.ViewZoomtofit2- c. l/ c: [- V' ^
Dim myFeature As Object: g8 ]7 ]3 P% R+ u2 E2 l8 B3 y
Set 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)! D# k( L) W# T7 J  P
Part.SelectionManager.EnableContourSelection = False# m  T/ Y% {% A  W& q
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)+ `* P: s- n: l7 a' k
Part.ClearSelection2 True# ]. y" e- K' q9 `
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)  B' M& K0 D0 Z  |9 J, p% [
Part.ClearSelection2 True; H; P4 ]4 p) H% I* S: b) U
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
, ?9 n7 U& [3 o& L) X1 Yboolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, True, 0, Nothing, 0)
" u2 s3 O6 i: e+ u5 ]# F" y# I+ @Dim myRefPlane As Object
+ f4 |8 x+ T8 G9 v. f! PSet myRefPlane = Part.FeatureManager.InsertRefPlane(8, 0.01, 0, 0, 0, 0)
! R/ ?! q# w/ ^4 Y) Z1 O$ x! K5 q. q7 bPart.ClearSelection2 True
' N) E  B: {9 l# W$ N" Fboolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)) D: W7 x# G& n% Q
Part.ClearSelection2 True, Y  K# m* s! q% l- V9 b
Part.ClearSelection2 True. x, Z- V: n6 R" F/ U& N9 K1 J$ ]8 u
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstToRectEntity, swUserPreferenceOption_e.swDetailingNoOptionSpecified, False)
) B4 M) k0 B& Dboolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e.swSketchAddConstLineDiagonalType, swUserPreferenceOption_e.swDetailingNoOptionSpecified, True)/ n# P0 g! q8 i9 p5 J$ j+ D7 p
vSkLines = Part.SketchManager.CreateCornerRectangle(-1.26249913529932E-02, 1.98473013094258E-02, 0, 4.43244050501335E-02, -1.64793375533918E-02, 0)
0 y0 ^' H- r, D# `2 N& YSet 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)8 N9 n$ \1 ^- j$ N
Part.SelectionManager.EnableContourSelection = False
. V9 w1 P+ Y0 m4 vEnd Sub
0 h) j3 `) h. i1 ?
" n& k! Z* ?) p! V9 `  `$ G2 Y. g3 L- y. i* _9 T9 b

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2019-6-8 16:00:55 | 显示全部楼层
SW录制的部分动作不会记录,需要对二次开发的语句有一定了解才能修改,建议看一下API帮助文档入门后再提问。
回复 支持 反对

使用道具 举报

发表于 2019-6-8 16:29:15 | 显示全部楼层
先说清楚自己想实现什么动作
. _, T. q$ k' \
回复 支持 反对

使用道具 举报

 楼主| 发表于 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-2-19 06:26 , Processed in 0.065783 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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