diff --git a/testHasttable/aclinesegment.cpp b/testHasttable/aclinesegment.cpp index 0c90676..ec882e8 100644 --- a/testHasttable/aclinesegment.cpp +++ b/testHasttable/aclinesegment.cpp @@ -64,6 +64,11 @@ QString ACLineSegment::getTerminalB() return this->terminalB; } +void ACLineSegment::setLength(double length) +{ + this->conductorLength=length; +} + bool ACLineSegment::parse(QXmlStreamReader &reader) { return this->parseBasicInfo(reader); diff --git a/testHasttable/aclinesegment.h b/testHasttable/aclinesegment.h index cb3f0bd..0ff1fc8 100644 --- a/testHasttable/aclinesegment.h +++ b/testHasttable/aclinesegment.h @@ -10,6 +10,7 @@ public: QString getTerminalB(); double getLength(); QString getNamingDescription(); + void setLength(double length); protected: QString terminalA; QString terminalB; diff --git a/testHasttable/cimexporter.cpp b/testHasttable/cimexporter.cpp index e84ad1f..0102b46 100644 --- a/testHasttable/cimexporter.cpp +++ b/testHasttable/cimexporter.cpp @@ -136,20 +136,20 @@ void CIMExporter::exportTo(const QString& path,const QString &rootID) writer<(l.length)==0) - { - writer<<0.01<(l.length)==0) +// { +// writer<<0.01<r<x<b1<b2<& fromTo, ACLineSegment* ac, QObject *par } +void Line::re_extract() +{ + this->extract(); +} void Line::extract() { //用YJV22-3x240 ACLineSegment *ac=this->ac; double length=ac->getLength(); + this->length=length; // if((int)length==0) // { // std::cout<<"line length zeros "<getID().toStdString()<g2=g0*length/1000; this->b1=b0*length/1000; this->b2=b0*length/1000; - this->length=length/1000; + } diff --git a/testHasttable/element/line.h b/testHasttable/element/line.h index f529d6f..f55244c 100644 --- a/testHasttable/element/line.h +++ b/testHasttable/element/line.h @@ -8,6 +8,7 @@ class Line:public Branch { public: Line(const QPair &fromTo, ACLineSegment* ac,QObject* parent=0); + void re_extract(); double length; ACLineSegment *ac; diff --git a/testHasttable/elementreduction.cpp b/testHasttable/elementreduction.cpp index 755fb92..0234a9e 100644 --- a/testHasttable/elementreduction.cpp +++ b/testHasttable/elementreduction.cpp @@ -59,6 +59,15 @@ void ElementReduction::doIt(const QString& rootID) this->merge(element,idToBranch); this->reduceSection(); + //因为有线路合并,线路长度变了,所以要重新计算参数 + foreach(BranchStruc* v,this->branchList) + { + LineStru *line=static_cast(v); + if(line!=NULL) + { + line->line->re_extract(); + } + } // QFile file("1.xml"); // if(file.open(QFile::WriteOnly)) @@ -274,6 +283,7 @@ void ElementReduction::reduceSection() if(lineBranch) { lineBranch->line->length=branch->length; + lineBranch->line->ac->setLength(branch->length);//TODO:线路的这个长度还是要统一一下,否则很容易出错。 }else { std::cout<<"can not conver from BranchStruc to LineStru"<