嗨,
我有一个打印问题。我想以厘米(厘米)打印绘图,我有两个选择
1.我可以使用标准比例,在AcDbPlotSettings中设置单位::kMillimeters并使用比例类型作为AcDbPlotSettings::k10_1,10mm = 1cm
2.我可以使用自定义比例,在AcDbPlotSettings中设置单位::kMillimeters或英寸,并正确转换1单位= 10(mm)或1单位= 2.54(对于英寸)
我无法打印 10 厘米的线条。我觉得我错过了设置更多的配置。
我附上了可编译的win32项目。只需将示例\testline_10cms.dwg复制到 c:\temp。该项目将文件名作为输入并转换为文件名.pdf
有人可以帮忙吗?
- void CPlotApi2::setPlotConfiguration()
- {
- Acad::ErrorStatus es;
- double xOrigin,yOrigin;
- PlotPaperUnits units;
- xOrigin = 0.0;
- yOrigin = 0.0;
- if(requestedPlotType == FIT_TO_PAPER_STANDARD_SCALE)//without scale
- {
- m_iPlotType = AcDbPlotSettings::kExtents;
- m_Landscape=true;
- }
- else //ACTUAL_SIZE_CUSTOM_SCALE_IN_CMS
- {
- //part print, full extent, proper scale
- m_iPlotType = AcDbPlotSettings::kExtents;
- // m_Landscape=true;
- }
-
- es = pPSV->setPlotType(pPlotSettings, (PlotType) m_iPlotType);
- if(m_Landscape)
- es=pPSV->setPlotRotation(pPlotSettings,AcDbPlotSettings::k90degrees);
- else
- es=pPSV->setPlotRotation(pPlotSettings,AcDbPlotSettings::k0degrees);
- es = pPSV->setPlotCentered(pPlotSettings, Adesk::kTrue);
- switch(requestedPlotType)
- {
- case ACTUAL_SIZE_CUSTOM_SCALE_IN_CMS:
- //in case don't wanted centered
- // es = pPSV->setPlotCentered(pPlotSettings, Adesk::kFalse);
- // es = pPSV->setPlotOrigin(pPlotSettings, xOrigin, yOrigin);
- //set units
- // units = AcDbPlotSettings::kInches;
- units = AcDbPlotSettings::kMillimeters;
- es = pPSV->setPlotPaperUnits(pPlotSettings,(PlotPaperUnits) units);
- //set custome scaled 1unit=10mm(mms), or 1unit=2.54cms(inches)
- m_Scale = 10; //2.54;
- // es = pPSV->setUseStandardScale(pPlotSettings,Adesk::kFalse);
- //use custom scale
- // es = pPSV->setCustomPrintScale(pPlotSettings,m_Scale, 1);
-
- //in case use standard scale with k10_1
- es = pPSV->setUseStandardScale(pPlotSettings,Adesk::kTrue);
- //set scale type
- es = pPSV->setStdScaleType(pPlotSettings,AcDbPlotSettings::k10_1);
- break;
- case FIT_TO_PAPER_STANDARD_SCALE: // Choose to use this custom scale...
- default:
- es = pPSV->setUseStandardScale(pPlotSettings,Adesk::kTrue);
- es = pPSV->setStdScaleType(pPlotSettings,AcDbPlotSettings::kScaleToFit);
- break;
- }
- }
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |