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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: zzc17205
打印 上一主题 下一主题

【讨论】ISWXL 互动工具

[复制链接]

5

主题

42

帖子

28

金币

天使

Rank: 2Rank: 2

积分
80
QQ
21#
发表于 2017-9-14 20:05:14 | 只看该作者

   经典图书
执行SaveAll与CloseAll指令时,会产生错误;
初步怀疑是"档案名称与副档名"分离造成的;
有尝试着修改,还是没能成功;
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

3

主题

35

帖子

19

金币

天使

Rank: 2Rank: 2

积分
69
QQ
22#
发表于 2017-9-20 12:34:56 | 只看该作者
谢谢benson同学
改为以下代码即可解决
Function SaveallFunction()
RowNumber = HeaderRow + 1
PathName = Cells(RowNumber, HeaderPath) & ""
While Not (PathName = "")
  RowNumber = RowNumber + 1
  PathName = Cells(RowNumber, HeaderPath)
Wend
For i = RowNumber - 1 To HeaderRow + 1 Step -1
  If CursorVerticalFollow Then Cells(i, HeaderPath).Select
  PathName = Cells(i, HeaderPath) & ""
'  FileName = Cells(i, HeaderFileName) & ""
  FileName = Cells(i, HeaderFileName) & Cells(i, HeaderExtension)
  If FileName <> Cells(i - 1, HeaderFileName) & "" Then
  FileExtName = UCase(Right(FileName, 6))
  If "SLDPRT" = FileExtName Then swFileType = 1
  If "SLDASM" = FileExtName Then swFileType = 2
  If "SLDDRW" = FileExtName Then swFileType = 3
  If "SLDLFP" = FileExtName Then swFileType = 1
  Set swDoc = swApp.OpenDoc(PathName & FileName, swFileType)
  Dim lErrors As Long
  Dim lWarnings As Long
  swDoc.Save3 9, lErrors, lWarnings   '8 = AvoidRebuildOnSave, 1 = Silent
  End If
  Cells(i, HeaderPath).Interior.Color = RGB(255, 176, 112)
Next
End Function

复制代码
SolidWorks机械工程师网
提示:建议使用谷歌浏览器浏览本网站!如单击这里下载!否则,可能无法下载附件文件!(支持大多数版本的谷歌浏览器,支持360和QQ浏览器的极速模式,即谷歌内核模式,使用IE和Edge浏览器,浏览个别网页以及下载文件时,会误报“***不安全”,此时需要单击“继续访问此不安全站点(不推荐)”才可以继续下载,另外,本网站不含任何不安全的文件,已联系微软公司解决,纯属IE和Edge浏览器误报)
回复 支持 反对

使用道具 举报

4

主题

35

帖子

23

金币

天使

Rank: 2Rank: 2

积分
84
QQ
23#
发表于 2017-9-22 04:42:38 | 只看该作者

   经典图书
正常的, 情况就是过去大佬所说的“缓冲加速后遗症”.

与Preview按钮的运行原理并不相同.

Rename的Preview是调用SldWorks对象来获取bmp,
亦即是在电脑(档案总管)看到的预览图,
间中SW储存档案时会有丢失预览图的情况,
当在外围看不到, 这个Rename也抓不到的.

而Preview按钮是调用ModelDoc2对象来输出bmp,
无论档案是什么版本, 只要可以开启, 就能输出bmp作缩图之用.

关键就是速度, "输出"比"获取"缓慢很多, "获取"基本上无需运算,
但若没有事先准备好资料准备(缓冲), 那就得不到想要的结果, 亦即是“缓冲加速失败”.

为什么採取两种不同的缩图方式在同一个工具内?
1. 表面上是一个工具, 其实只不过是把两个工具硬生生合併起来的.
2. 基本上Rename是无需缩图, 因为用得上批量修改的档案名称必有规范, 无需逐一看样子来改名, 如果真的要逐一改名, 倒不如回归基本步, 按右键来改名.
3. 慢总比错的好, 缓冲在档案面层的图片, 可能不是最新近的样子, 是之前某次储存时所缓冲所遗留下来的, 而且该图片是不支持模型组态(这是SW2014的情况).
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

50

帖子

29

金币

天使

Rank: 2Rank: 2

积分
121
QQ
24#
发表于 2017-9-24 07:18:37 | 只看该作者
谢谢大佬的详细教学(good的表情符);
俺明白啦。
ps;事先准备好资料后,测试可行;
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

45

帖子

26

金币

天使

Rank: 2Rank: 2

积分
96
QQ
25#
发表于 2017-9-24 08:20:08 | 只看该作者

   经典案例图书
有请benson同学帮忙列举更新的地方, 先谢谢了!
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

45

帖子

35

金币

天使

Rank: 2Rank: 2

积分
125
QQ
26#
发表于 2017-9-27 13:35:24 | 只看该作者
俺先准备吧(还是整合到玩家论坛较为理想)
到时如有遗漏,再请各位大佬补充。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

45

帖子

30

金币

天使

Rank: 2Rank: 2

积分
111
QQ
27#
发表于 2017-9-28 01:57:55 | 只看该作者

   经典案例图书
当然了吧.

难不成给同学一个炫耀的机会也不行?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

39

帖子

24

金币

天使

Rank: 2Rank: 2

积分
79
QQ
28#
发表于 2017-9-28 10:40:45 | 只看该作者
可能俺操作有问题,目前测试过程中有遇到问题
不知道各位大佬测试过程中是否顺利?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

45

帖子

27

金币

天使

Rank: 2Rank: 2

积分
93
QQ
29#
发表于 2017-9-28 14:11:39 | 只看该作者
当多页工程图输出至单一文件时(选项设置),



出现如下:



不知道各位大佬有遇到此情况吗?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

5

主题

50

帖子

31

金币

天使

Rank: 2Rank: 2

积分
125
QQ
30#
发表于 2017-9-28 22:45:42 | 只看该作者

   经典图书
API的话,俺目前阶段是有心无力;
sw自带功能的话,"相对视图"看看是否可用。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

41

帖子

3

金币

混混

Rank: 1

积分
24
QQ
31#
发表于 2017-10-1 10:52:52 | 只看该作者
估计因某种不明原因丢失swDoc内的对象,
可到本地窗口查看swDoc表达式的值是否正常. (可参考swApp)
或可尝试点选Keep visble, 从而跳过此步, 再看看会出现什么问题.
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

51

帖子

22

金币

天使

Rank: 2Rank: 2

积分
101
QQ
32#
发表于 2017-10-2 18:39:42 | 只看该作者
谢谢大佬指导。
选项对话框没有勾选“KeepVisible”导致的。
1.勾选“KeepVisible”,多页工程图输出至单一文件时,代码运行正常;
2.不勾选“KeepVisible”,多页工程图输出至单一文件时,註释掉代码中的错误语句即可运行正常;
暂时还不知道“KeepVisible”选项的好处,明天再仔细测试下。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

7

主题

44

帖子

41

金币

天使

Rank: 2Rank: 2

积分
120
QQ
33#
发表于 2017-10-2 21:00:17 | 只看该作者
估计28同学在故意错误示范, 从而提醒其他同学.
1. 尽量避免提问及解答与主题无关的事宜(尤其是含有大幅的附图, 会不必要地让其他同学转移视线).
2. 附图是解答如何在工程图插入对正某个方向模型, 而且视图是会跟随设变的; 在某个版本以后, 除了"相对视图"外, 其他插入视图的大部分指令, 都是可以选取某些实体的了.

ps: 这个表述方式(估计他人在错误示范), 并非嘲笑28同学, 而是鼓励28同学, 就事论事, 不必在意他人的目光
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

41

帖子

18

金币

天使

Rank: 2Rank: 2

积分
79
QQ
34#
发表于 2017-10-3 03:57:41 | 只看该作者
谢谢大佬提醒;
俺应该还好吧,大多数时候也还是能够“正向思考”的。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

0

主题

33

帖子

2

金币

混混

Rank: 1

积分
14
QQ
35#
发表于 2017-10-5 14:45:45 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

想到原因了.

因为大佬懒惰, 没有把每一个变量的设定声明, 让变量称为无主孤魂, 容易无故消散.

只要在代码顶端加上 "Dim swDoc As Object" 即可.

其他无主孤魂变量的声明, 就有待有心人帮忙列举出来了, 好让大佬作修订.
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

2

主题

48

帖子

18

金币

天使

Rank: 2Rank: 2

积分
87
QQ
36#
发表于 2017-10-6 16:49:53 | 只看该作者

   经典案例图书
试不出读取组件整体长宽高。零件可以。不知道哪里设定错误。希望大佬指教
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

44

帖子

29

金币

天使

Rank: 2Rank: 2

积分
110
QQ
37#
发表于 2017-10-7 17:04:10 | 只看该作者
加入QQ群
参与讨论和学习

SolidWorks技术交流群

或扫描二维码加入

回覆kcn大,边界方块于第二版时由benson大提出诉求,大佬随即加入此功能,小弟记得那时有提到暂不支援组合件。
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

6

主题

45

帖子

36

金币

天使

Rank: 2Rank: 2

积分
129
QQ
38#
发表于 2017-10-7 21:01:25 | 只看该作者

   经典案例图书
在Rename模式,插入缩略图时,会产生“丢失”现象;是“缓冲加速”的后遗症?还是俺操作有误造成的?
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

3

主题

51

帖子

22

金币

天使

Rank: 2Rank: 2

积分
106
QQ
39#
发表于 2017-10-9 08:49:54 | 只看该作者
执行SaveAll与CloseAll指令时,会产生错误;
初步怀疑是"档案名称与副档名"分离造成的;
有尝试着修改,还是没能成功;
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

4

主题

31

帖子

22

金币

天使

Rank: 2Rank: 2

积分
84
QQ
40#
发表于 2017-10-10 10:10:06 | 只看该作者
谢谢benson同学
改为以下代码即可解决
Function SaveallFunction()
RowNumber = HeaderRow + 1
PathName = Cells(RowNumber, HeaderPath) & ""
While Not (PathName = "")
  RowNumber = RowNumber + 1
  PathName = Cells(RowNumber, HeaderPath)
Wend
For i = RowNumber - 1 To HeaderRow + 1 Step -1
  If CursorVerticalFollow Then Cells(i, HeaderPath).Select
  PathName = Cells(i, HeaderPath) & ""
'  FileName = Cells(i, HeaderFileName) & ""
  FileName = Cells(i, HeaderFileName) & Cells(i, HeaderExtension)
  If FileName <> Cells(i - 1, HeaderFileName) & "" Then
  FileExtName = UCase(Right(FileName, 6))
  If "SLDPRT" = FileExtName Then swFileType = 1
  If "SLDASM" = FileExtName Then swFileType = 2
  If "SLDDRW" = FileExtName Then swFileType = 3
  If "SLDLFP" = FileExtName Then swFileType = 1
  Set swDoc = swApp.OpenDoc(PathName & FileName, swFileType)
  Dim lErrors As Long
  Dim lWarnings As Long
  swDoc.Save3 9, lErrors, lWarnings   '8 = AvoidRebuildOnSave, 1 = Silent
  End If
  Cells(i, HeaderPath).Interior.Color = RGB(255, 176, 112)
Next
End Function

复制代码
SolidWorks机械工程师网
回复 支持 反对

使用道具 举报

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

本版积分规则

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

手机版|小黑屋| GMT+8, 2025-8-9 17:48 , Processed in 0.207458 second(s), 21 queries , Memcache On.

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

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

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