📄 rs_filterdxf1.cpp
字号:
//if(currentLayer) //currentLayer->setStyle( graphic->nameToStyle(dxfLine) ); pen.setLineType(RS_FilterDXF::nameToLineType(dxfLine)); break; case 39: // Thickness //if(currentLayer) currentLayer->setWidth(dxfLine.toInt()); pen.setWidth(RS_FilterDXF::numberToWidth(dxfLine.toInt())); break; case 62: // Color pen.setColor(RS_FilterDXF::numberToColor(dxfLine.toInt())); //if(currentLayer) { // currentLayer->setColor( graphic->numberToColor(dxfLine.toInt(), !oldColorNumbers)); //} break; default: break; } } } } while(dxfCode && code!=0); if (currentLayer) { currentLayer->setPen(pen); } //graphic->setStyle("CONTINOUS"); //graphic->setWidth(0); //graphic->setColor(0, false); } // ------ // Point: // ------ else if(dxfLine=="POINT") { do { dxfCode=getBufLine(); if(dxfCode) code=dxfCode.toInt(); if(dxfCode && code!=0) { dxfLine=getBufLine(); if(dxfLine) { switch(code) { case 6: // style pen.setLineType(RS_FilterDXF::nameToLineType(dxfLine)); break; case 8: // Layer //if(dxfLine!=lastLayer) { if (dxfLine=="(null)" || dxfLine=="default") { dxfLine = "0"; } graphic->activateLayer(dxfLine); //lastLayer=dxfLine; //} break; case 10: // X1 dxfLine.replace( QRegExp(","), "." ); vx1 = dxfLine.toDouble(); break; case 20: // Y1 dxfLine.replace( QRegExp(","), "." ); vy1 = dxfLine.toDouble(); break; case 39: // Thickness pen.setWidth(RS_FilterDXF::numberToWidth(dxfLine.toInt())); break; case 62: // Color pen.setColor(RS_FilterDXF::numberToColor(dxfLine.toInt())); break; default: break; } } } } while(dxfCode && code!=0); graphic->setActivePen(pen); graphic->addEntity(new RS_Point(graphic, RS_PointData(RS_Vector(vx1, vy1)))); } // ----- // Line: // ----- else if(dxfLine=="LINE") { do { dxfCode=getBufLine(); if(dxfCode) code=dxfCode.toInt(); if(dxfCode && code!=0) { dxfLine=getBufLine(); if(dxfLine) { switch(code) { case 6: // style pen.setLineType(RS_FilterDXF::nameToLineType(dxfLine)); break; case 8: // Layer //if(dxfLine!=lastLayer) { if (dxfLine=="(null)" || dxfLine=="default") { dxfLine = "0"; } graphic->activateLayer(dxfLine); //lastLayer=dxfLine; //} break; case 10: // X1 dxfLine.replace( QRegExp(","), "." ); vx1 = dxfLine.toDouble(); break; case 20: // Y1 dxfLine.replace( QRegExp(","), "." ); vy1 = dxfLine.toDouble(); break; case 11: // X2 dxfLine.replace( QRegExp(","), "." ); vx2 = dxfLine.toDouble(); break; case 21: // Y2 dxfLine.replace( QRegExp(","), "." ); vy2 = dxfLine.toDouble(); break; case 39: // Thickness pen.setWidth(RS_FilterDXF::numberToWidth(dxfLine.toInt())); break; case 62: // Color pen.setColor(RS_FilterDXF::numberToColor(dxfLine.toInt())); break; default: break; } } } } while(dxfCode && code!=0); //if(!mtCompFloat(vx1, vx2) || !mtCompFloat(vy1, vy2)) { //graphic->addLine(vx1, vy1, vx2, vy2, currentLayerNum, add); graphic->setActivePen(pen); graphic->addEntity(new RS_Line(graphic, RS_LineData(RS_Vector(vx1, vy1), RS_Vector(vx2, vy2)))); //} } // ---- // Arc: // ---- else if(dxfLine=="ARC") { do { dxfCode=getBufLine(); if(dxfCode) code=dxfCode.toInt(); if(dxfCode && code!=0) { dxfLine=getBufLine(); if(dxfLine) { switch(code) { case 6: // style pen.setLineType(RS_FilterDXF::nameToLineType(dxfLine)); break; case 8: // Layer //if(dxfLine!=lastLayer) { if (dxfLine=="(null)" || dxfLine=="default") { dxfLine = "0"; } graphic->activateLayer(dxfLine); //lastLayer=dxfLine; //} break; case 10: // Centre X dxfLine.replace( QRegExp(","), "." ); vcx = dxfLine.toDouble(); break; case 20: // Centre Y dxfLine.replace( QRegExp(","), "." ); vcy = dxfLine.toDouble(); break; case 40: // Radius dxfLine.replace( QRegExp(","), "." ); vcr = dxfLine.toDouble(); break; case 50: // Start Angle dxfLine.replace( QRegExp(","), "." ); va1 = RS_Math::correctAngle(dxfLine.toDouble()/ARAD); break; case 51: // End Angle dxfLine.replace( QRegExp(","), "." ); va2 = RS_Math::correctAngle(dxfLine.toDouble()/ARAD); break; case 39: // Thickness pen.setWidth(RS_FilterDXF::numberToWidth(dxfLine.toInt())); break; case 62: // Color pen.setColor(RS_FilterDXF::numberToColor(dxfLine.toInt())); break; default: break; } } } } while(dxfCode && code!=0); //if(vcr>0.0 && !mtCompFloat(va1, va2)) { // graphic->addArc(vcx, vcy, vcr, va1, va2, false, currentLayerNum, add); //} graphic->setActivePen(pen); graphic->addEntity(new RS_Arc(graphic, RS_ArcData(RS_Vector(vcx, vcy), vcr, va1, va2, false))); } // ------- // Circle: // ------- else if(dxfLine=="CIRCLE") { do { dxfCode=getBufLine(); if(dxfCode) code=dxfCode.toInt(); if(dxfCode && code!=0) { dxfLine=getBufLine(); if(dxfLine) { switch(code) { case 6: // style pen.setLineType(RS_FilterDXF::nameToLineType(dxfLine)); break; case 8: // Layer //if(dxfLine!=lastLayer) { if (dxfLine=="(null)" || dxfLine=="default") { dxfLine = "0"; } graphic->activateLayer(dxfLine); //lastLayer=dxfLine; //} break; case 10: // Centre X dxfLine.replace( QRegExp(","), "." ); vcx = dxfLine.toDouble(); break; case 20: // Centre Y dxfLine.replace( QRegExp(","), "." ); vcy = dxfLine.toDouble(); break; case 40: // Radius dxfLine.replace( QRegExp(","), "." ); vcr = dxfLine.toDouble(); break; case 39: // Thickness pen.setWidth(RS_FilterDXF::numberToWidth(dxfLine.toInt())); break; case 62: // Color pen.setColor(RS_FilterDXF::numberToColor(dxfLine.toInt())); break; default: break; } } } } while(dxfCode && code!=0); /*if(vcr>0.0) { graphic->addCircle(vcx, vcy, vcr, 0.0, 360.0, false, currentLayerNum, add); }*/ graphic->setActivePen(pen); graphic->addEntity(new RS_Circle(graphic, RS_CircleData(RS_Vector(vcx, vcy), vcr))); } // ------ // Hatch: // ------ /* if(dxfLine=="HATCH") {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -