Railing Panel info

This topic contains 7 replies, has 2 voices, and was last updated by  Péter Baksa 1 week, 4 days ago.

  • Author
    Posts
  • #4730

    James Murray
    Participant

    I’m trying to make a railing panel consisting of horizontal wires. All I need is the height of the railing, the length of the segment, and the slope if the railing is not level. It looks like the length and delta Z info should be in RAIL_POLYLINE_GEOMETRY, but that array contains nothing but ten zeroes (when inspected via PRINT). Or am I looking in the right place? Any help appreciated.

  • #4731

    Péter Baksa
    Participant

    Hi, the stair and railing globals don’t contain useful data in the libpart editor, you have to place the element.

    Péter Baksa
    Software Engineer, Library Team
    GRAPHISOFT SE

  • #4732

    James Murray
    Participant

    I’m getting an array of all zeroes in the report via PRINT for a placed railing.

    Can you tell me if RAIL_POLYLINE_GEOMETRY is the correct way to go?

  • #4733

    James Murray
    Participant

    This:

    railNodeQ = VARDIM1 (RAIL_POLYLINE_GEOMETRY)
    PRINT 'railNodeQ=', railNodeQ
    
    panelLen = RAIL_POLYLINE_GEOMETRY[2][1] - RAIL_POLYLINE_GEOMETRY[1][1]
    PRINT 'panelLen=', panelLen

    …gives this report for a placed railing with a zig zag geometry, where I count 5 nodes in the polyline:

    railNodeQ= 2  ()
    panelLen= 0  ()
    railNodeQ= 2  ()
    panelLen= 0  ()
  • #4735

    Péter Baksa
    Participant

    Sorry, I didn’t notice the name of the global. It’s the set of global variables starting with RAILINGPANEL_ that you need.

    With somewhat custom settings, it is possible that a panel has more than four sides (panels connecting with different heights at a landing, or columns offset from the end of the landing: the corners might be cut off with horizontal planes). To handle these cases too, there is RAILINGPANEL_GEOMETRY that is the contour polygon, and RAILINGPANEL_UNCUT_GEOMETRY that is a four-sided polygon before the cuts.

    RAILINGPANEL_FLAGS[i][2] tells which side of the panel is the i-th edge (1 – bottom, 2 – end, 3 – top, 4 – start) You can derive the height from RAILINGPANEL_UNCUT_GEOMETRY start/end edge.

    The slope can vary on a winding stair. RAILINGPANEL_GEOMETRY can have multiple segments on the top/bottom sides. For wires, the average slope can be computed from the first point of the bottom side and the first point of the end side of RAILINGPANEL_UNCUT_GEOMETRY.

    Slanted/skewed railings (RAILINGPANEL_SLANT_ANGLE, RAILINGPANEL_SKEW_ANGLE) need to be handled carefully.
    Curved panels are also special: RAILINGPANEL_TYPE tells the overall shape of the railing. You might not want to handle curved panels at all.
    Curves are given in a format similar to PolyOperations: start x, y, central angle.

    Péter Baksa
    Software Engineer, Library Team
    GRAPHISOFT SE

  • #4736

    James Murray
    Participant

    Thanks Peter, with the right globals it wasn’t too hard. Since wires don’t curve I thankfully can stay out of that area for now.

  • #4737

    James Murray
    Participant

    It seems that the RAILINGPANEL_GEOMETRY polygon goes to the top of the segment (assuming the offset is zero). This makes the panel coincide with the top of the top rail. Is there a global or parameter that represents the top rail thickness, so I can lower the panel top automatically?

  • #4738

    Péter Baksa
    Participant

    No, there isn’t. Use the offset settings of the panel, and it will be automatically smaller.

    Péter Baksa
    Software Engineer, Library Team
    GRAPHISOFT SE

You must be logged in to reply to this topic.