I am using VB.net to generate a custom table in my .idw files to make a plot stamp. The table is showing up, however, the text is garbled. When you open the .idw, the table properties show the text correctly but the display is coming out messed up. I have attached a picture of what each looks like. I moved the table off the sheet for clarity.
The code:
Public Sub PlotStamp() Dim oDrawDoc As DrawingDocument oDrawDoc = _invApp.ActiveDocument Dim oInvSheet As Sheet oInvSheet = oDrawDoc.ActiveSheet Dim oTitles_Plot(0) As String oTitles_Plot(0) = CurrentFilename Dim position_Plot As Point2d = _invApp.TransientGeometry.CreatePoint2d((oInvSheet.Border.RangeBox.MinPoint.X), (oInvSheet.Border.RangeBox.MinPoint.Y - 0.125)) Dim oCustomTable_Plot As CustomTable oCustomTable_Plot = oInvSheet.CustomTables.Add(" ", position_Plot, 1, 1, oTitles_Plot) oCustomTable_Plot.ShowTitle = False oCustomTable_Plot.Columns.Item(1).TitleHorizontalJustification = HorizontalTextAlignmentEnum.kAlignTextLeft oCustomTable_Plot.Columns.Item(1).ValueHorizontalJustification = HorizontalTextAlignmentEnum.kAlignTextLeft Dim oFormat_Plot As TableFormat oFormat_Plot = oInvSheet.CustomTables.CreateTableFormat oFormat_Plot.OutsideLineColor = _invApp.TransientObjects.CreateColor(255, 255, 255) oFormat_Plot.InsideLineColor = _invApp.TransientObjects.CreateColor(255, 255, 255) oCustomTable_Plot.OverrideFormat = oFormat_Plot End Sub
Where CurrentFilename is:
CurrentFilename = (CurrentDirectory & "\Submittal_Sheet_" & drawing_count & ".pdf")
Solved! Go to Solution.
Solved by Vladimir.Ananyev. Go to Solution.
I can reproduce this problem in Inventor 2013.
You are right – strings with combinations of backslash “\” with some characters (e.g., \T, \S, etc.) are displayed with defects in custom table and column titles. Sorry.
As a temporary workaround you may consider the following convertor for this kind of strings in column titles:
Function TransformTitle(ByVal St As String) As String Dim ChArray() As Char = { _ "A"c, "B"c, "C"c, "F"c, "G"c, "H"c, _ "I"c, "L"c, "O"c, "S"c, "T"c, "W"c, _ "X"c, "Y"c, "b"c, "c"c, "f"c, "i"c, _ "l"c, "o"c, "q"c, "x"c, "y"c} For Each Ch As Char In ChArray St = St.Replace("\" & Ch, "\\" & Ch) Next Return St End Function
Changes in your code:
Dim oTitles_Plot(0) As String
oTitles_Plot(0) = TransformTitle(CurrentFilename)
Thank you very much for this case.