现在位置: > > 工程科技 > 信息与通信

C#进行Visio二次开发之组合形状操作

C#进行Visio二次开发之组合形状操作
Posted on 2010-06-21 13:33 伍华聪 阅读(2225) 评论(1) 编辑 收藏
由于一朋友需要Visio实现仿真模拟Demo,因此我在原来Visio项目代码基础上进行改进调整,完成了其需要的功能。现将对原有Visio二次开发项目的创新思路及成果总结一下,以飨读者,也做为一个标志,供日后参考,或者于各位同行,一起研究切


磋。先贴图展示整个项目的该款,表明此文章所托并非空穴来风、纸上谈兵!



本人基于项目的Visio的二次开发文章写了很多,其中涉及到各形状方面的操作,但基本上都是做为一个图形的整体来实现各种效果的,由于仿真需要,需要将换向阀实现左右变换功能,而换向阀是一个组合控件,基本上对组合控件操作都是一个整体性的操作,不能局部进行位置变换的,所以要实现这种变化,还真是费了不少功夫。

需求是要求做线路分析的时候,油经过后,组合图形实现效果变换,如下图所示:



上面的图形变化为下图(实现了左右组合图形的互换变化的效果)





一般光靠操作整个图形实现变化是不太可能的,因此考虑化整为零,把其中两个组合图形从整体中分离,然后再进行组合操作即可。首先尝试通过宏记录方式查看代码,得到分解后的形状操作宏代码如下所示:

Sub Macro1()

Dim UndoScopeID1 As Long
UndoScopeID1 = Application.BeginUndoScope("移动对象")
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(60), visSubSelect
Application.ActiveWindow.Selection.Move 0.405512, -0#
ActiveWindow.Selection.RemoveFromGroup
Application.EndUndoScope UndoScopeID1, True

ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(25), visSubSelect
Application.ActiveWindow.Selection.Move 0.314961, -0#

Dim UndoScopeID2 As Long
UndoScopeID2 = Application.BeginUndoScope("移动对象")
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(60), visSelect
Application.ActiveWindow.Selection.Move -0.688976, 0#
ActiveWindow.DeselectAll
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(22), visSelect
ActiveWindow.Select Application.ActiveWindow.Page.Shapes.ItemFromID(60), visSelect
ActiveWindow.Selection.AddToGroup
Application.EndUndoScope UndoScopeID2, True

End Sub


此,完成万里长征第一步,也证实分解后的图形,可以通过移动位置的方式实现,虽然定位形状我们不能靠ActiveWindow.Page.Shapes.ItemFromID(60)来定位,但是我们可以通过埋在形状中的设备类型参数来实现形状的定位的(这里我在设计模具的时候,把两个形状的的设备类型属

相关文档
如何使用C#进行Visio二次开发-总结版
如何使用C#进行Visio二次开发-总结版_互联网_IT/计算机_专业资料。如何使用C#进行...visio编程参考文档 10页 1下载券 自建形状在Visio中的应用... 7页 免费 利用...
【论文】利用Visio二次开发实现逻辑图自动分析
利用Visio二次开发能力,开发人员可以编写自己的图形处理程序与Visio集成,对Visio图形文件中的形状与连接关系等要素进行自动分析。通过实例介绍了利用Visio自动化来开发...
利用Visio二次开发实现逻辑图自动分析
利用Visio二次开发实现逻辑图自动分析_工学_高等教育_教育专区。visio二次开发介绍第8卷第1期 2oo 9年 1月 软件导刊 SfwaeGud otr ie V0. 1NO.81 Jn2o ...
visio2010里面任意形状的联合,组合,拆分,相交,剪除,连...
暂无评价0人阅读0次下载举报文档 visio2010里面任意形状的联合,组合,拆分,相交,剪除,连接,修剪快捷命令实现_计算机软件及应用_IT/计算机_专业资料。今日...
Visio 2010里面任意形状的剪切联合组合拆分功能
Visio 2010里面任意形状的剪切联合组合拆分功能_IT/计算机_专业资料 暂无评价0人阅读0次下载举报文档 Visio 2010里面任意形状的剪切联合组合拆分功能_IT/计算机_...
ArcGIS进行二次开发别人经验
ArcGIS进行二次开发别人经验_计算机软件及应用_IT/计算机...追问 我比较擅长使用 C#,但是好像所提供的开发包没...大部分题,无实际开发经验,会一点 ArcGIS 简单操作...
C#二次开发
C#二次开发_计算机软件及应用_IT/计算机_专业资料。C#二次开发说明(MenuScript) ——创建一个块 1. 开发环境使用此说明书的用户需安装 Microsoft Visual Studio ...
MapGIS二次开发架构、方法及案例7x
MapGIS二次开发架构、方法及案例7x_天文/地理_自然科学...C#/VB/C++开发 数据中心框架 GIS功能库/服务库 ...IXDisplay接口进行坐标变换, 显示要素类等操作等 ...
第五章、C#+AE二次开发之面向对象程序设计
第五章、C#+AE二次开发之面向对象程序设计_IT/计算机...属性的设置与使用 static void Main(string[] args...1. GroupBox 2. 组合一组控件 理解父控件,子控件...
c#进行Solidworks二次开发的简单步骤
c#进行Solidworks二次开发的简单步骤_计算机软件及应用_IT/计算机_专业资料。使用VB进行Solidworks二次开发的资料很多,c#的相当少。希望这篇能对大家有所帮助!用...
相关主题
返回顶部
热门文档
你可能喜欢
  • visio矢量图标
  • visio素材
  • 官方Visio形状目录
  • visio图标制作
  • visio图标库
  • visio常用图标