فهرست منبع

709风机风门水泵显示,传感器、监测点选择巷道

tangjunhao 2 ماه پیش
والد
کامیت
216b06cad8

+ 94 - 10
src/control/vtkModel.js

@@ -161,12 +161,14 @@ export class VtkModel {
 
     this.sensorobj={};
 
-
+    // 用于管道上位置移动(点)
     this.actorpipsites=[]; 
     
+    // 用于管道上位置移动(传感器)
+    this.actorpipsensors=[]; 
 
-
-
+    // 用于管道上位置移动(监测点)
+    this.actorpipjcs=[]; 
 
     this.jcdActors = []; //检测点数据
     this.jcreader = vtkPLYReader.newInstance();
@@ -294,11 +296,7 @@ removePname(){
   this.renderWindow.render();
 }
 
-//清空灾源
-delSoures(){
-  this.removeSoure();
-  this.soureActors=[];
-}
+
 //水泵/风门、风机添加
 addpump(pid,site){
 
@@ -387,7 +385,6 @@ removeSensor(){
 }
 delSensor(){
   this.removeSensor();
-  this.cgqActors=[];
 }
 
  //添加一个灾源点
@@ -431,6 +428,12 @@ removeSoure(){
   this.renderWindow.render();
 }
 
+//清空灾源
+delSoures(){
+  this.removeSoure();
+  this.soureActors=[];
+}
+
 //初始化监测点
 initCheckNodes(checkNodes){
   checkNodes.forEach((checkNode) => {
@@ -478,6 +481,10 @@ removejc(){
   this.renderWindow.render();
 }
 
+deljc() {
+  this.removejc();
+}
+
   //显示所选择巷道位置
   addpipsite(pid,site){
     console.log(1111)
@@ -514,7 +521,7 @@ removejc(){
   addpipsite2(pid,site){
     let pipe =this.pipeByPid(pid);
     if(this.actorpipsites.length==0){
-      addpipsite(pid,site);
+      this.addpipsite(pid,site);
     }
     if(this.actorpipsites.length==1){
       const  actorpipsite= vtkActor.newInstance();
@@ -548,6 +555,76 @@ removejc(){
       this.renderer.removeActor(actor);
     });
   }
+// 显示所选管道传感器位置
+addpipsensor(pid,site){
+    console.log(1111)
+    let pipe =this.pipeByPid(pid);
+    console.log("管道数据",pipe)
+    if(this.actorpipsensors.length==0){
+      const actorpipsensor = vtkActor.newInstance();
+      const pipsensorMapper = vtkMapper.newInstance();
+      pipsensorMapper.setInputConnection(this.cgqreader.getOutputPort());
+      actorpipsensor.setMapper(pipsensorMapper);
+      actorpipsensor.setScale(0.1,0.1,0.1);//放大
+      actorpipsensor.getProperty().setColor(SOURECOLOR);
+      this.actorpipsensors.push(actorpipsensor);
+    }
+    const actorpipsensor =this.actorpipsensors[0];  
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    let py = site/(1.01-site);
+    let pipsite_point=[
+      (point1[0]+py*point2[0])/(1+py),
+      (point1[1]+py*point2[1])/(1+py),
+      (point1[2]+py*point2[2])/(1+py),
+      ] 
+    actorpipsensor.setPosition(pipsite_point);
+    this.renderer.addActor(actorpipsensor);
+    this.renderWindow.render();
+  }
+
+//移除传感器在所选择的巷道中的位置
+clearpipsensor(){
+  this.actorpipsensors.forEach((actor) => {
+    this.renderer.removeActor(actor);
+  });
+}
+
+// 显示所选管道监测点位置
+addpipjc(pid,site){
+    console.log(1111)
+    let pipe =this.pipeByPid(pid);
+    console.log("管道数据",pipe)
+    if(this.actorpipjcs.length==0){
+      const actorpipjc = vtkActor.newInstance();
+      const pipjcMapper = vtkMapper.newInstance();
+      pipjcMapper.setInputConnection(this.jcreader.getOutputPort());
+      actorpipjc.setMapper(pipjcMapper);
+      actorpipjc.setScale(0.2,0.2,0.2);//放大
+      actorpipjc.getProperty().setColor(JCDCOLOR);
+      this.actorpipjcs.push(actorpipjc);
+    }
+    const actorpipjc =this.actorpipjcs[0];  
+    let point1 = this.pointByPipeNodeId(pipe.snId);
+    let point2 = this.pointByPipeNodeId(pipe.enId);
+    let py = site/(1.01-site);
+    let pipsite_point=[
+      (point1[0]+py*point2[0])/(1+py),
+      (point1[1]+py*point2[1])/(1+py),
+      (point1[2]+py*point2[2])/(1+py),
+      ] 
+    actorpipjc.setPosition(pipsite_point);
+    this.renderer.addActor(actorpipjc);
+    this.renderWindow.render();
+  }
+
+//移除监测点在所选择的巷道中的位置
+clearpipjc(){
+  this.actorpipjcs.forEach((actor) => {
+    this.renderer.removeActor(actor);
+  });
+}
+
 // 安全路径显示
 safetypath(rows){
   this.renderWindowWith.resize();
@@ -1153,6 +1230,13 @@ safetypathremove(){
     this.renderWindow.render();
   }
 
+  delAll() {
+    this.deljc();
+    this.delSensor();
+    this.delSoures();
+    this.delpump();
+  }
+
 
   //选中指定点
   selectByNodeId(nid) {

+ 5 - 4
src/view/components/MenuCheck.vue

@@ -316,7 +316,8 @@ const handleDelete = (val) => {
     cid.value=val.cid
     console.log( tableobj.value );
 
-    vtkmodel.clearJgAddMode();
+    // vtkmodel.clearJgAddMode();
+    vtkmodel.delAll();
     vtkmodel.selectByJCId(val.cid)
 }
 // 删除
@@ -489,7 +490,7 @@ const projectsSelectionSelect=(selection, row)=>{
       vtkmodel.clearJgAddMode();
     //选中指定管道
     vtkmodel.selectByPipeId(multipleSelection.value[0].id);
-    vtkmodel.addpipsite(multipleSelection.value[0].id, 0.0);
+    vtkmodel.addpipjc(multipleSelection.value[0].id, 0.0);
 
        }else{
         // selectstr.value='';
@@ -506,11 +507,11 @@ const projectsSelectionSelect=(selection, row)=>{
      
 const inputnumberChange = (val) => {
   console.log("tableobj.value",tableobj.value)
-  vtkmodel.addpipsite(tableobj.value.pid, val);
+  vtkmodel.addpipjc(tableobj.value.pid, val);
 }
 
 const clearvtk = () => {
-  vtkmodel.clearpipsite();
+  vtkmodel.clearpipjc();
   vtkmodel.selectNoting();
 }
 

+ 4 - 2
src/view/components/MenuMine.vue

@@ -1449,7 +1449,8 @@ const changejm=(val)=>{
       nodedata.value = val;
       // console.log("选中的节点数据:", nodedata.value);
 
-      vtkmodel.clearJgAddMode();
+      // vtkmodel.clearJgAddMode();
+      vtkmodel.delAll();
       //选中指定节点
       vtkmodel.selectByNodeId(nodedata.value.id);
   
@@ -1461,7 +1462,8 @@ const changejm=(val)=>{
       bfname.value= gddata.value.bfname;
 
       // console.log("选中的管道数据:", gddata.value);
-      vtkmodel.clearJgAddMode();
+      // vtkmodel.clearJgAddMode();
+      vtkmodel.delAll();
       //选中指定管道
       vtkmodel.selectByPipeId(gddata.value.id);
   }

+ 4 - 3
src/view/components/MenuSensor.vue

@@ -189,6 +189,7 @@ const handleDelete = (val) => {
     console.log(val);
 
     // vtkmodel.clearJgAddMode();
+    vtkmodel.delAll();
     vtkmodel.selectBySensorId(val.seid)
 }
 // 删除
@@ -340,16 +341,16 @@ const pipelineapi = (row) => {
     vtkmodel.clearJgAddMode();
     //选中指定管道
     vtkmodel.selectByPipeId(row.id);
-    vtkmodel.addpipsite(row.id, 0.0);
+    vtkmodel.addpipsensor(row.id, 0.0);
 }
 
 const inputnumberChange = (val) => {
   console.log("tableobj.value",tableobj.value)
-  vtkmodel.addpipsite(tableobj.value.pid, val);
+  vtkmodel.addpipsensor(tableobj.value.pid, val);
 }
 
 const clearvtk = () => {
-  vtkmodel.clearpipsite();
+  vtkmodel.clearpipsensor();
   vtkmodel.selectNoting();
 }
 

+ 2 - 0
src/view/components/Menupump.vue

@@ -439,6 +439,8 @@ const handleDelete = (val) => {
   currentrow.value = true
   findhfObjs();
   hfShow.value = true;
+  vtkmodel.delAll();
+  vtkmodel.addpump(val.pid,val.site);
 }
 //选中曲线
 const checkhfObjTable=(val)=>{

+ 2 - 0
src/view/components/Menuventdoor.vue

@@ -233,6 +233,8 @@ let tishi = ref();
 const fmtabxz=(val)=>{
   fmObj.value = val;
   currentrow.value = true
+  vtkmodel.delAll();
+  vtkmodel.addpump(val.pid,val.site);
 }
 const fmupdate=()=>{
   if (JSON.stringify(fmObj.value) == "{}") {

+ 2 - 0
src/view/components/Menuventfan.vue

@@ -233,6 +233,8 @@ let tableobj = ref({});
 const femtabxz=(val)=>{
   femObj.value = val;
   currentrow.value = true
+  vtkmodel.delAll();
+  vtkmodel.addpump(val.pid,val.site);
 }
 const femupdate=()=>{
   if (JSON.stringify(femObj.value) == "{}") {

+ 2 - 1
src/view/components/SetJC.vue

@@ -21,7 +21,7 @@
       </template>
       <div class="mgstamkuang">
       <ul>
-        <li><span>监测点编号:</span>{{JCinfo.cid}}</li>
+        <li><span>监测点编号:</span>{{JCinfo.chcode}}</li>
         <li><span>名称:</span>{{JCinfo.chname}}</li>
         <li><span>所在巷道:</span>{{JCinfo.pname}}</li>
       </ul>
@@ -55,6 +55,7 @@ let texttitle = ref("监测点信息");
 let JCinfo=ref({
   cid: '',
   chname:'',
+  chcode: '',
   pname:''
  
 })

+ 9 - 1
src/view/index/first-left.vue

@@ -340,6 +340,7 @@ const job = ref({
 });
 const formInline = ref({
   region: "Temperature",
+  name: "温度"
 });
 
 const tableData =ref( [
@@ -387,13 +388,19 @@ const indexinit= (id,radio)=>{
   // vtkGridRead()
 if(props.classradio=='Fire'||props.classradio=='Gass'||props.classradio=='Gass1'){
   formInline.value.region="Temperature";
+  formInline.value.name = "温度(℃)";
 }else if(props.classradio=='Water'){
   formInline.value.region="Height";
+  formInline.value.name = "高度"
 }
 myChart.clear();
  readJob();
 }
 function regionchange(val) {
+  // console.log("sss",strResultFormatlist.value)
+  const item = strResultFormatlist.value?.find(obj => obj.value === val)
+  formInline.value.name = item ? item.name : val
+
   let newMap = new Map([
             ["Temperature", "(℃)"],
             ["Pressure", "(Pa)"],
@@ -1049,7 +1056,8 @@ function vtkShow() {
     parseFloat(max.value.toFixed(2))
   ); //设置范围
   // actor.setMapper(mapper);
-  scalarBarActor.setAxisLabel(formInline.value.region);
+  // scalarBarActor.setAxisLabel(formInline.value.region);//英文
+  scalarBarActor.setAxisLabel(formInline.value.name);//中文
   mapper.clearColorArrays(); //强制重建颜色
   actor.getProperty().setOpacity(count.value); //设置错误的透明度使得页面重新加载  不设置不刷新页面
   actor.getProperty().setOpacity(0.5);