private void acPlotSection()
{
Document doc = AcadApp.DocumentManager.MdiActiveDocument;
using (ResultBuffer buffer
= new ResultBuffer
()) {
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"_-Plot")); // 1- detail plot configuration
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acYES")))); // 2- layout name
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, LayoutManager
.Current.CurrentLayout)); // 3- device name
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
this.cboPrinter.SelectedItem.ToString())); // 4- paper size
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
this.cboMedia.SelectedItem.ToString())); // 5- paper units
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
((pltSet
.PlotPaperUnits == PlotPaperUnit
.Millimeters) ? "M" : UTIL
.showRscText(rm
.GetString("acInches"))))); // 6- drawing orientation
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
(this.rbLandscape.Checked) ? UTIL
.showRscText(rm
.GetString("acLandscape")) : "P")); // 7- symetrie verticale
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); // 8- plot area
if (this.cboArea.SelectedIndex == 1)
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acWindow")))); buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTPOINT, pltWindow
.MinPoint)); buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTPOINT, pltWindow
.MaxPoint)); }
else if (this.cboArea.SelectedIndex == 2)
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acLayout")))); }
else
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"E")); }
// plot scale
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acFit")))); }
else
{
if (pltSet.UseStandardScale == true)
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTREAL, pltSet
.StdScale)); }
else
{
CustomScale scale = pltSet.CustomPrintScale;
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTREAL, scale
.Numerator / scale
.Denominator)); }
}
// plot offset
if (this.cboArea.SelectedIndex == 2)
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTPOINT,
new Point2d
(0,
0))); }
else
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"C")); }
// plot style
if (this.chkStyle.Checked && this.cboStyle.SelectedIndex > 0) {
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acYES")))); buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
this.cboStyle.SelectedItem.ToString())); }
else
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
".")); }
// line weights
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acYES")))); // lineweight with plot scale
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); // paper space object first
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); // hide paper space object
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); // plot file
string outFile = savePath;
if (this.cboPrinter.SelectedItem.ToString().ToUpper().Contains("DWF"))
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, outFile
.Remove(outFile
.Length - 4) + " " + LayoutManager
.Current.CurrentLayout + ".dwf")); }
else if (this.cboPrinter.SelectedItem.ToString().ToUpper().Contains("PDF"))
{
if (!this.cboPrinter.SelectedItem.ToString().ToUpper().StartsWith("DWG TO PDF"))
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); }
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, outFile
.Remove(outFile
.Length - 4) + " " + LayoutManager
.Current.CurrentLayout + ".pdf")); }
else
{
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); }
// save changes to page setup
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR,
"N")); // proceed with plot
buffer
.Add(new Autodesk
.AutoCAD.DatabaseServices.TypedValue(RTSTR, UTIL
.showRscText(rm
.GetString("acYES"))));
// No error message but not working
//acedCmd(buffer.UnmanagedObject);
// Both not working, error message
//doc.Editor.Command(buffer.UnmanagedObject);
doc.Editor.CommandAsync(buffer.UnmanagedObject);
}
}