<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Creating 3D data table - Format help in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11776300#M26658</link>
    <description>&lt;P&gt;I'm converting a multi-dimensional chart into a data table and am trying to better consolidate my code to be friendly for reading/comparing as well as reduce the code footprint required, but I'm getting a bit lost on code format/syntax here and was hoping someone could help me out.&amp;nbsp; I'll explain in depth in case someone else is trying to accomplish this same task and may also find this helpful in their search.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to take this supplied printed table and store it in my iLogic code as a Matrix/Array.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="llorden4_0-1677164208490.png" style="width: 991px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1180428i2DEA9077221C794A/image-dimensions/991x172?v=v2" width="991" height="172" role="button" title="llorden4_0-1677164208490.png" alt="llorden4_0-1677164208490.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Column A (17 row entries) is my bolt size&lt;/P&gt;&lt;P&gt;Column B (12 column entries) is my material thickness&lt;/P&gt;&lt;P&gt;Row C (2 rows) are my desired distance values I want to look up&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been able to digitize this table with the following code...&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(17, 12, 2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;				&lt;SPAN&gt;'(17)Bolt Size / (12)Material Thickness / (2)Distances C &amp;amp; E'&lt;/SPAN&gt;
&lt;SPAN&gt;MyList&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;(){1 + (1 / 8), 1 + (5 / 16), 1 + (3 / 8), 1 + (11 / 16), 2 + (1 / 16), 2 + (1 / 8), 2 + (3 / 16), 2 + (11 / 16), 3 + (9 / 16), 4 + (1 / 16), 4 + (9 / 16), 5 + (9 / 16)}
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12		&lt;SPAN&gt;'1/4 inch bolts&lt;/SPAN&gt;
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(1, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList&lt;/SPAN&gt;(1, &lt;SPAN&gt;i&lt;/SPAN&gt;-1)
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(1, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = 1 / 2
&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;MyList&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;(){1 + (1 / 4), 1 + (7 / 16), 1 + (1 / 2), 1 + (13 / 16), 2 + (3 / 16), 2 + (1 / 4), 2 + (5 / 16), 2 + (13 / 16), 3 + (11 / 16), 4 + (3 / 16), 4 + (11 / 16), 5 + (11 / 16)}
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12		&lt;SPAN&gt;'3/8 inch bolts&lt;/SPAN&gt;
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(2, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;-1)
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(2, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = 1 / 2
&lt;SPAN&gt;Next&lt;/SPAN&gt;
.
.
.&lt;/PRE&gt;&lt;P&gt;So if I wanted to lookup the "C" value for a 1/4" bolt on 9/16 material I could use oHoleChart(1, 6, 1) to find a value of 2.125&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I really want is to do this in a pair of nested For/Next loops so I can group all the "MyList" definitions together so it's friendlier to read against this printed Table and the 2nd loop would reduce my coding.&amp;nbsp; I can't quite figure the format, but here's the jist of what I'm wanting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(17, 12, 2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;				&lt;SPAN&gt;'(17)Bolt Size / (12)Material Thickness / (2)Distances C &amp;amp; E'&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;MyList1&lt;/SPAN&gt;(17, {}) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;					&lt;SPAN&gt;'This doesn't work&lt;/SPAN&gt;
&lt;SPAN&gt;'Dim MyList(17)									'This doesn't work&lt;/SPAN&gt;
&lt;SPAN&gt;'Dim MyList(17, ())								'This doesn't work&lt;/SPAN&gt;
&lt;SPAN&gt;MyList1&lt;/SPAN&gt;(1, {}) = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 + (1 / 8), 1 + (5 / 16), 1 + (3 / 8), 1 + (11 / 16), 2 + (1 / 16), 2 + (1 / 8), 2 + (3 / 16), 2 + (11 / 16), 3 + (9 / 16), 4 + (1 / 16), 4 + (9 / 16), 5 + (9 / 16) }
&lt;SPAN&gt;MyList1&lt;/SPAN&gt;(2, {}) = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 + (1 / 4), 1 + (7 / 16), 1 + (1 / 2), 1 + (13 / 16), 2 + (3 / 16), 2 + (1 / 4), 2 + (5 / 16), 2 + (13 / 16), 3 + (11 / 16), 4 + (3 / 16), 4 + (11 / 16), 5 + (11 / 16) }
.
.
.
&lt;SPAN&gt;MyList1&lt;/SPAN&gt;(17, {}) = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {3 + (9 / 16), 3 + (3 / 4), 3 + (13 / 16), 4 + (1 / 8), 4 + (1 / 2), 4 + (9 / 16), 4 + (5 / 8), 5 + (1 / 8), 6, 6 + (1 / 2), 7, 8 }

&lt;SPAN&gt;MyList2&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 / 2, 1 / 2, 3 / 4 , ...}	&lt;SPAN&gt;'value changes only for bolt size&lt;/SPAN&gt;
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;j&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 17
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12		&lt;SPAN&gt;'1/4 inch bolts&lt;/SPAN&gt;
		&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList1&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;-1)
		&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = &lt;SPAN&gt;MyList2&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;-1)
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Is there a workflow here or is my original concept the only way to go?&lt;/P&gt;</description>
    <pubDate>Thu, 23 Feb 2023 15:22:57 GMT</pubDate>
    <dc:creator>llorden4</dc:creator>
    <dc:date>2023-02-23T15:22:57Z</dc:date>
    <item>
      <title>Creating 3D data table - Format help</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11776300#M26658</link>
      <description>&lt;P&gt;I'm converting a multi-dimensional chart into a data table and am trying to better consolidate my code to be friendly for reading/comparing as well as reduce the code footprint required, but I'm getting a bit lost on code format/syntax here and was hoping someone could help me out.&amp;nbsp; I'll explain in depth in case someone else is trying to accomplish this same task and may also find this helpful in their search.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to take this supplied printed table and store it in my iLogic code as a Matrix/Array.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="llorden4_0-1677164208490.png" style="width: 991px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1180428i2DEA9077221C794A/image-dimensions/991x172?v=v2" width="991" height="172" role="button" title="llorden4_0-1677164208490.png" alt="llorden4_0-1677164208490.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Column A (17 row entries) is my bolt size&lt;/P&gt;&lt;P&gt;Column B (12 column entries) is my material thickness&lt;/P&gt;&lt;P&gt;Row C (2 rows) are my desired distance values I want to look up&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have been able to digitize this table with the following code...&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(17, 12, 2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;				&lt;SPAN&gt;'(17)Bolt Size / (12)Material Thickness / (2)Distances C &amp;amp; E'&lt;/SPAN&gt;
&lt;SPAN&gt;MyList&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;(){1 + (1 / 8), 1 + (5 / 16), 1 + (3 / 8), 1 + (11 / 16), 2 + (1 / 16), 2 + (1 / 8), 2 + (3 / 16), 2 + (11 / 16), 3 + (9 / 16), 4 + (1 / 16), 4 + (9 / 16), 5 + (9 / 16)}
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12		&lt;SPAN&gt;'1/4 inch bolts&lt;/SPAN&gt;
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(1, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList&lt;/SPAN&gt;(1, &lt;SPAN&gt;i&lt;/SPAN&gt;-1)
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(1, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = 1 / 2
&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;MyList&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;(){1 + (1 / 4), 1 + (7 / 16), 1 + (1 / 2), 1 + (13 / 16), 2 + (3 / 16), 2 + (1 / 4), 2 + (5 / 16), 2 + (13 / 16), 3 + (11 / 16), 4 + (3 / 16), 4 + (11 / 16), 5 + (11 / 16)}
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12		&lt;SPAN&gt;'3/8 inch bolts&lt;/SPAN&gt;
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(2, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;-1)
	&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(2, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = 1 / 2
&lt;SPAN&gt;Next&lt;/SPAN&gt;
.
.
.&lt;/PRE&gt;&lt;P&gt;So if I wanted to lookup the "C" value for a 1/4" bolt on 9/16 material I could use oHoleChart(1, 6, 1) to find a value of 2.125&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I really want is to do this in a pair of nested For/Next loops so I can group all the "MyList" definitions together so it's friendlier to read against this printed Table and the 2nd loop would reduce my coding.&amp;nbsp; I can't quite figure the format, but here's the jist of what I'm wanting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(17, 12, 2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;				&lt;SPAN&gt;'(17)Bolt Size / (12)Material Thickness / (2)Distances C &amp;amp; E'&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;MyList1&lt;/SPAN&gt;(17, {}) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;					&lt;SPAN&gt;'This doesn't work&lt;/SPAN&gt;
&lt;SPAN&gt;'Dim MyList(17)									'This doesn't work&lt;/SPAN&gt;
&lt;SPAN&gt;'Dim MyList(17, ())								'This doesn't work&lt;/SPAN&gt;
&lt;SPAN&gt;MyList1&lt;/SPAN&gt;(1, {}) = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 + (1 / 8), 1 + (5 / 16), 1 + (3 / 8), 1 + (11 / 16), 2 + (1 / 16), 2 + (1 / 8), 2 + (3 / 16), 2 + (11 / 16), 3 + (9 / 16), 4 + (1 / 16), 4 + (9 / 16), 5 + (9 / 16) }
&lt;SPAN&gt;MyList1&lt;/SPAN&gt;(2, {}) = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 + (1 / 4), 1 + (7 / 16), 1 + (1 / 2), 1 + (13 / 16), 2 + (3 / 16), 2 + (1 / 4), 2 + (5 / 16), 2 + (13 / 16), 3 + (11 / 16), 4 + (3 / 16), 4 + (11 / 16), 5 + (11 / 16) }
.
.
.
&lt;SPAN&gt;MyList1&lt;/SPAN&gt;(17, {}) = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {3 + (9 / 16), 3 + (3 / 4), 3 + (13 / 16), 4 + (1 / 8), 4 + (1 / 2), 4 + (9 / 16), 4 + (5 / 8), 5 + (1 / 8), 6, 6 + (1 / 2), 7, 8 }

&lt;SPAN&gt;MyList2&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 / 2, 1 / 2, 3 / 4 , ...}	&lt;SPAN&gt;'value changes only for bolt size&lt;/SPAN&gt;
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;j&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 17
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12		&lt;SPAN&gt;'1/4 inch bolts&lt;/SPAN&gt;
		&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList1&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;-1)
		&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = &lt;SPAN&gt;MyList2&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;-1)
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;Is there a workflow here or is my original concept the only way to go?&lt;/P&gt;</description>
      <pubDate>Thu, 23 Feb 2023 15:22:57 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11776300#M26658</guid>
      <dc:creator>llorden4</dc:creator>
      <dc:date>2023-02-23T15:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: Creating 3D data table - Format help</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11776752#M26659</link>
      <description>&lt;P&gt;I did find a different approach that did get me to where I wanted and will share below for anyone interested.&amp;nbsp; In short, I just made one long list and used an algorithm to find the correct placement to grab the data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would still be interested in learning the answer to my original question if there is one.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(17, 12, 2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;				&lt;SPAN&gt;'(17)Bolt Size / (12)Material Thickness / (2)Distances C &amp;amp; E'&lt;/SPAN&gt;
&lt;SPAN&gt;'Mat thickness:  1 = 3/16, 2 = 1/4, 3 = 5/16, 4 = 3/8, 5 = 1/2, 6 = 9/16, 7 &amp;amp; 8 = 5/8 (Rad = 1 &amp;amp; 1 1/2), 9 = 3/4, 10 = 7/8, 11 = 1, 12 = 1 1/4&lt;/SPAN&gt;
&lt;SPAN&gt;MyList1&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() _
	{1 + (1 / 8), 1 + (5 / 16), 1 + (3 / 8), 1 + (11 / 16), 2 + (1 / 16), 2 + (1 / 8), 2 + (3 / 16), 2 + (11 / 16), 3 + (9 / 16), 4 + (1 / 16), 4 + (9 / 16), 5 + (9 / 16), _		&lt;SPAN&gt;'1/4 inch bolts&lt;/SPAN&gt;
	1 + (1 / 4), 1 + (7 / 16), 1 + (1 / 2), 1 + (13 / 16), 2 + (3 / 16), 2 + (1 / 4), 2 + (5 / 16), 2 + (13 / 16), 3 + (11 / 16), 4 + (3 / 16), 4 + (11 / 16), 5 + (11 / 16), _		&lt;SPAN&gt;'3/8 inch bolts&lt;/SPAN&gt;
.
.
.
	3 + (9 / 16), 3 + (3 / 4), 3 + (13 / 16), 4 + (1 / 8), 4 + (1 / 2), 4 + (9 / 16), 4 + (5 / 8), 5 + (1 / 8), 6, 6 + (1 / 2), 7, 8}							&lt;SPAN&gt;'3 inch bolts&lt;/SPAN&gt;
	
&lt;SPAN&gt;MyList2&lt;/SPAN&gt; = &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;() {1 / 2, 1 / 2, 3 / 4, 1, 1, 1 + (1 / 4), 1 + (1 / 2), 1 + (1 / 2), 1 + (3 / 4), 2, 2, 2 + (1 / 2), 2 + (3 / 4), 3, 3 + (1 / 4), 3 + (3 / 4), 4}				&lt;SPAN&gt;'E values&lt;/SPAN&gt;

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;j&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 17
	&lt;SPAN&gt;k&lt;/SPAN&gt; = (&lt;SPAN&gt;j&lt;/SPAN&gt; - 1) * 12
	&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; 12
		&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;, 1) = &lt;SPAN&gt;MyList1&lt;/SPAN&gt;(&lt;SPAN&gt;k&lt;/SPAN&gt; + &lt;SPAN&gt;i&lt;/SPAN&gt; - 1)
		&lt;SPAN&gt;oHoleChart&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt;, &lt;SPAN&gt;i&lt;/SPAN&gt;, 2) = &lt;SPAN&gt;MyList2&lt;/SPAN&gt;(&lt;SPAN&gt;j&lt;/SPAN&gt; - 1)
	&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Feb 2023 18:01:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11776752#M26659</guid>
      <dc:creator>llorden4</dc:creator>
      <dc:date>2023-02-23T18:01:11Z</dc:date>
    </item>
    <item>
      <title>Re: Creating 3D data table - Format help</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11778086#M26660</link>
      <description>&lt;P&gt;In my opinion this approach is un-maitainable and obscure for future editors. Try to use objects instead. In my sample I show you how to create object for Bolt description and its thickness list and how to look for specific values&amp;nbsp; using LINQ query and For-Each statement.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I create only few properties from your table, but it is very easy to extend my code to all properties (rows and columns)&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;Sub Main

	'Build List of BoltInfo objects
	Dim boltInfos As List(Of BoltInfo) = GetBoltInfos()

	'Usage sample
	Dim boltSize = 1 / 4
	Dim valueT = 9 / 16

	'Search using LINQ
	Dim thicknesInfos = boltInfos.Where(Function(bi) bi.BoltSize = boltSize).Select(Function(bi) bi.ThicknessInfos).First()
	Dim valueC = thicknesInfos.Where(Function(ti) ti.ValueT = valueT).Select(Function(ti) ti.ValueC1).First()

	Logger.Debug("LINQ returns: " &amp;amp; valueC)

	'Search using For-Each statement
	For Each boltInfo As BoltInfo In boltInfos
		If BoltInfo.BoltSize = boltSize Then
			For Each thicknessInfo As ThicknessInfo In BoltInfo.ThicknessInfos
				If ThicknessInfo.ValueT = valueT
					Logger.Debug("For-Each returns: " &amp;amp; ThicknessInfo.ValueC1)
					Return
				End If
			Next
		End If
	Next
	
End Sub

Private Function GetBoltInfos() As List(Of BoltInfo)

	Dim boltInfos As New List(Of BoltInfo)

	Dim boltInfo As BoltInfo
	'First bolt info 1/4
	boltInfo = New BoltInfo(1 / 4, 5 / 16, 3 / 8)
	boltInfo.ThicknessInfos.Add(New ThicknessInfo(3 / 16, 1 + 1 / 8, 1 / 2))
	boltInfo.ThicknessInfos.Add(New ThicknessInfo(1 / 4, 1 + 5 / 16, 1 / 2))
	'...
	boltInfo.ThicknessInfos.Add(New ThicknessInfo(9 / 16, 2 + 1 / 8, 1 / 2))
	'... and so on

	boltInfos.Add(boltInfo)

	'Second bolt info 3/8
	boltInfo = New BoltInfo(3 / 8, 7 / 16, 1 / 2)
	boltInfo.ThicknessInfos.Add(New ThicknessInfo(3 / 16, 1 + 1 / 8, 1 / 2))
	boltInfo.ThicknessInfos.Add(New ThicknessInfo(1 / 4, 1 + 5 / 16, 1 / 2))
	'...
	boltInfo.ThicknessInfos.Add(New ThicknessInfo(9 / 16, 2 + 1 / 8, 1 / 2))
	'... and so on

	boltInfos.Add(boltInfo)
	Return boltInfos

	'Next bolt infos...
End Function


Class BoltInfo
	Sub New(boltSize As Double, minHoleDia As Double, maxHoleDia As Double)
		Me.BoltSize = boltSize
		Me.MinHoleDia = minHoleDia
		Me.MaxHoleDia = maxHoleDia
		Me.ThicknessInfos = New List(Of ThicknessInfo)()
	End Sub

	Public Property BoltSize() As Double
	Public Property MinHoleDia() As Double
	Public Property MaxHoleDia() As Double

	Public Property ThicknessInfos() As List(Of ThicknessInfo)
End Class

Class ThicknessInfo
	Sub New(valueT As Double, valueC1 As Double, valueC2 As Double)
		Me.ValueT = valueT
		Me.ValueC1 = valueC1
		Me.ValueC2 = valueC2
	End Sub

	Public Property ValueT() As Double
	Public Property ValueR() As Double
	Public Property ValueC1() As Double
	Public Property ValueC2() As Double

End Class&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Feb 2023 07:08:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11778086#M26660</guid>
      <dc:creator>Michael.Navara</dc:creator>
      <dc:date>2023-02-24T07:08:02Z</dc:date>
    </item>
    <item>
      <title>Re: Creating 3D data table - Format help</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11778167#M26661</link>
      <description>&lt;P&gt;Thanks for input and I do get your points on maintenance; I believe you recognize my attempts here to make the code digestible for the next team.&amp;nbsp; Thanks for taking the time for putting that sample code together, I can use this to learn a few new tricks!&lt;/P&gt;</description>
      <pubDate>Fri, 24 Feb 2023 07:55:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/creating-3d-data-table-format-help/m-p/11778167#M26661</guid>
      <dc:creator>llorden4</dc:creator>
      <dc:date>2023-02-24T07:55:21Z</dc:date>
    </item>
  </channel>
</rss>

