Message 1 of 4
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi,
i ' harvested' all the Borderdefinitions from a 'root' drawing.
i'm trying to replace a border in an .idw with a Border generated from one of the 'harvested' Borderdefinitons, but i get a E_INVALIDARG error on sheet.AddBorder(borderdefinition) in PlaceWatermark ??
Dictionary<int,Inventor.BorderDefinition> BorderDefinitionDictionary { get; set; }
public void HarvestBorders(string drawingfullpath)
{
Inventor.DrawingDocument oDrawDoc;
oDrawDoc = (Inventor.DrawingDocument)_inventordataService.invApp.Documents.Open(drawingfullpath, false);
foreach (Inventor.BorderDefinition borderdef in oDrawDoc.BorderDefinitions)
{
BorderList.Add(borderdef);
string[] chuncks = borderdef.Name.Split('-');
if (chuncks.Contains("A4") && chuncks.Contains("Landscape")) BorderDefinitionDictionary.Add(1, borderdef);
if (chuncks.Contains("A4") && chuncks.Contains("Portrait")) BorderDefinitionDictionary.Add(2, borderdef);
if (chuncks.Contains("A3") && chuncks.Contains("Landscape")) BorderDefinitionDictionary.Add(3, borderdef);
if (chuncks.Contains("A3") && chuncks.Contains("Portrait")) BorderDefinitionDictionary.Add(4, borderdef);
if (chuncks.Contains("A2") && chuncks.Contains("Landscape")) BorderDefinitionDictionary.Add(5, borderdef);
if (chuncks.Contains("A2") && chuncks.Contains("Portrait")) BorderDefinitionDictionary.Add(6, borderdef);
if (chuncks.Contains("A1") && chuncks.Contains("Landscape")) BorderDefinitionDictionary.Add(7, borderdef);
if (chuncks.Contains("A1") && chuncks.Contains("Portrait")) BorderDefinitionDictionary.Add(8, borderdef);
if (chuncks.Contains("A0") && chuncks.Contains("Landscape")) BorderDefinitionDictionary.Add(9, borderdef);
if (chuncks.Contains("A0") && chuncks.Contains("Portrait")) BorderDefinitionDictionary.Add(10, borderdef);
}
}
public void PlaceWatermark(string FullPathDrawing)
{
string or = string.Empty;
string si = string.Empty;
Inventor.DrawingDocument oDrawDoc = null;
Inventor.DrawingSheetSizeEnum size;
Inventor.PageOrientationTypeEnum orientation;
oDrawDoc = (Inventor.DrawingDocument)_inventordataService.invApp.Documents.Open(FullPathDrawing, false);
Inventor.Sheet Sheet = oDrawDoc.ActiveSheet;
orientation = Sheet.Orientation;
size = Sheet.Size;
switch (orientation)
{
case PageOrientationTypeEnum.kLandscapePageOrientation:
or = "Landscape";
break;
case PageOrientationTypeEnum.kPortraitPageOrientation:
or = "Portrait";
break;
default:
break;
}
switch (size)
{
case DrawingSheetSizeEnum.kA4DrawingSheetSize:
si = "A4";
break;
case DrawingSheetSizeEnum.kA3DrawingSheetSize:
si = "A3";
break;
case DrawingSheetSizeEnum.kA2DrawingSheetSize:
si = "A2";
break;
case DrawingSheetSizeEnum.kA1DrawingSheetSize:
si = "A1";
break;
case DrawingSheetSizeEnum.kA0DrawingSheetSize:
si = "A0";
break;
}
// Iterate over all sheets in the Drawing
foreach (Inventor.Sheet sheet in oDrawDoc.Sheets)
{
sheet.Activate();
Inventor.BorderDefinition borderdefinition = null;
if (si == "A4" && or == "Landscape") borderdefinition = BorderDefinitionDictionary[1];
if (si == "A4" && or == "Portrait") borderdefinition = BorderDefinitionDictionary[2];
if (si == "A3" && or == "Landscape") borderdefinition = BorderDefinitionDictionary[3];
if (si == "A3" && or == "Portrait") borderdefinition = BorderDefinitionDictionary[4];
if (si == "A2" && or == "Landscape") borderdefinition = BorderDefinitionDictionary[5];
if (si == "A2" && or == "Portrait") borderdefinition = BorderDefinitionDictionary[6];
if (si == "A1" && or == "Landscape") borderdefinition = BorderDefinitionDictionary[7];
if (si == "A1" && or == "Portrait") borderdefinition = BorderDefinitionDictionary[8];
if (si == "A0" && or == "Landscape") borderdefinition = BorderDefinitionDictionary[9];
if (si == "A0" && or == "Portrait") borderdefinition = BorderDefinitionDictionary[10];
sheet.Border.Delete();
sheet.AddBorder(borderdefinition);
oDrawDoc.Save();
}
Solved! Go to Solution.