How to make a Corner Window?

Using the Corner Window Add-On is practical for simple corner cases: when only one corner connection should be handled, and Corner Window pairs do not have to be above each other in one wall. If the windows other side also needed to be handled as corner connections, or the Windows should be able to differ in not unique parameter values, then Custom Corner Option should be created.

The Corner Window Add-On calculates fix named optional parameters for handling the corner connection. If a Custom Corner Option is created, these parameters have to be calculated manually.

Corner Window Function with add-on

In order to create an object with the functionality of a Corner Window, the object should be classified under Corner Window subtype. This subtype contains the following fix named optional parameters for the Corner Window add-on:

ac_cw_function Placement type (0: Window, 1: Corner Window) – default value must be set to 0
ac_corner_window Enable/disable Corner Window function
ac_corner_angle Angle of the corner
ac_con_wall_thk Thickness of the connecting wall at the other side of the corner

The values of these parameters are set by the Corner Window add-on. In case of Corner Windows, the object is offset from the corner. The offset is calculated from the corner angle, sill depth and the frame thickness. As a consequence of the offset a wall piece appears at the corner.


This wall piece can be removed by using the opening oversizes at Compatibility Options. In order to get correct calculations the Nominal Frame Thickness should be set in Compatibility Options.

The Corner Window Add-On always belongs to the connecting side of the Corner Window objects. This side is always considered as the right side of both of the Corner Window objects. In the following example the oversize parameter of the connecting side is “ac_right_oversize”, the oversize parameter of the other side is “ac_left_overside”. The opening oversize parameters should be set in Compatibility Options.


The correct oversize at the connecting side (right side) can be calculated from the fix named parameters set by the Corner Window add-on:

bRightCornerFunction	= (ac_cw_function & ac_corner_window)
rightCornerAngle	= ac_corner_angle
rightConnWallThk	= ac_con_wall_thk

if bRightCornerFunction & abs(rightCornerAngle) > EPS then
    rx = 1 / tan(rightCornerAngle / 2)
    beta = atn((rightConnWallThk * sin(rightCornerAngle)) /\
               (WALL_THICKNESS + rightConnWallThk * cos(rightCornerAngle)))

    if rightCornerAngle > 180 then
        ac_right_oversize = max (0, WALL_THICKNESS / tan(360 - rightCornerAngle + beta)+\
                                    WIDO_SILL / tan(rightCornerAngle / 2))
        ac_right_oversize = (WIDO_FRAME_THICKNESS + WIDO_SILL) * rx +\
                            max (0, WALL_THICKNESS * tan(rightCornerAngle - beta - 90))
parameters ac_right_oversize = ac_right_oversize


All of the parameter values of the Corner Window objects have to be equal (except the unique parameters), otherwise the objects would become normal Window objects.

The Corner Window Add-On can only handle one Corner Window pair in each wall. If more Corner Windows are needed above each other then the walls should be divided by stories.

Corner Window Function manually

If Custom Corner Option is needed at the left sides of the Corner Window, the corner function can be set manually. For this manual corner function four parameters are needed, which should be set by the user:

bLeftCornerFunction Set corner function at the left side of the opening
leftCornerAngle Angle of the corner
bLeftDiffConnWall Connecting wall thickness is different (1) or same (0)
leftConnWallThk Thickness of the connecting wall at the other side of the corner

Using the parameters above, the “ac_left_oversize” parameter can be calculated similarly to the right side of the Corner Window:

temp_leftCornerAngle	= leftCornerAngle
resize_Lca		= int ((abs(temp_leftCornerAngle))/360)
temp_leftCornerAngle	= temp_leftCornerAngle + resize_Lca * 360 -\
 			  (leftCornerAngle > 0) * 2 * resize_Lca * 360
leftCornerAngle		= temp_leftCornerAngle + 360 * (temp_leftCornerAngle < 0) 

! Set connected wall thickness if it is not different. 
if not (bLeftDiffConnWall) then leftConnWallThk = WALL_THICKNESS 

! Following calculation gives the correct oversize at the left side. 
if bLeftCornerFunction & abs(leftCornerAngle) > EPS then
    lx = 1 / tan(leftCornerAngle / 2)
        beta = atn((leftConnWallThk * sin(leftCornerAngle)) /\
 	       (WALL_THICKNESS + leftConnWallThk * cos(leftCornerAngle)))

    if leftCornerAngle > 180 then
        ac_left_oversize = max (0, WALL_THICKNESS / tan(360 - leftCornerAngle + beta) +\
  	        	           WIDO_SILL / tan(leftCornerAngle / 2))
        ac_left_oversize = (WIDO_FRAME_THICKNESS + WIDO_SILL) * lx +\
   	        	   max (0, WALL_THICKNESS * tan(leftCornerAngle - beta - 90))
parameters ac_left_oversize = ac_left_oversize


Command and function pool: