找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 10346|回复: 39
打印 上一主题 下一主题

[求助] 求助把运行宏的结果输出到txt文件里的宏代码

[复制链接]
跳转到指定楼层
1
发表于 2016-7-31 00:56:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

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

x
今天研究了半天的宏文件,其实就是因为工作中每套图纸都要出图纸目录,图纸一多,出图纸目录也麻烦,于时突然想起用宏文件来批量打开工作图文件抓取属性然后输出成txt文件,(当然,输出成excel文档也行)。对宏,我算四分之三个文盲,完全没学过的东西,只能在网上搜些代码来慢慢的按自己的想法去改、去试验。搞了半天,现在竟然才做到打开工程图,提取图纸幅面大小和每个零件的图纸的张数。现在有问题只能求助各位大神了:第一:打开一张工程图后,抓取图纸里某个视图(其实抓取任何一个视图)的关联的零部件的属性,这个代码怎样写?第二:运行宏以后,得到的结果比如说 代号、名称、图幅、张数 怎么导出成txt文件?这个宏代码又应该怎样写?半夜三更了,实在是理不清了,没办法了只能求助了,求大神们有空闲了多多指点指点。谢谢。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 赞一下!赞一下!
推荐
发表于 2016-8-2 15:49:50 | 只看该作者
假设在A1单元格输入项目号

第一层的函数写法建议如下:
按A1单元内容的长度加二起读取代号两字节再乘以十的八次方。

第二层的函数写法建议如下:
当代短于项目号长度加四(相当于不含第二及以上的层级),给予0;
否则按A1单元内容的长度加五起读取代号两字节再乘以十的六次方。

第三层的函数写法建议如下:
当代短于项目号长度加七(相当于不含第三及以上的层级),给予0;
否则按A1单元内容的长度加八起读取代号两字节再乘以十的四次方。

第四层的函数写法建议如下:
当代短于项目号长度加十(相当于不含第四及以上的层级),给予0;
否则按A1单元内容的长度加十一起读取代号两字节再乘以十的二次方。

第五层的函数写法建议如下:
当代短于项目号长度加十三(相当于不含第五及以上的层级),给予0;
否则按A1单元内容的长度加十四起读取代号两字节再乘以十的零次方。

详见动画。

本帖子中包含更多资源

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

x
2
发表于 2016-7-31 08:04:32 | 只看该作者
如果文件名是以代号+间隔符+名称命名,
代号和名称就从文件名中提取
写出到文件代码在网上搜一下“VB写出文本到txt代码”
自己参照一下,宏(VBA)语言是从VB衍生出来的,很多代码通用。
3
发表于 2016-7-31 12:23:00 | 只看该作者
qiminger 发表于 2016-7-31 08:04
如果文件名是以代号+间隔符+名称命名,
代号和名称就从文件名中提取
写出到文件代码在网上搜一下“VB写出 ...

谢谢老兄指点了。我也考虑过这样去提取,不过觉得还是从某一视图关联的零部件属性里提取更可靠点。
另外一个就是那个代码的问题,不是我不找VB代码,而是实在找不到了。昨天晚上悲催死了,搞到两三点,刚搞定提取图幅和单工程图里图纸张数这两个参数提取到EXCEL里面的时候,把文件改了下名字,搞错了,把后缀给去掉了,然后一不小心就VB编辑了一下,内容全部自动清空了。郁闷得要死了。唉。
4
发表于 2016-7-31 18:03:26 | 只看该作者
本帖最后由 莱虫 于 2016-7-31 18:26 编辑

按楼主要求编写了一下,不是到是否想要的。
附件是Excel文件,注意“代号”栏往右可继续加上模型的属性名称(配置指定),如“说明”、“重量”等等。

(附件有版本限制,已删,请到7楼下载更新版本)
5
发表于 2016-7-31 18:08:18 | 只看该作者
莱虫 发表于 2016-7-31 18:03
按楼主要求编写了一下,不是到是否想要的。
附件是Excel文件,注意“代号”栏往右可继续加上模型的属性名 ...

谢谢高人。马上下载学习。
6
发表于 2016-7-31 18:20:59 | 只看该作者
莱虫 发表于 2016-7-31 18:03
按楼主要求编写了一下,不是到是否想要的。
附件是Excel文件,注意“代号”栏往右可继续加上模型的属性名 ...

高人,我下载了。这个竟然是脱离SW单独运行的EXCEL文件,这种方式令我惊喜万分。本来我以为能搞个在SW里运行的宏就不错了。谢谢。
不过,我运行时,出现错误,提示“错误438,对象不支持该属性或方法” 。逐句调试了一下,发现是运行第二句代码 (“swApp.cVisible = True”)时出现这个提示的。我的SW版本是2012,EXCEL版本更老,还是2003版的,不知道是不是版本太老了,不能运行新的宏代码?恳请高人继续指点,让我脱离苦海,为了这个东西,我已经搞了两天了,还是迷迷糊糊的不得其法而入。
7
发表于 2016-7-31 18:23:53 | 只看该作者
dreamsboy 发表于 2016-7-31 18:08
谢谢高人。马上下载学习。

刚才疏忽了版本的问题,附件只局限SW2014运行,请下载这个已修改的附件。

本帖子中包含更多资源

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

x
8
发表于 2016-7-31 18:35:10 | 只看该作者
莱虫 发表于 2016-7-31 18:03
按楼主要求编写了一下,不是到是否想要的。
附件是Excel文件,注意“代号”栏往右可继续加上模型的属性名 ...

高人,我把运行库都加载了一下,现在提示 ”错误429:ActiveX 部件不能创建对象“了。
9
发表于 2016-7-31 18:46:48 | 只看该作者
莱虫 发表于 2016-7-31 18:23
刚才疏忽了版本的问题,附件只局限SW2014运行,请下载这个已修改的附件。

谢谢莱大。
我下载了这个新的文件后,运行后,可以输出了。不过在输出完成,最后会报一个“类型不匹配”的错。

另外,不知道是不是可以加一个“开始执行”的按钮,因为有可能工程图不在一个文件夹下不能一次就选取完毕,有一个按钮的话,可以分多次选取完后再执行。
再者,这个表格,读取文件时它也还是会自动启动SW并且在SW中打开一次文件才能获取属性值吗?我以为是和闷大他们以前发的那个批量改属性值的EXCEL表格一样的可以脱离SW读取属性呢,那个速度超快。

再次谢谢菜大,还请继续指点。
10
发表于 2016-7-31 18:55:40 | 只看该作者
莱虫 发表于 2016-7-31 18:23
刚才疏忽了版本的问题,附件只局限SW2014运行,请下载这个已修改的附件。

莱大,我运行这个文件后,选中两张工程图,只识别出了一张的属性然后就报错了,现在的情况是:报错后,打开的第一张图没有关闭,然后也没打开第二张工程图。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2025-1-3 20:50 , Processed in 0.046173 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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