⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs_filterdxf1.cpp

📁 Linux下一个开源的CAD软件
💻 CPP
📖 第 1 页 / 共 4 页
字号:
                                    //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 + -