Masonry Arch Macro
1. General Description
A window or a door can use this macro to build masonry arch in 3D.
2. Parameters
| Name | Type | Default | Scripts related to the parameter | Remarks |
|---|---|---|---|---|
| A | Length | 1 | 2D / 3D | Nominal width of the wall opening |
| B | Length | 1 | 3D | Nominal height of the wall opening |
| ZZYZX | Length | 1 | - | Not used |
| iWindowShape | Integer | 0 | 3D / Parameter | Shape of the window.
|
| archHeight | Length | 0.25 | 3D | Height of the Arc. Only effective when iWindowShape = 1 |
| gs_masonry_arch | Text | "Off" | 3D / Parameter | Masonry arch type chooser |
| gs_masonry_arch_structure | Text | "Stucco Arch" | 3D / Parameter | 3D detail level chooser |
| gs_masonry_arch_ovhg_left | Length | 0 | 3D | Masonry arch overhang left |
| gs_masonry_arch_ovhg_right | Length | 0 | 3D | Masonry arch overhang right |
| gs_masonry_arch_rise | Length | 30 | 3D | Masonry arch rise |
| gs_masonry_arch_skewback_angle | Angle | 75 | 3D | Skewback angle |
| gs_masonry_arch_proj | Length | 0 | 3D | Masonry arch projection |
| gs_masonry_arch_height | Length | 250 | 3D | Masonry arch height |
| gs_masonry_arch_depth | Length | 120 | 3D | Masonry arch depth |
| gs_masonry_arch_brick_thk | Length | 65 | 3D | Brick thickness |
| gs_masonry_arch_mort_thk | Length | 10 | 3D | Mortar thickness |
| gs_masonry_arch_keystone_width | Length | 100 | 3D | Keystone width |
| gs_masonry_arch_keystone_osize | Length | 0 | 3D | Keystone oversize |
| gs_masonry_arch_keystone_proj | Length | 10 | 3D | Keystone projection |
| gs_masonry_arch_fill | Fill type | 2 | 3D | Masonry arch fill type - If it is zero in 3D (Section View) then SYMB_FILL defines the fill type of cutted surfaces. |
| gs_masonry_arch_pen_fg | Pen | 5 | 3D | Masonry arch fill pen - If it is zero in 3D (Section View) then SYMB_FILL_PEN defines the fill pen of cutted surfaces. |
| gs_masonry_arch_pen_bg | Pen | 91 | 3D | Masonry arch fill background pen - If it is zero in 3D (Section View) then SYMB_FBGD_PEN defines the fill background pen of cutted surfaces. |
| gs_masonry_arch_pen | Pen | 2 | 3D | 3D contour pen |
| gs_masonry_arch_brick_mat | Material | 56 | 3D | Brick material |
| gs_masonry_arch_mort_mat | Material | 2 | 3D | Mortar material |
| gs_masonry_arch_keystone_mat | Material | 37 | 3D | Keystone material |
| gs_reveal_parameters | Title | |||
| gs_reveal_left | Length | 0 | 3D | Left Jamb Depth |
| gs_reveal_right | Length | 0 | 3D | Right Jamb Depth |
| gs_reveal_top | Length | 0 | 3D | Head Depth |
| ac_corner_window | Boolean | 1 | 3D | Switch to Corner Window mode |
| ac_cw_function | Boolean | 0 | 3D | "Placement Type (1=CW,0=W)" |
| ac_corner_angle | Angle | 90 | 3D | Angle of connected walls |
| ac_diff_con_wall_thk | Boolean | 0 | 3D | Indicates the equality thickness of the two connected walls. |
| ac_con_wall_thk | Length | 0 | 3D | Thickness of the another wall. |
| gs_stMasonryArch | String | 3D / Parameter | One dimension Array parameter for receiving locale strings. |
Geometry parameters of MasonryArch
To clear the meaning of the geometry specific parameters used in MasonryArch macro, see the following pictures:
Level of Detail in 3D
There are two levels of detail programmed into the macro.
3. Usage
Localization
The macro's default language is English. You can localize it with the gs_stMasonryArch parameter.| Row | Default value | Description |
|---|---|---|
| 1 | Off | value list item of gs_masonry_arch |
| 2 | Masonry Straight Arch | value list item of gs_masonry_arch |
| 3 | Masonry Jack Arch | value list item of gs_masonry_arch |
| 4 | Masonry Jack Arch with Keystone | value list item of gs_masonry_arch |
| 5 | Masonry Segmental Arch | value list item of gs_masonry_arch |
| 6 | Masonry Segmental Arch with Keystone | value list item of gs_masonry_arch |
| 7 | Masonry Bullseye Arch | value list item of gs_masonry_arch |
| 8 | Stucco Arch | value list item of gs_masonry_arch_structure |
| 9 | Brick Arch | value list item of gs_masonry_arch_structure |
Parameter Script
For implementing the parameter logic of the MasonryArch, you have to call this macro with passing the following parameters to it.
! ============================================================================= ! Masonry Arch Parameter Logic ! ============================================================================= DIM gs_stMasonryArch[] gs_stMasonryArch[1] = "Off" gs_stMasonryArch[2] = "Masonry Arch" gs_stMasonryArch[3] = "Masonry Jack Arch" gs_stMasonryArch[4] = "Masonry Jack Arch with Keystone" gs_stMasonryArch[5] = "Masonry Segmental Arch" gs_stMasonryArch[6] = "Masonry Segmental Arch with Keystone" gs_stMasonryArch[7] = "Masonry Bullseye Arch" gs_stMasonryArch[8] = "Stucco Arch" gs_stMasonryArch[9] = "Brick Arch" call "MasonryArch" parameters A=A, iWindowShape = 0, ! Rectangular window openingArchHeight = openingArchHeight, gs_masonry_arch = gs_masonry_arch, gs_masonry_arch_structure = gs_masonry_arch_structure, gs_stMasonryArch = gs_stMasonryArch
3D Script
In this script the window has to contain the following code portion.
It has to empty the transformation stack before calling this macro (eg. with a del top command)
! ============================================================================= ! Masonry Arch ! ============================================================================= DIM gs_stMasonryArch[] gs_stMasonryArch[1] = "Off" gs_stMasonryArch[2] = "Masonry Arch" gs_stMasonryArch[3] = "Masonry Jack Arch" gs_stMasonryArch[4] = "Masonry Jack Arch with Keystone" gs_stMasonryArch[5] = "Masonry Segmental Arch" gs_stMasonryArch[6] = "Masonry Segmental Arch with Keystone" gs_stMasonryArch[7] = "Masonry Bullseye Arch" gs_stMasonryArch[8] = "Stucco Arch" gs_stMasonryArch[9] = "Brick Arch" if gs_masonry_arch <> gs_stMasonryArch[1] then call "MasonryArch" parameters A=A, B=B, iWindowShape = 0, ! Rectangular window openingArchHeight = 0, ! not relevant ! --- Masonry Arch gs_masonry_arch = gs_masonry_arch, gs_masonry_arch_structure = gs_masonry_arch_structure, gs_masonry_arch_ovhg_left = gs_masonry_arch_ovhg_left, gs_masonry_arch_ovhg_right = gs_masonry_arch_ovhg_right, gs_masonry_arch_rise = gs_masonry_arch_rise, gs_masonry_arch_skewback_angle = gs_masonry_arch_skewback_angle, gs_masonry_arch_proj = gs_masonry_arch_proj, gs_masonry_arch_height = gs_masonry_arch_height, gs_masonry_arch_depth = gs_masonry_arch_depth, gs_masonry_arch_brick_thk = gs_masonry_arch_brick_thk, gs_masonry_arch_mort_thk = gs_masonry_arch_mort_thk, gs_masonry_arch_keystone_width = gs_masonry_arch_keystone_width, gs_masonry_arch_keystone_osize = gs_masonry_arch_keystone_osize, gs_masonry_arch_keystone_proj = gs_masonry_arch_keystone_proj, gs_masonry_arch_fill = gs_masonry_arch_fill, gs_masonry_arch_pen_fg = gs_masonry_arch_pen_fg, gs_masonry_arch_pen_bg = gs_masonry_arch_pen_bg, gs_masonry_arch_pen = gs_masonry_arch_pen, gs_masonry_arch_brick_mat = gs_masonry_arch_brick_mat, gs_masonry_arch_mort_mat = gs_masonry_arch_mort_mat, gs_masonry_arch_keystone_mat = gs_masonry_arch_keystone_mat, ! --- Reveal Parameters gs_reveal_left = WIDO_LEFT_JAMB, gs_reveal_right = WIDO_RIGHT_JAMB, gs_reveal_top = WIDO_HEAD_DEPTH, ! --- Corner Window Parameters ac_corner_window = ac_corner_window, ac_cw_function = ac_cw_function, ac_corner_angle = ac_corner_angle, ac_diff_con_wall_thk = ac_diff_con_wall_thk, ac_con_wall_thk = ac_con_wall_thk, ! --- String Resource --- gs_stMasonryArch = gs_stMasonryArch endif
UI Script
To implement the user interface page in your object just call the macro from the UI script.
! ============================================================================= ! Masonry Arch Tabpage ! ============================================================================= DIM gs_stMasonryArch[] gs_stMasonryArch[ 1] = "Off" gs_stMasonryArch[ 2] = "Masonry Arch" gs_stMasonryArch[ 3] = "Masonry Jack Arch" gs_stMasonryArch[ 4] = "Masonry Jack Arch with Keystone" gs_stMasonryArch[ 5] = "Masonry Segmental Arch" gs_stMasonryArch[ 6] = "Masonry Segmental Arch with Keystone" gs_stMasonryArch[ 7] = "Masonry Bullseye Arch" gs_stMasonryArch[ 8] = "Stucco Arch" gs_stMasonryArch[ 9] = "Brick Arch" gs_stMasonryArch[10] = "Masonry Arch" gs_stMasonryArch[11] = "Arch Type" gs_stMasonryArch[12] = "Overhang" gs_stMasonryArch[13] = "Left" gs_stMasonryArch[14] = "Right" gs_stMasonryArch[15] = "Projection" gs_stMasonryArch[16] = "Rise" gs_stMasonryArch[17] = "Skewback Angle" gs_stMasonryArch[18] = "Height" gs_stMasonryArch[19] = "Depth" gs_stMasonryArch[20] = "Brick Thickn." gs_stMasonryArch[21] = "Mortar Thickn." gs_stMasonryArch[22] = "Material" gs_stMasonryArch[23] = "Brick" gs_stMasonryArch[24] = "Mortar" gs_stMasonryArch[25] = "Keystone" gs_stMasonryArch[26] = "Keystone" gs_stMasonryArch[27] = "Width" gs_stMasonryArch[28] = "Oversize" gs_stMasonryArch[29] = "Projection" idTab_MasonryArchSettings = 1 ! Tabpage ID if idTab_MasonryArchSettings > 0 then call "MasonryArch" parameters iWindowShape = 0, ! Rectangular window gs_masonry_arch = gs_masonry_arch, gs_masonry_arch_structure = gs_masonry_arch_structure, idTab_MasonryArchSettings = idTab_MasonryArchSettings, gs_stMasonryArch = gs_stMasonryArch endif


