Slopes with array
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-06 02:42 PM
I draw roofing systems for flat roofs where we use insulation to build slopes.
Today, thank you for making the top layer it works ok. To create slanting plates, we use the wall tool with a profile. Profile has slope 1:40, 1:60 and 1: 100.
1:40 has 2 plates and 1:60 has 3 plates while 1: 100 has 6 plates.
The structure below uses the Slab tool.
See attached PDF file.
Using this method cumbersome so I thought I would create an object that we can only pull out with hotspots.
What I have made is the profile of the slant to call it in 3D, then I thought I could use the array to extend it from plate 1 and then plate 2 and on plate 3, plate 1 will reappear after plate 2. It fades almost correctly but from plate 2 it comes to plate 1 and flat 2 at once.
What I want is that I can stretch out to get one and one.
Then the question is what I'm doing wrong.
All help is of interest.
Solved! Go to Solution.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-14 11:17 PM
This is only one way to solve it.
Try this:
!!!Plate 1:40 Plate nr. 1 and 2 !============================================================================================================ FOR i = 1 TO NUM PEN Linje1 sect_attrs{2}Linje1 SECT_FILL Fyll, pen_t, pen_g, pen_b MATERIAL smat IF i MOD 2 # 0 then if Plate_type = 1 then call "Plate_macro" parameters ZZYZX = 0.02, v = 1.43, ac_bottomlevel = 0.060, X1 = X1, Y1 = Y1, B = B endif endif !!!Plate nr. 2 !!ADDY AV1 PEN Linje1 sect_attrs{2}Linje1 SECT_FILL Fyll1, pen_t, pen_g, pen_b MATERIAL smat if i MOD 2 = 0 THEN if Plate_type = 1 then call "Plate_macro" parameters ZZYZX = 0.05, v = 1.43, ac_bottomlevel = 0.060, X1 = X1, Y1 = Y1, B = B endif ADDZ 0.060 endif !!ADDZ 0.060 ADDY AV1 Next iAlso, you should change your "NUM" parameter to an integer type.
You can also simplify the 2D script, since you are placing a project2 command inside a loop.
2D script:
HOTSPOT2 0,0 unID = 1000 HOTSPOT2 0, 0, unID, B, 1+128: unID=unID+1 !!! BASE HOTSPOT2 0, B, unID, B, 2: unID=unID+1 !!! Move HOTSPOT2 0, -1, unID, B, 3: unID=unID+1 !!! Ref unID = 2000 HOTSPOT2 0, 0, unID, X1, 1+128: unID=unID+1 !!! BASE HOTSPOT2 X1, 0, unID, X1, 2: unID=unID+1 !!! Move HOTSPOT2 -1, 0, unID, X1, 3: unID=unID+1 !!! Ref !unID = 3000 !HOTSPOT2 0.600, 0, unID, Y1, 1+128: unID=unID+1 !!! BASE !HOTSPOT2 0.600, Y1, unID, Y1, 2: unID=unID+1 !!! Move !HOTSPOT2 0, -1, unID, Y1, 3: unID=unID+1 !!! Ref project2{2} 3, 270, 2Hope that's what you are after.
Best regards.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-07 09:24 PM

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-12 08:45 AM
Perhaps I've explained badly what I want to get to.
What I'm trying to get is that I can stretch with a hotspot that started from Block No. 1 and Block No. 2 so the first flat will come up again. But what happens to me is that I will not get back Block # 1 before I have stretched the hotspot to block No. 2 to come up, then Block No. 1 and Plat No. 2 will arrive at the same time.
So what I want is that Block No. 1 should be able to come up alone before Block No. 2 comes up.
I hope you realize I need help.
Please help me because I'm completely stuck

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-12 09:20 AM
Your object by default shows
Your issue is that
Ling.
AC22-28 AUS 3110 | Help Those Help You - Add a Signature |
Self-taught, bend it till it breaks | Creating a Thread |
Win11 | i9 10850K | 64GB | RX6600 | Win11 | R5 2600 | 16GB | GTX1660 |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-12 09:44 AM
What I want is that the blocks will appear when I stretch out hotspot Y direction will come up one and one.
That I should get up from 0 m. Block 1 and then block 1 and 2 of 1.2 m. I'll be able to get up the block 1, 2 and 3 at 2.4 m., Etc.
If you're kind of trying out what I've done, I think you understand what I'm trying to tell.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-12 09:52 AM
Repeating my last question: Is that first layer of insulation the only one not appearing as it should or is something off when you reach
Ling.
AC22-28 AUS 3110 | Help Those Help You - Add a Signature |
Self-taught, bend it till it breaks | Creating a Thread |
Win11 | i9 10850K | 64GB | RX6600 | Win11 | R5 2600 | 16GB | GTX1660 |
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-12 10:19 AM
If you're thinking, the tile floor is different width of the tiles in the floor plan to want the possibility of stretching with hotspot in Y direction for multiple copies. To see them appear 1 and 1 and not as couple as I have got it. So it will be possible to quit the Even numbers and odd numbers of copies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-12 10:44 PM
After a very quick look inside, although I would rearrange some things, I think the main issue your are trying to solve seems to be related to the fact that both plates are created in the same FOR - NEXT loop. It could work this way, but I see the same condition for both plates (e.g., plate #2 inside the same FOR loop gets called IF B>=AV, but so is plate #1, effectively calling the plate macro twice).
There are many ways you could solve it, like create two different loops or testing each "i" in the loop to know if it should create plate #1 or #2, or checking the cumulative Y distance to see if plate #2 fits.
Hope that helps.
Best regards.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-14 06:41 AM
Now I've tested what you saw but get the same as before.
Perhaps you or someone else has another solution to this problem
Laurits
!!!Plate 1:40 Plate nr. 1 and 2 !============================================================================================================ !!!Plate nr. 1 FOR I = 1 TO NUM PEN Linje1 sect_attrs{2}Linje1 SECT_FILL Fyll, pen_t, pen_g, pen_b MATERIAL smat if Plate_type = 1 then call "Plate_macro" parameters ZZYZX = 0.02, v = 1.43, ac_bottomlevel = 0.060, X1 = X1, Y1 = Y1, B = B endif ADDZ 0.060 ADDY AV1*2 Next i Del top !!!Plate nr. 2 ADDY AV1 FOR K = 1 TO NUM2 PEN Linje1 sect_attrs{2}Linje1 SECT_FILL Fyll1, pen_t, pen_g, pen_b MATERIAL smat if Plate_type = 1 then call "Plate_macro" parameters ZZYZX = 0.05, v = 1.43, ac_bottomlevel = 0.060, X1 = X1, Y1 = Y1, B = B endif ADDZ 0.0 ADDY AV1*2 Next K
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2018-03-14 11:17 PM
This is only one way to solve it.
Try this:
!!!Plate 1:40 Plate nr. 1 and 2 !============================================================================================================ FOR i = 1 TO NUM PEN Linje1 sect_attrs{2}Linje1 SECT_FILL Fyll, pen_t, pen_g, pen_b MATERIAL smat IF i MOD 2 # 0 then if Plate_type = 1 then call "Plate_macro" parameters ZZYZX = 0.02, v = 1.43, ac_bottomlevel = 0.060, X1 = X1, Y1 = Y1, B = B endif endif !!!Plate nr. 2 !!ADDY AV1 PEN Linje1 sect_attrs{2}Linje1 SECT_FILL Fyll1, pen_t, pen_g, pen_b MATERIAL smat if i MOD 2 = 0 THEN if Plate_type = 1 then call "Plate_macro" parameters ZZYZX = 0.05, v = 1.43, ac_bottomlevel = 0.060, X1 = X1, Y1 = Y1, B = B endif ADDZ 0.060 endif !!ADDZ 0.060 ADDY AV1 Next iAlso, you should change your "NUM" parameter to an integer type.
You can also simplify the 2D script, since you are placing a project2 command inside a loop.
2D script:
HOTSPOT2 0,0 unID = 1000 HOTSPOT2 0, 0, unID, B, 1+128: unID=unID+1 !!! BASE HOTSPOT2 0, B, unID, B, 2: unID=unID+1 !!! Move HOTSPOT2 0, -1, unID, B, 3: unID=unID+1 !!! Ref unID = 2000 HOTSPOT2 0, 0, unID, X1, 1+128: unID=unID+1 !!! BASE HOTSPOT2 X1, 0, unID, X1, 2: unID=unID+1 !!! Move HOTSPOT2 -1, 0, unID, X1, 3: unID=unID+1 !!! Ref !unID = 3000 !HOTSPOT2 0.600, 0, unID, Y1, 1+128: unID=unID+1 !!! BASE !HOTSPOT2 0.600, Y1, unID, Y1, 2: unID=unID+1 !!! Move !HOTSPOT2 0, -1, unID, Y1, 3: unID=unID+1 !!! Ref project2{2} 3, 270, 2Hope that's what you are after.
Best regards.