收藏0
分享

上下文代码可以多提供点吗? 另外问下这些代码是想做什么 应该是做打印功能吧,我看了下常规这么写:   &nbs…

上下文代码可以多提供点吗? 另外问下这些代码是想做什么 应该是做打印功能吧,我看了下常规这么写:

                    BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForRead);

                    Layout lo = (Layout)tr.GetObject(btr.LayoutId, OpenMode.ForRead);

                    // We need a PlotInfo object
                    // linked to the layout
                    PlotInfo pi = new PlotInfo();
                    pi.Layout = btr.LayoutId;

                    // We need a PlotSettings object
                    // based on the layout settings
                    // which we then customize
                    PlotSettings ps = new PlotSettings(lo.ModelType);//flag
                    ps.CopyFrom(lo);

                    // The PlotSettingsValidator helps
                    // create a valid PlotSettings object
                    PlotSettingsValidator psv = PlotSettingsValidator.Current;

                    // We’ll plot the extents, centered and
                    // scaled to fit

                    psv.SetPlotType(ps, ZwSoft.ZwCAD.DatabaseServices.PlotType.Extents);//flag

2 条评论 A文章作者 M管理员
  1. aHero

    谢谢回答。我粘贴的代码上下文信息是已经有了打印设置(设置过程类似您贴的代码),名字是pageSetupName,代码根据这个名字从acPlSetDic获取打印设置的ObjectId,根据ObjectId获取Object,然后就在这一步出错了。查看调式信息,正常返回ObjectId(acPlSetId ),if语句判断ObjectId的类型也是PlotSettings,但用(PlotSettings)…转换时却出错了,提示无法转换。 这段代码只在中望CAD2022、2023、2024出错,中望CAD2025可正常运行

    • 周永成

      我查到了我们系统的记录,确实存在这个问题,不过反馈的开发商特别的少所以老版本没有解决,所以在新版本才修复的。 建议是老版本可否修改成PlotSettings ps = new PlotSettings(lo.ModelType);的方式创建,按我经验实际应用过程中很少设计师在dwg中保存打印配置,如果用已保存的打印配置估计只能处理少部分场景, new PlotSettings配置可以自己配置打印信息应该更适合。

购物车
优惠劵
今日签到
有新私信 私信列表
搜索
复制链接
微信扫码
已复制到剪贴板