轻量而敏捷的工业组态软件UI设计工具-机械组态篇

8 篇文章 18 订阅
8 篇文章 6 订阅

相关文章:
轻量而敏捷的工业组态软件UI设计工具-ConPipe Studio 2022
基于Visual Studio扩展的WPF工业组态UI控件-ConPipe 2023

VS2019及更早版本的VS扩展版ConPipe控件Demo下载地址(.Net Framework Trial版):点此下载
VS2022扩展版ConPipe控件下载地址(.NetCore Trial版):点此下载

继发布《轻量而敏捷的工业组态软件UI设计工具-ConPipe Studio 2022》以来,收到不少工控小伙伴的支持。我在不断完善控件之余,在化工组态控件之外又添加了机械组态控件。规划中机械组态包含:滑轮/滑轮组,绳子/钢缆(支持设置张力),液压,钢结构,墙体(斜杠),链条,龙门吊,波纹管,弹簧,升降机(伸缩式),目前滑轮/滑轮组,液压,链条,弹簧已经接近完成,下面通过动图来感受下效果。

1,链条
链条链轮组
Xaml代码:

<Machine:ChainItemCollection
  ChainWheelCollection="150,300,8,0 360,240,7,1 570,240,7,1 810,347,13,0 490,420,7,0"
  ChainItemOpacity="0.5" 
  ShowKeySlot="False"
  ChainItemSize="100,39" HorizontalAlignment="Left" Height="550" Margin="100,100,0,0" VerticalAlignment="Top" Width="1140" />

ChainItemOpacity为链条的透明度;ShowKeySlot设置是否显示链轮轴的键槽(链轮中心轴边缘突出的小方块);ChainItemSize设置每节链条的尺寸(ChainWheelCollection设置后必须设置ChainItemSize后才能显示出链条,否则不显示链条);ChainWheelCollection是链轮的配置数据,每个链轮有四个参数,不同的链轮用空格隔开。前两个参数是链轮轴心的XY坐标,这个坐标是相对于Machine:ChainItemCollection的内部坐标;第三个参数是链轮的齿数(链轮的半径不需要设置,ChainItemSize和齿数确定后链轮的半径也就确定了,这跟在UG等三位软件中设计齿轮一个道理,齿轮的半径由模数和齿数决定);第四个参数指示链轮是否为压链轮(压链轮的意思是:链轮在链条形成的封闭曲线之外,动画中最上面的两个链轮就是压链轮)。在ChainWheelCollection中配置链轮有个非常重要的规则需要遵循的是:链轮的指派顺序必须是顺时针方向的,如下图所标:
链轮的指派顺序

2,弹簧
弹簧
同样是一行代码搞定

<Machine:CoilSpring 
 SpiralDirection="Left"
 Thickness="10"
 Turns="10"
 RendColor="DarkRed"
 MinHeight="95"
 MaxHeight="195" Margin="536,250,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Height="123" Width="70"/>

Thickness设置弹簧的粗细,默认就是10;Turns设置弹簧匝数(弹簧中间有螺纹的部分,不包含上下两个平直端);RendColor设置弹簧的颜色;MinHeight设置弹簧压缩后的最小长度;MaxHeight设置弹簧拉伸后的最大长度;Height可以实时设置的弹簧的长度;VerticalAlignment设置为Top或Bottom可以让弹簧实现顶部或底部固定。

3,液压联动
液压联动
两个部件两行代码,绿色的RotateableBox控件的Content可以设置为其他任何控件的组合。

<Machine:RotateableBox Name="rotateableBox" 
 FixedRotatePoint="0,49"
 ActiveRotatePoint="236,49" 
 WorkDirection="Clockwise" 
 Margin="250,316,0,0" Height="50" Width="532" Background="Green" Opacity="0.5" />
<Machine:PistonRod 
 RelevantSystem="{Binding ElementName=rotateableBox}" 
 FixedRotatePoint="300,374" 
 ShowTopBallCup="True" RodDiameterRate="0.9" MaxTravel="120" PistonCylinderHeight="130" CurrentTravel="0" Width="50" />

Machine:RotateableBox的尺寸可以自己定义;FixedRotatePoint为固定旋转点(图中左下角的位置),相对于Machine:RotateableBox的任意位置;ActiveRotatePoint为Machine:RotateableBox与活塞杆联动的位置,也是相对于Machine:RotateableBox的任意位置;通过设置Content属性来定制想要的效果。
Machine:PistonRod为活塞杆。RelevantSystem为关联系统,也就是Machine:RotateableBox,试用绑定的方式赋值,也可以通过C#代码在后台设置;FixedRotatePoint为固定旋转点,相对于父容器的任意位置;CurrentTravel设置活塞杆当前的行程;MaxTravel设置最大行程;ShowTopBallCup设置是否显示活塞杆两头的球头座;RodDiameterRate设置活塞杆的宽度占控件宽度的比例;PistonCylinderHeight设置活塞筒的长度;Width设置活塞杆的最大宽度。
下图展示RodDiameterRate设置为0.2(模拟气缸的外形)
ConPipe-气缸

四,滑轮组
滑轮组
滑轮组由一组滑轮和绳索组成

<Machine:PulleyRopeCollection Name="pulleyRopeCollection"
 PulleyCollection="0,571,113,35,0,1 0,715,381,35,0 0,443,381,35,0" 
 HorizontalAlignment="Left" VerticalAlignment="Top" Width="800" Height="600" />

PulleyCollection是滑轮的配置数据,每个滑轮有六个参数,不同的滑轮用空格隔开。第一参数设置滑轮是否带钩;第二、三个参数设置环论轴心的XY坐标;第四个参数设置滑轮的半径;第五个参数为可选参数,设置滑轮是否为驱动轮;第五个参数为可选参数,设置滑轮是否为固定的(固定的滑轮不可以转动,指示用来托住绳子的)。

5,动滑轮
带沟动滑轮
四个滑轮一条绳索。也许有看官会说,明明是三个滑轮啊?!其实最左边那个绳头是半径为0的滑轮而已。

<Machine:Pulley x:Name="p1" Center="228,58" Radius="28" IsDrivePulley="True" IsReverse="False" />
<Machine:PulleyBlock x:Name="p2" Center="228,450" Radius="18" HorizontalAlignment="Left"  />
<Machine:Pulley x:Name="p3" Center="168,158" Radius="28" IsPressurePulley="True" IsStatic="True" IsReverse="True" />
<Machine:Pulley x:Name="p4" Center="50,130" Radius="0" IsStatic="True" />
<Machine:PulleyRope x:Name="rope" Panel.ZIndex="99" RopeThickness="3" PulleyArray="p1,p2,p3,p4" />

Center设置滑轮的轴心位置,相对于父容器的任意位置;Radius为滑轮的半径;IsDrivePulley设置是否为驱动轮,如果滑轮组和绳索不是闭合的,驱动轮上的绳子就会绕满一整圈充当集线轮;IsReverse设置滑轮反转;
Machine:PulleyRope是绳索,PulleyArray配置绳索相关联的滑轮Name,指派顺序同样满足顺时针的规则;RopeThickness设置绳索的粗细;在Distance中设置绳索移动的长度,正增长会带动滑轮顺时针转动并计算旋转的速度,直径大的滑轮转速慢,直径小的滑轮转速快且是成比例的;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值