明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1585|回复: 7

CAD VBA 图库的建立

[复制链接]
发表于 2015-1-29 15:56:00 | 显示全部楼层 |阅读模式
网上的图库基本上用自带的幻灯片对话框做的,功能太过单一,本人摸爬滚打半个月,建立了一个功能较强的图库:
思路如下:
1、每个块都制作成一个外部属性块文件,按一定规律命名;
2、对每一类别的块(比如阀门类)分别制作幻灯片,再制作幻灯片库;
3、在窗体中用按钮切换库类别,用Slide组件显示幻灯片,用文本框读取和修改块属性等参数;
界面如下图:


目前有几个问题需要解决:
1、不知道如何动态生成OCX组件并设置命令(自带组件会做,但不会指定命令),只好直接做在FORM上,数量有限,呆板。
2、插入块时不会做成那种打断直线(管路)把块放进去的效果,虽然可以用重画的方式实现,但感觉很别扭,还涉及到图层操作,比较麻烦。
3、块插入后,删除块,直线自动闭合; 移动块,直线自动跟进。
备注:
在块的设计中,我加了两个空值隐藏属性TERM01、TERM02,用于获取打断点的坐标,见下图:


在此求助于论坛的老鸟们,帮助解决这几个问题或提供办法,如满意,送给你DVB文件。



本帖子中包含更多资源

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

x
 楼主| 发表于 2015-1-29 23:11:33 | 显示全部楼层
难道高手们都在潜水吗?
发表于 2015-1-30 00:28:55 | 显示全部楼层
1、用控件数组
2、最好别打断直线,而用wipeout
3、用wipeout,连这个问题一起解决了
 楼主| 发表于 2015-1-30 10:07:16 | 显示全部楼层
首先感谢高手提供解决思路!

对于1问的回答,查了下资料,貌似VBA不支持控件数组。另外,Slice控件的typeclass是“AutoCAD.SlideCtrl.2",但是我用
Dim mc As Slide
Set mc = Me.Controls.Add("AutoCAD.SlideCtrl.2")
的方式在form里添加控件,没能实现。

对于2、3,WIPEOUT的确可以实现效果(我是在块里添加这个遮罩,把开关打到off,然后把块内容放到顶层来实现的),但其原理是遮罩,直线没有断开,如果我要对阀门前后的线条(管道)修改线型和颜色,这就不行了。


点评

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=112904&page=1#pid667284 控件数组,发错地方了  发表于 2015-1-30 13:56
 楼主| 发表于 2015-1-30 15:21:09 | 显示全部楼层
_梦游- 发表于 2015-1-30 10:07
首先感谢高手提供解决思路!

对于1问的回答,查了下资料,貌似VBA不支持控件数组。另外,Slice控件的typ ...

老大,你那是VB,俺知道VB可以搞定,但VBA不行。不论如何,多谢!费心了!
发表于 2015-1-30 18:52:17 | 显示全部楼层
本帖最后由 zzyong00 于 2015-1-30 18:53 编辑
_梦游- 发表于 2015-1-30 15:21
老大,你那是VB,俺知道VB可以搞定,但VBA不行。不论如何,多谢!费心了!


编程在于灵活,vba的窗体是form2.0,有些控件用不了,所以,就别用vba的窗体
你可以用vb编写acitvex dll,在vba中调用,我给你一个例子,你解压注册“工程1.dll",然后,运行哪个vba程序,就看到了

本帖子中包含更多资源

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

x
 楼主| 发表于 2015-1-31 08:47:54 | 显示全部楼层
非常感谢!不过我对DLL不太懂,呵呵,先学习一下
 楼主| 发表于 2015-2-2 13:02:24 | 显示全部楼层
在网上找到“AutoCAD P&ID”,这个图库开发已经没必要了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 13:02 , Processed in 0.187875 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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