注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

MicroDraw CAD/CAM中间件

产品主页 http://www.microdraw.com

 
 
 

日志

 
 

开关状态改变后拓扑线颜色改变!!!!  

2014-04-15 00:12:24|  分类: 控件编程示例及截 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
开关状态改变后拓扑线颜色改变!!!!
以下代码在双击后调用,但是前提是必须只是有一个电源;(多个电源可能需要用js数组来判断。。)

如果有一个电源 “hhhh”
//每次开关改变后都调用此函数,根据电源计算线路颜色, 有电显示红色,无电为绿色

function change_colors() {
  //insert "hhh" 为电源

  //寻找电源ID
  var dy_island_no = -1;
  MDrawNet1.ClearSelectlist(0);
  var  objid = MDrawNet1.GetFirstObject(-1)
  while(objid>0)
  {  
     if(MDrawNet1.GetString(objid,-309) == "hhhh") //hhhh代表电源
     {
        if(dy_island_no >-1)
         {
             alert("此例子只允许包含一个电源");   
             return;
         }
        dy_island_no = MDrawNet1.GetLongProp(objid,"*ISLAND_NO"); //得到电源所在的电器岛序号               
     }         
     objid = MDrawNet1.GetNextObject(objid);
  }
  
  if(dy_island_no == -1) return;
  
   //-------------------------遍历电气岛-----------------------------  var iDrawing = MDrawNet1.GetDrawing();//得到当前的图纸DRAWING
  var relCount = iDrawing.GetRelationSize();//得到图纸内拓扑关系(电气岛)个数
  for(var i=0; i<relCount; i++)
  {
    var  state = MDrawNet1.Get2IslandsState(dy_island_no,i);//判断两个岛是否相通
    var island = iDrawing.GetRelation(i);//根据需要得到电气岛对象
    if(state == 1)
    {
        //alert("两元素相通"+state.toString());
        island.ChangeColor(0x0000FF,0);//将电气岛改为红色
     }
      else
        island.ChangeColor(0x00FF00,0);//将电气岛改为绿色
       
  } 
  //MDrawNet1.RedrawAll(); 
  

  评论这张
 
阅读(34)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018