出资200元完成继电器接点块拆分成吸起块、落下块
<p></p><p>我在做电路教学程序,指出电路路径。<br/>需要对图纸中的继电器的接点进行处理。把每个继电器接点块分成两个块:一个接点吸起块,一个接点落下块。如附件:继电器接点块分成吸起块落下块2.dwg所示。图中上部为常用的继电器接点块,下部为要处理达到的效果。之所以要这么做,是因为DWG转成DWF文件后,块显示操作比较方便。</p><p>我只会一些VB.NET,但对CAD.NET内该如何操作一点不懂。现只想早些让软件来给我的工作帮忙,实在没有时间精力慢慢研究CAD.NET。现出资200元请哪位高手帮帮忙完成以下功能。使用AUTOCAD.NET ,或是COM对象实现均可。</p><p>规律:<br/>1,继电器接点分成前中后接点,分别用三个小圆表示,十位数是接点组,个位数只能是1或2或3,<br/>其中是1是指中接点,2是指前接点,3是指后接点。如32,指第3组前点,61指第6组中接点,83指第8组后接点。如果只有一位数,则是指第几组接点。<br/>2,继电器的吸起用上箭头表示 ,落下用下箭头表示。<br/>3,接点间的实线与虚线和箭头有关,实线表示连通,虚线表示断开。如图中,左下FXJ接点表示:FXJ落下,连通11-13接点,11-12接点断开。右下图表示:WDJ吸起,连通21-22接点,21-23断开。</p><p>一些思路:<br/>1,用过滤器得到块选择集。<br/>2,遍历块选择集,遍历块内对象,满足如下条件的是接点块:A,有一个文字对象包含有一个以上“J”或"J",并记录下该文本对象,该文本值即是继电器名称;B,有三个相同的圆;C,文字对象中有一个对象是纯数字,且只有一位数。此数字即是接点组号。<br/>3,确定是接点块后,记录下属性标签TAGSTRING,及属性值TEXTSTRING。记录下接点块的区域geometryextent。<br/>4,把块炸开。<br/>5, 在该块的区域内,查找值等于TAGSTRING的文本对象,换成第3步记录下的与该TAGSTRING对应的TEXTSTRING。(此3, 4,5步与burst效果相同,块炸开后,属性值被去掉,只显示出其标签,这里只有把记录下的属性值放回炸开后的标签位置)<br/>6,分析此块接点标示的继电器是吸起还是落下,即分析箭头是向上还是向下。A,查找该块区域内最短的且等长的两条直线(已明确组成箭头三条直线中的两条是接点块中最短的直线),intersectwith得到此两条直线的交点,即顶点;B,在此两条最短的直线组成的集合所占的区域内,找到组成箭头的垂直线。C,分析顶点是在垂直线的上端点或下端点,如果是在上端点,则说明继电器是吸起,如果在下端点,说明继电器是在落下。D,记录下组成箭点的三条直线的ID,及记下继电器是吸起还中落下。</p><p>7,在该块区域内找到三个相同大小的圆,在此三圆内组成的集合所占的区域内查找最长的直线,(此区域内只有最多三条直线),再找到此区域内的另两条直线。如果继电器是吸起最长线列入吸起块中,另两条列入落下块中。如果继电器是落下,最长线列入落下块中,另两条列入吸起块中。记下此三条线的ID,及属于吸起块或落下块。<br/>8,求那三个圆的区域内最长线与另外两条直线中任一条的交点,此交点所处在的圆即是中接点,如果继电器是吸起,最长直线所连接的另一圆即是前接点,第三个圆是后接点;如果继电器是落下,最长线所连的另一圆是后接点,剩下的圆是前接点。记录下此三个圆的ID及哪个是前接点,哪个是后接点,哪个是中接点。<br/>9,在该区域内找到唯一的纯数字且只有一位的文本对象得到数字X,在所有接点的圆附近,次递在圆的左上,右上,左下、右下查找一个区域,确认区域内没有任何图元,在前接点圆附近标注X2,在后接点圆附近标注X3,在中接点圆附近标注X1。记录下此三个文本对象的ID。<br/>10,最后,将前接点圆、前接点文本数字标注及,列入吸起的直线,是向上的箭头组成一个接点吸起图块(如有),命名为:继电器名称_中接点名_前接点名吸起图块,如:“FXJ_11_12吸起图块”;把后接点圆、后接点文本数字对象、列入落下块的直线、是向下的箭头组成一个接点落下图块(如有),命名为:继电器名称_中接点名_后接点名吸起图块,如:“FXJ_11_13落下图块”。</p><p></p> <p>各位高手帮帮忙啊。费用可适当提高些。</p><p>或者不关于CAD方面的操作,都可由我来完成。</p><p>或者给些提示啊</p><p>联系QQ:55512381</p> <p>这个文件 是CAD2004版 的</p> <p>唉,论坛里对这贴子不感兴趣。</p><p>已在QQ群里找到人做了。</p>
页:
[1]