C#进行Visio二次开发之Visio模具制作(2)

简介:

Visio二次开发开发过程中,模具制作也是其中一项有比较细致,技术含量高的工作来的,要做好一个不错的模具,需要了解不少Visio的开发资料以及制作技巧。

在前面一篇《C#进行Visio二次开发之Visio模具制作(1)》中介绍了简单模具的制作,那个模具绘制过程主要是利用Visio本身的绘制图形进行操作,下面我们来继续介绍模具的其他制作操作。例如如何利用铅笔工具绘制不规则形状、如何组合形状、如何创建容器模具等操作,组合形状是作为一个整体进行操作的,如果不需要选定子模具,需要设置更多的行为特点,容器也一样,之所以称为容器,就是图形放入的时候,他们为一个整体,一起拖动位置,并且图形拖入容器的时候,容器有明显的提示的特点,这些在本文中介绍。

1)利用铅笔工具绘制不规则图形

我们知道,Visio本身只是提供很少的图形用来绘制,如下所示只包含矩形、椭圆、折线等,我们要实现更多的图形绘制,则可以利用线条、铅笔等工具来绘制各种不规则图形。

要利用铅笔绘制图形,先选定铅笔,然后在图纸上绘制图形,按住Ctrl键可以绘制直线,如下所示绘制两个不规则形状。

这两个图形,每个图形都是一个闭合的不规则图形,他们各条边是一个整体,是图形不可分割的一部分,我们进一步在ShapeSheet分析可以看到,他是一个Geometry的,通过MoveTo/LineTo进行绘制出来的。

这个说明它(以上任一图形)本身是一个图形,不是组合的,这个非常重要。

2)组合图形

一般为了绘出丰富表现显示的图形,多数都是组合起来的,组合图形,处理的好,其实和单独的形状看起来很显示,可以一起拖动,一起缩放,甚至一般情况下你还不知道他是组合的,因为它设置了不可选择子图形。

下面我们把上图几个图形组合起来,先把矩形、两个不规则图形放置好位置后,选定这几个图形,然后选择组合,那么就可以看到图形组合起来了。

然后我们拖动组合图形,发现整个一起拖动了,这个已经作为一个组合整体了。不过细心的你可能发现,如果选择组合形状的子形状,还是可以脱离出来的,这个就有点不太好了(一般来说,我们不希望给拆开的)。

不过不要着急,我们可以通过设置组合形状的行为特点,可以不让操作者选定子模型即可,如下所示。

设置选定为“仅限组合”这样,那么整个图形就只有组合形状可以选到,子图形不会选中,也就不会发生刚才所说的脱离组合形状的问题了。

设置后,再次拖动图形,真的不会发生了,这个真是我们所希望组合形状的特点。

3)容器图形的设置

先以矩形作为容器,第一步要先设置矩形的形状手柄等不可选择,如下所示。注意,去掉显示形状手柄、控制手柄是为了,形状选择的时候,选择不到该组合框,但是能够选择组合后的组合框(是不是很拗口)。

反正目的就是只操作该组合后的形状。

然后选定图形,进行组合(一个图形也可以组合的哦),然后设置图形的组合设置如下所示。其中接收放下的形状及放下时将形状添加到组合这些设置必选,否则起不到一起拖动组合,作为容器必备的特性了。

这样设置后,作为组合方面的容器,已经设置好了,不过,我们的其他要添加到这个容器里面的形状,也还需要修改形状组合特性为,放下时将形状添加到组合才起作用的哦。

这样两方面设置好后,拖动图形到组合容器里面,就会发现,组合容器的边界明显加粗并增加边框提示,很直观哦,如下所示。

本文主要介绍这么多,主要是为了告诉大家,如何实现更加复杂图形的绘制及设置,以期达到我们设置图形的目的。其中组合形状的这些特性很隐秘,官方没有很清晰的操作指引,即使是英文的,也很少系统介绍模具的具体开发过程,需要大家在实际操作过程中逐步掌握,或者寻求有经验的人士进行指引,这样才不会出现,为了实现一个想要的功能,找了N多资料,试了很多门道,一直上手不了。

下一篇继续结合ShapeSheet进行介绍一些复杂的操作。在模具的开发过程中,ShapeSheet里面的各种内容,是必须要理解掌握的,有时候我们需要调整或者增加一些特殊的东西,就需要直接操作里面的属性数据,如果不熟悉,可能很难实现一些特殊的操作。

本文转自博客园伍华聪的博客,原文链接:C#进行Visio二次开发之Visio模具制作(2),如需转载请自行联系原博主。



目录
相关文章
基于C#的ArcEngine二次开发56:双击属性表跳转目标要素并闪烁
基于C#的ArcEngine二次开发56:双击属性表跳转目标要素并闪烁
基于C#的ArcEngine二次开发56:双击属性表跳转目标要素并闪烁
基于C#的ArcEngine二次开发54:IStatusBar状态栏接口的使用
基于C#的ArcEngine二次开发54:IStatusBar状态栏接口的使用
基于C#的ArcEngine二次开发54:IStatusBar状态栏接口的使用
|
NoSQL 数据处理 C#
基于C#的ArcEngine二次开发52:GDB数据处理过程中与Name相关的操作
基于C#的ArcEngine二次开发52:GDB数据处理过程中与Name相关的操作
基于C#的ArcEngine二次开发52:GDB数据处理过程中与Name相关的操作
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
|
算法 C#
基于C#的ArcEngine二次开发50:生成面空洞连接线
基于C#的ArcEngine二次开发50:生成面空洞连接线
基于C#的ArcEngine二次开发50:生成面空洞连接线
|
存储 NoSQL Unix
基于C#的ArcEngine二次开发50:MDB创建新要素类及“无当前记录”异常处理
基于C#的ArcEngine二次开发50:MDB创建新要素类及“无当前记录”异常处理
基于C#的ArcEngine二次开发50:MDB创建新要素类及“无当前记录”异常处理
|
C# 开发工具
基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦
基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦
基于C#的ArcEngine二次开发47:Addins常见问题解决方案集锦
|
存储 C# Python
基于C#的ArcEngine二次开发46:编辑内容回撤与炸开multipart feature
基于C#的ArcEngine二次开发46:编辑内容回撤与炸开multipart feature
基于C#的ArcEngine二次开发46:编辑内容回撤与炸开multipart feature
|
C# 数据库
基于C#的ArcEngine二次开发45:属性值设置中的DBNull、null和default
基于C#的ArcEngine二次开发45:属性值设置中的DBNull、null和default
基于C#的ArcEngine二次开发45:属性值设置中的DBNull、null和default