web.pawan 发表于 2010-6-15 22:32:57

无法在cms中绘图

嗨,
我有一个打印问题。我想以厘米(厘米)打印绘图,我有两个选择
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;
        }
}

**** Hidden Message *****
页: [1]
查看完整版本: 无法在cms中绘图