Drawing Table

Drawing Table

Anonymous
Not applicable
501 Views
1 Reply
Message 1 of 2

Drawing Table

Anonymous
Not applicable

Hi all,

 

I'm new to tables, but I'm assuming this takes an ilogic rule to make.  I need a table to appear on the top left of each drawing.  The table just on column and  the amount of rows it has depends on the number of objects written in an iproperty field.   If the parts custom iproperty 'Routing Steps' = "`" then no table. Something like:

 

oModelDoc = IO.Path.GetFileName(ThisDrawing.ModelDocument.FullFileName)

TableValues = iProperties.Value(oModelDoc, "Custom", "Routing Steps")

 If there is "SHEET METAL INSIDE FAB ASSY B/O" in he Routing Steps field, the table should look like:

 

Routing Steps:

Sheet Metal

Inside Fab

ASSY B/O

 

The most columns there will ever be is six.

0 Likes
502 Views
1 Reply
Reply (1)
Message 2 of 2

WCrihfield
Mentor
Mentor

Here is an example iLogic rule that will create a new custom table that has 5 columns and 6 rows, and places it onto your 'active' drawing, and fills it in with generic data.

You can study this example to help you build your own custom table the way you want it.

If ThisApplication.ActiveDocumentType <> DocumentTypeEnum.kDrawingDocumentObject Then
	MsgBox("A Drawing Document must be active for this rule to work. Exiting.",vbOKOnly+vbCritical, "WRONG DOCUMENT TYPE")
	Exit Sub
End If
Dim oDDoc As DrawingDocument = ThisDrawing.Document
Dim oSheet As Inventor.Sheet = oDDoc.ActiveSheet

Dim oTitle As String = "CUSTOM TABLE TITLE"
Dim oTG As TransientGeometry = ThisApplication.TransientGeometry
Dim oPPoint As Point2d = oTG.CreatePoint2d(0, 0)
Dim oCols As Integer = 5
Dim oRows As Integer = 6
'Number of column titles supplied must match number of columns specified
'Dim oColTitles() As String = {" ", "Dimension L1", "Dimension L2", "Material", "Cost" }
'or
Dim oColTitles(oCols - 1) As String
oColTitles(0) = " " '1st column title
oColTitles(1) = "Column 2 Title" '2nd column title
oColTitles(2) = "Column 3 Title" '3rd column title
oColTitles(3) = "Material" '4th column title
oColTitles(4) = "Cost" '5th column title

'Contents must be a 'single dimension' array of String.
'the number of entries supplied in Contents must match the number of cells in the table
Dim oCells As Integer = (oCols * oRows) -1 'minus the 1, because an array starts at zero, instead of 1
Dim oContents(oCells) As String
For oCell As Integer = 0 To oCells
	oContents(oCell) = "Cell " & oCell
Next

'Dim oColWidths() As Double = {1.25, 2.5, 2.5, 1.5, 1.25 }
'or
'could run a function here to determine how wide each column needs to be, then set them individually
Dim oColWidths(oCols - 1) As Double
oColWidths(0) = 1.25 '1st column width
oColWidths(1) = 2.5
oColWidths(2) = 2.5
oColWidths(3) = 1.5
oColWidths(4) = 1.25 '5th column width

'Dim oRowHeights() As Double = {.25, .25, .25, .25, .25, .25 }
'or
'could run a function here to determine how tall each row needs to be, then set them individually
Dim oRowHeights(oRows - 1) As Double
For oRow As Integer = 0 To (oRows-1)
	oRowHeights(oRow) = .25
Next

Dim oCTable As CustomTable = oSheet.CustomTables.Add(oTitle, oPPoint, oCols, oRows, oColTitles, oContents, oColWidths, oRowHeights)

If this solved your problem, or answered your question, please click ACCEPT SOLUTION.
Or, if this helped you, please click (LIKE or KUDOS) 👍.

If you have time, please... Vote For My IDEAS 💡or you can Explore My CONTRIBUTIONS

Wesley Crihfield

EESignature

(Not an Autodesk Employee)

0 Likes