1. long8-龙8(中国)唯一官方网站

      .Net开发中20-22版本的龙8cad,添加纸张后,通过代码的方式无法立即获取到,只有cad重启后才可以获取

      .Net开发中20-22版本的龙8cad,添加纸张后,通过代码的方式无法立即获取到,只有cad重启后才可以获取,手动从打印页面操作pc3添加和代码方式都不行,并且在打印页面可以手动选择正常打印,但通过API无法获取到最新图纸库,只有重启之后才可以获取到,而23及其以上版本只需要在获取图纸库之前执行

      PlotSettingsValidator plotSettingsValidator = PlotSettingsValidator.Current;

      plotSettingsValidator.RefreshLists(new PlotSettings(true));

      即可获取到最新纸张。以下是我读取打印机纸张内容的操作,medlist为获取到的图纸库信息,请注意我已经确保了打印机可以被识别和读取,重点是当我在当前添加纸张后,若不重启cad则无法获取最新的图纸库,尽管在打印页面已经显示出来了。

      var doc = Gcad_ApplicationServices.Application.DocumentManager.MdiActiveDocument;
      var db = doc.Database;
      PlotSettingsValidator psv = PlotSettingsValidator.Current;
      PlotSettings ps = null;
      using (var trans = db.TransactionManager.StartTransaction())
      {
      LayoutManager layoutManager = LayoutManager.Current;
      var acLayout = (trans.GetObject(layoutManager.GetLayoutId(layoutManager.CurrentLayout), OpenMode.ForWrite) as Layout);
      PlotSettings plotSettings = new PlotSettings(acLayout.ModelType);
      plotSettings.CopyFrom(acLayout);
      plotSettings.PlotSettingsName = "Gcad_Eplot_PageSetupTest";
      plotSettings.AddToPlotSettingsDictionary(db);
      trans.AddNewlyCreatedDBObject(plotSettings, true);
      ps = plotSettings;


      psv.SetPlotConfigurationName(
      ps,
      GetDeviceName() + ".pc3",
      null
      );
      psv.RefreshLists(ps);

      trans.Commit();
      }

      StringCollection medlist = psv.GetCanonicalMediaNameList(ps);
      已邀请:

      龙8软件的糕糕

      赞同来自:

      您好,

      22以前就是必须重启,23可能修改了这个,可以不用重启了。
      可以私信我您的联系方式,我联系您做进一步交流。

      该问题目前已经被锁定, 无法添加新回复

      友情链接: