.Net開發(fā)中20-22版本的浩辰cad,添加紙張后,通過代碼的方式無法立即獲取到,只有cad重啟后才可以獲取
.Net開發(fā)中20-22版本的浩辰cad,添加紙張后,通過代碼的方式無法立即獲取到,只有cad重啟后才可以獲取,手動從打印頁面操作pc3添加和代碼方式都不行,并且在打印頁面可以手動選擇正常打印,但通過API無法獲取到最新圖紙庫,只有重啟之后才可以獲取到,而23及其以上版本只需要在獲取圖紙庫之前執(zhí)行
PlotSettingsValidator plotSettingsValidator = PlotSettingsValidator.Current;
plotSettingsValidator.RefreshLists(new PlotSettings(true));
即可獲取到最新紙張。以下是我讀取打印機紙張內(nèi)容的操作,medlist為獲取到的圖紙庫信息,請注意我已經(jīng)確保了打印機可以被識別和讀取,重點是當(dāng)我在當(dāng)前添加紙張后,若不重啟cad則無法獲取最新的圖紙庫,盡管在打印頁面已經(jīng)顯示出來了。
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);
PlotSettingsValidator plotSettingsValidator = PlotSettingsValidator.Current;
plotSettingsValidator.RefreshLists(new PlotSettings(true));
即可獲取到最新紙張。以下是我讀取打印機紙張內(nèi)容的操作,medlist為獲取到的圖紙庫信息,請注意我已經(jīng)確保了打印機可以被識別和讀取,重點是當(dāng)我在當(dāng)前添加紙張后,若不重啟cad則無法獲取最新的圖紙庫,盡管在打印頁面已經(jīng)顯示出來了。
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);
沒有找到相關(guān)結(jié)果
已邀請:
1 個回復(fù)
浩辰軟件的糕糕
贊同來自:
您好,
22以前就是必須重啟,23可能修改了這個,可以不用重啟了。
可以私信我您的聯(lián)系方式,我聯(lián)系您做進一步交流。