/** * Centers drawing on page. Affects DXF variable $PINSBASE. */ void RS_Graphic::centerToPage() { RS_Vector size = getPaperSize(); double scale = getPaperScale(); RS_Vector pinsbase = (size-getSize()*scale)/2.0 - getMin()*scale; setPaperInsertionBase(pinsbase); }
/** * Centers drawing on page. Affects DXF variable $PINSBASE. */ void RS_Graphic::centerToPage() { RS_Vector size = getPaperSize(); double scale = getPaperScale(); auto&& s=getSize(); auto&& sMin=getMin(); /** avoid zero size, bug#3573158 */ if(fabs(s.x)<RS_TOLERANCE) { s.x=10.; sMin.x=-5.; } if(fabs(s.y)<RS_TOLERANCE) { s.y=10.; sMin.y=-5.; } RS_Vector pinsbase = (size-s*scale)/2.0 - sMin*scale; setPaperInsertionBase(pinsbase); }
/** * Default constructor. */ RS_Graphic::RS_Graphic(RS_EntityContainer* parent) : RS_Document(parent), layerList(), blockList(true),paperScaleFixed(false) { RS_SETTINGS->beginGroup("/Defaults"); setUnit(RS_Units::stringToUnit(RS_SETTINGS->readEntry("/Unit", "None"))); RS_SETTINGS->endGroup(); RS_SETTINGS->beginGroup("/Appearance"); //$ISOMETRICGRID == $SNAPSTYLE addVariable("$SNAPSTYLE",static_cast<int>(RS_SETTINGS->readNumEntry("/IsometricGrid", 0)),70); crosshairType=static_cast<RS2::CrosshairType>(RS_SETTINGS->readNumEntry("/CrosshairType",0)); RS_SETTINGS->endGroup(); RS2::Unit unit = getUnit(); if (unit==RS2::Inch) { addVariable("$DIMASZ", 0.1, 40); addVariable("$DIMEXE", 0.05, 40); addVariable("$DIMEXO", 0.025, 40); addVariable("$DIMGAP", 0.025, 40); addVariable("$DIMTXT", 0.1, 40); } else { addVariable("$DIMASZ", RS_Units::convert(2.5, RS2::Millimeter, unit), 40); addVariable("$DIMEXE", RS_Units::convert(1.25, RS2::Millimeter, unit), 40); addVariable("$DIMEXO", RS_Units::convert(0.625, RS2::Millimeter, unit), 40); addVariable("$DIMGAP", RS_Units::convert(0.625, RS2::Millimeter, unit), 40); addVariable("$DIMTXT", RS_Units::convert(2.5, RS2::Millimeter, unit), 40); } addVariable("$DIMTIH", 0, 70); //initialize printer vars bug #3602444 setPaperScale(getPaperScale()); setPaperInsertionBase(getPaperInsertionBase()); setModified(false); }