Plot pagelayout error ,cad2016 is error,cad2018 and later is right

Plot pagelayout error ,cad2016 is error,cad2018 and later is right

lifanvc
Contributor Contributor
772 Views
7 Replies
Message 1 of 8

Plot pagelayout error ,cad2016 is error,cad2018 and later is right

lifanvc
Contributor
Contributor

 

I want plot from side database. cad2018、cad2019 plot ;but cad2016 error. any one can help me? this is very important for me ,please help me,thanks.

Document acDoc = AcApplication.DocumentManager.MdiActiveDocument;

            var fileName = @"E:\tadi\plottest.dwg";

            using (DocumentLock acLckDoc = acDoc.LockDocument())
            {
                // 
                Database acDb = new Database(false, false);

                acDb.ReadDwgFile(fileName, FileOpenMode.OpenForReadAndAllShare, true, null);

                Database acDbSave = HostApplicationServices.WorkingDatabase;

                HostApplicationServices.WorkingDatabase = acDb;

                using (Transaction acTrans = acDb.TransactionManager.StartTransaction())
                {
                    string handle = "64B";

                    // 
                    long lng = Convert.ToInt64(handle, 16);
                    BlockReference acBrf = acTrans.GetObject(acDb.GetObjectId(false, new Handle(lng), 0), OpenMode.ForRead) as BlockReference;

                    // 
                    BlockTableRecord acBlkTblRec = acTrans.GetObject(acBrf.OwnerId, OpenMode.ForRead) as BlockTableRecord;

                    // 
                    Layout acLayout = acTrans.GetObject(acBlkTblRec.LayoutId, OpenMode.ForRead) as Layout;

                    // 
                    LayoutManager.Current.CurrentLayout = acLayout.LayoutName;

                    // 
                    PlotInfo acPlInfo = new PlotInfo();
                    acPlInfo.Layout = acLayout.ObjectId;

                    // 
                    PlotSettings acPlSet = new PlotSettings(acLayout.ModelType);
                    acPlSet.CopyFrom(acLayout);
                    // 
                    PlotSettingsValidator acPlSetVdr = PlotSettingsValidator.Current;
                    // 
                    acPlSetVdr.SetPlotType(acPlSet,
                    Autodesk.AutoCAD.DatabaseServices.PlotType.Extents);
                    // 
                    acPlSetVdr.SetUseStandardScale(acPlSet, true);
                    acPlSetVdr.SetStdScaleType(acPlSet, StdScaleType.ScaleToFit);
                    // 
                    acPlSetVdr.SetPlotCentered(acPlSet, true);
                    // 
                    acPlSetVdr.SetPlotConfigurationName(acPlSet, "DWG To PDF.pc3", "ANSI_A_(8.50_x_11.00_Inches)");

                    acPlInfo.OverrideSettings = acPlSet;
                    // 
                    PlotInfoValidator acPlInfoVdr = new PlotInfoValidator();
                    acPlInfoVdr.MediaMatchingPolicy = MatchingPolicy.MatchEnabled;
                    acPlInfoVdr.Validate(acPlInfo);
                    // 
                    if (PlotFactory.ProcessPlotState == ProcessPlotState.NotPlotting)
                    {
                        using (PlotEngine acPlEng = PlotFactory.CreatePublishEngine())
                        {
                            // 
                            PlotProgressDialog acPlProgDlg = new PlotProgressDialog(false,
                            1,
                            true);
                            using (acPlProgDlg)
                            {
                                // 
                                acPlProgDlg.set_PlotMsgString(PlotMessageIndex.DialogTitle,
                                "Plot Progress");

                                acPlProgDlg.set_PlotMsgString(PlotMessageIndex.CancelJobButtonMessage,
                                "Cancel Job");
                                acPlProgDlg.set_PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage,
                                "Cancel Sheet");
                                acPlProgDlg.set_PlotMsgString(PlotMessageIndex.SheetSetProgressCaption,
                                "Sheet Set Progress");
                                acPlProgDlg.set_PlotMsgString(PlotMessageIndex.SheetProgressCaption,
                                "Sheet Progress");
                                // 
                                acPlProgDlg.LowerPlotProgressRange = 0;
                                acPlProgDlg.UpperPlotProgressRange = 100;
                                acPlProgDlg.PlotProgressPos = 0;
                                // 
                                acPlProgDlg.OnBeginPlot();
                                acPlProgDlg.IsVisible = true;
                                // 
                                acPlEng.BeginPlot(acPlProgDlg, null);
                                // 
                                acPlEng.BeginDocument(acPlInfo,
                                acDoc.Name,
                                null,
                                1,
                                true,
                                "e:\\myplot");
                                // 
                                acPlProgDlg.set_PlotMsgString(PlotMessageIndex.Status,
                                "Plotting: " + acDoc.Name + " - " +
                                acLayout.LayoutName);
                                // 
                                acPlProgDlg.OnBeginSheet();
                                acPlProgDlg.LowerSheetProgressRange = 0;
                                acPlProgDlg.UpperSheetProgressRange = 100;
                                acPlProgDlg.SheetProgressPos = 0;

                                // 
                                PlotPageInfo acPlPageInfo = new PlotPageInfo();
                                acPlEng.BeginPage(acPlPageInfo,
                                acPlInfo,
                                true,
                                null);
                                
                                acPlEng.BeginGenerateGraphics(null); //  cad2016 error here
                                acPlEng.EndGenerateGraphics(null);
                                // 
                                acPlEng.EndPage(null);
                                acPlProgDlg.SheetProgressPos = 100;
                                acPlProgDlg.OnEndSheet();
                                // 
                                acPlEng.EndDocument(null);
                                // 
                                acPlProgDlg.PlotProgressPos = 100;
                                acPlProgDlg.OnEndPlot();
                                acPlEng.EndPlot(null);
                            }
                        }
                    }
                }

                HostApplicationServices.WorkingDatabase = acDbSave;

                acDb.Dispose();
            }

 

0 Likes
773 Views
7 Replies
Replies (7)
Message 2 of 8

_gile
Consultant
Consultant

Hi,

 

Which version of the SDK (AutoCAD libraries) is your project targetting?

What is the error you get?



Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

0 Likes
Message 3 of 8

lifanvc
Contributor
Contributor

I use cad2016SDK。

the error:
printerror.png

thank you for your help

0 Likes
Message 4 of 8

lifanvc
Contributor
Contributor

the errors:1.png2.png3.png

0 Likes
Message 5 of 8

Alexander.Rivilis
Mentor
Mentor

@lifanvc 

 

AutoCAD 2016 Service Pack 1 was installed?

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes
Message 6 of 8

lifanvc
Contributor
Contributor

4.png

 

not install sp1. install it and try again?

0 Likes
Message 7 of 8

lifanvc
Contributor
Contributor

I installed sp1,still the same error

0 Likes
Message 8 of 8

Alexander.Rivilis
Mentor
Mentor

This may be a bug that has been fixed in future releases of AutoCAD.

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

0 Likes