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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1299|回复: 12
打印 上一主题 下一主题

點做图-宏的應用

[复制链接]

80

主题

291

帖子

168

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
476
跳转到指定楼层
楼主
发表于 2013-5-26 21:48:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

   经典图书
VBA的基本教材
' ******************************************************************************
' macro recorded on 05/26/13 by scliang
'
' 操作說明
'
' 1. 開SW檔,選前基準面(右或上皆可),進入草圖編輯,執行本程式.
' 2. 在 Option tips 對話表按 "Yes" 鍵,作"滿天星",在 X座標-50,Y座標-50到X座標50,Y座標50 ,之範圍內隨機作畫鍵入數量的 "點".
' 3. 在 Option tips 對話表按 "No" 鍵,作畫太極圖.
'
' ******************************************************************************
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Dim skPoint As Object
pi = 3.141592654
continue:
boolstatus = Part.Extension.SketchBoxSelect("-0.06", "-0.06", "0.000000", "0.06", "0.06", "0.000000") '
Part.EditDelete
c = MsgBox("Yes-->The stars in the sky,No-->Tai Chi picture", vbYesNoCancel, "Option tipe") '選擇"滿天星"或是"太極圖"
Select Case c
Case 6
point_number = InputBox("Key in the number", "Key in the number of tips", 100) '鍵入作圖點的數量
For i = 1 To point_number
X = Int((Rnd() * 50 + 1) - (Rnd() * 50 + 1)) / 1000
Y = Int((Rnd() * 50 + 1) - (Rnd() * 50 + 1)) / 1000
Set skPoint = Part.SketchManager.CreatePoint(X, Y, 0#) '點作圖
Next
Case 7
For j = 0 To 360 Step 2
X = (j / 6 - 30) / 1000
Y = 12 * Sin(j * pi / 180) / 1000
Set skPoint = Part.SketchManager.CreatePoint(X, Y, 0#)
X = 30 * Cos(j * pi / 180) / 1000
Y = 30 * Sin(j * pi / 180) / 1000
Set skPoint = Part.SketchManager.CreatePoint(X, Y, 0#)
Next j
End Select
Msg = "Do you want to continue ?" ' 定義訊息。
Style = vbYesNo ' 定義按鈕。
Title = "MsgBox Demonstration" ' 定義標題。
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then GoTo continue ' 若使用者按下 [是],就繼續執行。
End Sub


Point.rar (9.81 KB, 下载次数: 82) [2012版]VBA
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 转播转播 分享教程|习题|模型|技巧 点赞点赞19255 拍砖拍砖405
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复

使用道具 举报

9

主题

227

帖子

17

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
275
QQ
沙发
发表于 2013-5-26 21:49:54 | 只看该作者
梁兄真的佛心來的呀~~我等api文盲得好好拜讀研究~
謝謝您的無私分享。
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

15

主题

208

帖子

40

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
270
QQ
板凳
发表于 2013-5-26 21:50:49 | 只看该作者

   经典图书
神奇 ....
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

242

帖子

28

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
293
QQ
地板
发表于 2013-5-26 21:54:03 | 只看该作者
支持一下。。。。。。。。。。。。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

222

帖子

14

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
253
QQ
5#
发表于 2013-5-26 21:54:49 | 只看该作者

   经典案例图书
想问下楼主,我想用来完成新建一个基准面并且命名成我想要的名字,不知道怎么完成,
主要是建好基准面后,刚刚新建出来的基准面不是选中状态,所以不能紧接着改名字,不知道在里怎么选中刚刚建好的基准面,希望楼主指点下
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

11

主题

235

帖子

29

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
285
QQ
6#
发表于 2013-5-26 21:58:40 | 只看该作者
SolidWorks机械工程师论坛
如上參考看看
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

215

帖子

18

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
250
QQ
7#
发表于 2013-5-26 21:59:11 | 只看该作者

   经典案例图书
谢谢大师,选中默认的那3个基准面我会的,因为已经知道他们的名字,也许我的问题表达的不是太清楚,
比如我想把上视基准面偏移50mm,生成一个新的基准面,并且把这个新的基准面名字改为“面1”,用下图中的语句,在改基准面名称语句的前面,我就不知道怎么选中想要改名的基准面了,
因为在InsertRefPlane语句后生成的基准面的默认名称是不知道的,有可能是“基准面3”,也有可能是“基准面5”,不知道在这种情况下怎么才能选中?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

12

主题

261

帖子

31

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
305
QQ
8#
发表于 2013-5-26 22:03:23 | 只看该作者
試試如下:
1. XXXXX  對應剛建好的基準面名稱
2. 紅色框裡的 "False" 改為 "True"
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

200

帖子

14

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
219
QQ
9#
发表于 2013-5-26 22:06:47 | 只看该作者
关键是在执行到红色框这条语句的时候怎么知道刚建好的基准面名称是什么呢?所以XXXXX那里不知道怎么写了。
我觉得是不是要在这条语句前面加一个获取刚建好基准面名称的语句,再把获得的名称给到XXXXX位置,但是不知道怎么写获取刚刚建好的基准面名称的语句
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

15

主题

223

帖子

36

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
259
10#
发表于 2013-5-26 22:06:54 | 只看该作者

   经典图书
是否可以把"前面加一个获取刚建好基准面名称"先給個"自定義名稱",之後不就可以依名稱作選取了.
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

232

帖子

15

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
274
QQ
11#
发表于 2013-5-26 22:07:24 | 只看该作者
如下是把 "平面X" 改為  "平面A"
sub main()
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("平面X", &quotLANE", 0, 0, 0, True, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1, 0, "平面A")
End Sub
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

16

主题

227

帖子

39

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
279
QQ
12#
发表于 2013-5-26 22:10:27 | 只看该作者
明白了,谢谢ryouss大师指点
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

10

主题

246

帖子

26

金币

侠客

Rank: 3Rank: 3Rank: 3

积分
301
QQ
13#
发表于 2013-5-26 22:12:30 | 只看该作者
受梁兄感染,也来玩这个“点作图”,去发现作出来的点并不精准,很疑惑
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

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

手机版|小黑屋| GMT+8, 2025-6-26 13:03 , Processed in 0.334249 second(s), 25 queries , Memcache On.

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

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

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