Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start:plugins:marineweightschedule:mws-usermanual [2021/01/05 10:39]
adminmar [Overview] - Added toolbar screenshot
start:plugins:marineweightschedule:mws-usermanual [2021/12/14 15:10] (current)
adminmar
Line 1: Line 1:
 ====== Marine Weight Schedule - User Manual ====== ====== Marine Weight Schedule - User Manual ======
 ===== Introduction ===== ===== Introduction =====
-//Marine Weight Schedule// is a plugin for Rhino 3D designed to generate - from a vessel’s 3D model - a bill of masses/inertias, as well as a Bill Of Materials. It take in account points, curves, surfaces, solids and blocks, and use the parameters from the layers names to apply the unitary/lineic/surfacic/volumic masses, with a margin percentage applied.+//Marine Weight Schedule// is a plugin for Rhino 3D designed to generate - from a vessel’s 3D model - a bill of masses/inertias, as well as a Bill Of Materials. It takes into account points, curves, surfaces, solids and blocks, and uses the parameters from the layersnames to apply the unitary/lineic/surfacic/volumic masses, with a margin percentage applied.
  
-A command is also provided to generate an hydrostatic report at a given height interval (based on Rhino hydrostatics features)+A command is also provided to generate hydrostatic report at a given height interval (based on Rhino hydrostatics features)
  
-Both reports will be generated as excel files (.xlsx) based on a customizable template, but microsoft excel doesn’t need to be installed on the computer.+Both reports will be generated as excel files (.xlsx) based on a customizable template, but Microsoft excel doesn’t need to be installed on the computer.
 ===== Plugin installation ===== ===== Plugin installation =====
 ==== Overview ==== ==== Overview ====
 The plugin installer can be downloaded at: [[https://www.tomkod.com/product/marine-weight-schedule/]] \\  The plugin installer can be downloaded at: [[https://www.tomkod.com/product/marine-weight-schedule/]] \\ 
 A free trial is included, and yearly licenses can be purchased on the aforementioned page.\\  A free trial is included, and yearly licenses can be purchased on the aforementioned page.\\ 
-//Marine Weight Schedule // works for Rhino 6((Rhino6.15 or later)) and Rhino7((Tested up to Rhino 7.1)).+//Marine Weight Schedule // works with Rhino 6((Rhino 6.15 or higher)) and Rhino7((Rhino 7.5 or higher)).
  
 {{page>start:plugins:common#[Yak]&noindent&nofooter&nodate}} {{page>start:plugins:common#[Yak]&noindent&nofooter&nodate}}
Line 31: Line 31:
 === Walkthrough === === Walkthrough ===
 For each layer((The whole model or worksession will be used)), the command will retrieve the //Mass//, //Margin// and //Vertical offset// values from the layer name((Read "Model preparation" below)), then: For each layer((The whole model or worksession will be used)), the command will retrieve the //Mass//, //Margin// and //Vertical offset// values from the layer name((Read "Model preparation" below)), then:
-  - For each rhino object, the actual mass and gravity center will be computed, using the layer values. The layer's //Mass// will be used differently, depending on the object's type: ponctual mass for Points, lineic mass for curves, surfacic mass for surfaces((To avoid errors, openened polysurfaces won't be allowed)), and volumic mass for closed polysurfaces.+  - For each rhino object, the actual mass and gravity center will be computed, using the layer values. The layer's //Mass// will be used differently, depending on the object's type: punctual mass for Points, lineic mass for curves, surface mass for surfaces((To avoid errors, opened polysurfaces won't be allowed)), and volumic mass for closed polysurfaces.
   - At the same time, the Bill-of-Materials will be created internally.   - At the same time, the Bill-of-Materials will be created internally.
   - An excel report will be created.   - An excel report will be created.
-<WRAP center round todo 60%> +{{ :start:plugins:marineweightschedule:mws_walkthrough.gif?nolink |}}
-Add images +
-</WRAP>+
 === Model preparation === === Model preparation ===
-The fondamental idea of this plugin is to match data from the model's objects and their layer. For this reason, each layer should contain only one specific material.//+The fundamental idea of this plugin is to match data from the model's objects and their layer. For this reason, each layer should contain only one specific material.//
 For example: //  For example: // 
-  * The layer **''%%Deck1:SectionB:Nuts%%''** could contain only points, and the layer's //(mass)// information would be used as a ponctual mass for each nut. +  * The layer **''%%Deck1:SectionB:Nuts%%''** could contain only points, and the layer's //(mass)// information would be used as a punctual mass for each nut. 
-  * The layer **''%%Deck1:SectionB:plates%%''** could contain only surfaces, and the layer's //(mass)// information would be used as a surfacic mass for each plate.+  * The layer **''%%Deck1:SectionB:plates%%''** could contain only surfaces, and the layer's //(mass)// information would be used as a surface mass for each plate.
 == Layers naming convention == == Layers naming convention ==
 The document's layers should follow the following naming convention: The document's layers should follow the following naming convention:
-<code>LayerName (Mass) %Margin% |VerticalOffset|</code>+<code>LayerName *MaterialName* (Mass) %Margin% |VerticalOffset|</code>
 where: where:
   * **''%%Mass%%''** will be the ponctual/lineic/surfacic/volumic mass   * **''%%Mass%%''** will be the ponctual/lineic/surfacic/volumic mass
   * **''%%Margin%%''** (optional) will be the percentage to add to the object's mass.   * **''%%Margin%%''** (optional) will be the percentage to add to the object's mass.
   * **''%%VerticalOffset%%''** (optional) will be the the vertical offset to apply to the layer's masses   * **''%%VerticalOffset%%''** (optional) will be the the vertical offset to apply to the layer's masses
-{{ :start:plugins:marineweightschedule:pwr_layers.jpg?nolink |}} +  * **''%%MaterialName%%''**((Since v1.1.3)) (optional) will the material's name. In the Bill-of-Material, the materials are displayed in a specific column.  
-<WRAP center round todo 60%> +Two layers with the same name but different materials will not be grouped together. 
-Add images +{{ :start:plugins:marineweightschedule:pwr_layers2.jpg?nolink |}}
-</WRAP>+
  
 == Particular case for Stiffeners == == Particular case for Stiffeners ==
Line 68: Line 65:
 </WRAP> </WRAP>
 For example: For example:
-<WRAP center round todo 60%> +{{ :start:plugins:marineweightschedule:pwr_layersimplicitstiffeners.jpg?nolink |}} 
-Add screen capture+<WRAP center round tip 90%> 
 +Since v1.1.3, the implicit stiffeners can also have their material names defined with a specific syntax: 
 +<code>LAYERNAME:   MyLayerName *MaterialName* (Mass) %Margin% |VerticalOffset| [StiffenerName s=value *MaterialName*]</code>
 </WRAP> </WRAP>
   * **Stiffeners defined as curves in the model**   * **Stiffeners defined as curves in the model**
Line 83: Line 82:
 This will count as one surface, Thickness 6, width=120, plus one profile 80x8  This will count as one surface, Thickness 6, width=120, plus one profile 80x8 
 <WRAP center round info 80%> <WRAP center round info 80%>
-In this case, the command will output an area for the plateand a length for the profile:+In this case, the command will output an area for the plate and a length for the profile:
  
 'Th.6 plate Area' = length x 120 'Th.6 plate Area' = length x 120
Line 102: Line 101:
 '80x8 profile Length' = (area / 80) + (area / 80) * 3.4/100 '80x8 profile Length' = (area / 80) + (area / 80) * 3.4/100
 </WRAP> </WRAP>
 +
 == Particular case for Blocks == == Particular case for Blocks ==
-<WRAP center round todo 60%> +By default, rhino(r) blocks((instances references)) are ignored by the command. However, we provide several commands to transform blocks into GBlocks, which are considered in the reports as punctual masses. 
-todo+ 
 +See [[start:plugins:marineweightschedule:mws-usermanual#gblock_setdata|gblock_setdata]] 
 + 
 +<WRAP center round important 90%> 
 +When the command will process GBlocks, their layer properties will be ignored, and their internal definition will be used instead (Name, gravity center, mass).
 </WRAP> </WRAP>
 +
 +
 === Output === === Output ===
-An excel report is generated: +When the whole model has been processed, an excel((.xlsx)) report is generated, and the user is invited to pick a name and location for the resulting file. 
-{{ :start:plugins:marineweightschedule:pwr_excel.jpg?nolink |}} +Bill of masses main sheet: 
-<WRAP center round todo 60%> + 
-Add images +{{:start:plugins:marineweightschedule:pwr_excel_results.jpg?nolink|}} 
-</WRAP>+ 
 +Bill of masses detailed sheets for Volumes, surfaces, curves, and points: 
 + 
 +{{:start:plugins:marineweightschedule:pwr_excel_volumes.jpg?nolink|}} 
 + 
 +{{:start:plugins:marineweightschedule:pwr_excel_points.jpg?nolink|}} 
 + 
 +Bill of materials: 
 + 
 +{{:start:plugins:marineweightschedule:pwr_excel_bom.jpg?nolink|}} 
 A custom ViewPort is created with the gravity center displayed: A custom ViewPort is created with the gravity center displayed:
-{{ :start:plugins:marineweightschedule:pwr_viewport.jpg?nolink |}} + 
-<WRAP center round todo 60%> +{{:start:plugins:marineweightschedule:pwr_viewport2.jpg?nolink|}}
-Add images +
-</WRAP>+
 ===  Options ===  ===  Options === 
 No option available. No option available.
 +=== Scripted mode ===
 +Using the command's scripted mode //-ProjectWeightReportByHullSection// will enable an hidden option:
 +  * **AxisLengthInMeters**: Enter the gravity center's preview axis length used in the result views
 === Customization === === Customization ===
-The excel file template can be modified in the plugin'install directory+This command behavior can be customized, by editing some files in the install directory((If you installed from Rhino's package manager, the installation path is usually: ''%%%appdata%\McNeel\Rhinoceros\7.0\Plug-ins%%'')). 
-<WRAP center round todo 60%> +== Excel templates == 
-add details+The excel report template "PWE_Model.xlsx" can be modified to fit your graphical needs, however, it is recommended to edit only the text values, the column sizes, and the logos while keeping the document's general layout. 
 +== Naming conventions for the layers == 
 +The naming convention for information specified in the layer'names is based on REGEX (Regular expression), which is the most common way to match a text string to a pattern. The default values can be edited in the file "MWS_CustomRegex.yaml" with any standard text editor
 +<WRAP center round tip 90%> 
 +We recommend using the free text editor NotePad++ will make the YAML format more readable: 
 +{{ :start:plugins:marineweightschedule:mws_customregex.jpg?nolink |}}
 </WRAP> </WRAP>
 +You can test in real-time your customized regular expressions at [[https://regex101.com/|https://regex101.com/]], and see if your pattern matches your layer's names.
 +
 +**Example1**: [[https://regex101.com/r/0C2262/1|The default regular expression to match the implicit stiffeners between square brackets]]: ''%%[StiffenerName s=value *MaterialName*]%%''
 +
 +**Example2**: [[https://regex101.com/r/qIbMNb/1|The edited regular expression to match the implicit stiffeners between either square brackets or exclamation marks]]: ''%%[StiffenerName s=value *MaterialName*]%%'' or ''%%!StiffenerName s=value *MaterialName*!%%''
 +----
 +==== ProjectWeightReportByHullSection ====
 +This command((From v1.2.0)) splits the model into sections, then runs //[[start:plugins:marineweightschedule:mws-usermanual#projectweightreport|ProjectWeightReport]]// on each section.
 +The resulting Excel file will contain the usual model-wide report, plus independent reports for every section. (Named from S001 to Sxxx)
 +{{ :start:plugins:marineweightschedule:pwr_hs.jpg?nolink |}}
 +=== Walkthrough ===
 +  - Run the command //ProjectWeightReportByHullSection//
 +  - Pick the x-axis coordinates delimiting the sections((The coordinates can be registered either by clicking on the model or by entering numbers in the command line.)).
 +  - The script will split internally the curves and surfaces, and sort points and volumes by each section's bounding box. GBlocks will be allocated using the location of their gravity centers.
 +<WRAP center round important 90%>
 +Items((Volumes, surfaces, curves, points, or GBlocks)) located on the plane between two sections will be counted in both sections, leading to a difference between the global weight and the sum of every section's weight. A solution is to offset the cutting plane by a few millimeters.
 +</WRAP>
 +<WRAP center round info 90%>
 +Solids((Closed polysurfaces)) __must not__ by split, because the result would be opened polysurfaces, which is forbidden when creating a //ProjectWeightReport//
 +</WRAP>
 +
 +=== Scripted mode ===
 +Using the command's scripted mode //-ProjectWeightReportByHullSection// will enable two hidden options:
 +  * **AxisLengthInMeters**: Enter the gravity center's preview axis length used in the result views
 +  * **DrawSplittedGeometries**: When enabled, a layer //ProjectWeightReportByHullSection// will be added to the model, with the split geometry. This is useful to check if no curves/surfaces were lost in the sections' splitting operations.
 ---- ----
 ==== HydrostaticReport ==== ==== HydrostaticReport ====
-Computes an hydrostatic analysis at different heights and generates an excel report.+Computes hydrostatic analysis at different heights and generates an excel report.
 === Walkthrough === === Walkthrough ===
 The hull's surface or polysurface is selected as input. The hull's surface or polysurface is selected as input.
-Once validated, Rhino's hydrostatic culculation is runned at various heights as defined in options, and an excel report is generated.+Once validated, Rhino's hydrostatic calculation is run at various heights as defined in options, and an excel report is generated.
  {{ :start:plugins:marineweightschedule:ext_hydro.jpg?nolink |}}  {{ :start:plugins:marineweightschedule:ext_hydro.jpg?nolink |}}
 ===  Options ===  ===  Options === 
Line 138: Line 185:
 ^ AutoMinMax | Detect TEMin and TEmax values from geometry (Only available when a geometry is selected)| ^ AutoMinMax | Detect TEMin and TEmax values from geometry (Only available when a geometry is selected)|
 === Customization === === Customization ===
-The excel file template can be edited in the plugin install directory.+The excel report template "Hydro_Model.xlsx" can be modified in the plugin'install directory, usually: 
 + 
 +<wrap hi>%AppData%\McNeel\Rhinoceros\7.0\Plug-ins\Marine Weight Schedule for RH6-RH7 (dac6da37-23fc-4ad6-9b46-33a2cad9e13b)\//VersionNumber//</wrap> \\ (Adapt Rhino's version if needed, as well as the plugin's version) 
 +It is recommended to edit only the text values and the logos while keeping the document's general layout. 
 +---- 
 +==== GBlock_SetData ==== 
 +Adds gravity center and mass information to a block. GBlocks are considered by the command //ProjectWeightReport //, which makes them extremely useful for your pieces of equipment. 
 +<WRAP center round info 90%> 
 +When using this command on an existing GBlock, its gravity center, mass information, and name will be overridden. 
 + 
 +This is the only way to edit a GBlock name or data. 
 +</WRAP> 
 +=== Walkthrough === 
 +  - Start the command 
 +  - Pick a rhino block((Instance reference)) in the model 
 +  - Pick the GBlock's gravity center 
 +  - Enter the GBlock's mass 
 +  - Enter the GBlock's name (By default, Rhino's block name is used) 
 +  - Click OK or press Enter 
 +{{ :start:plugins:marineweightschedule:gblock_setdata_walkthrough.gif?nolink |}}
  
 ==== GBlock_GetList ==== ==== GBlock_GetList ====
-Lists every existing GBlock names and masses to the command line.+Lists every existing GBlock name and masses to the command line.
 === Walkthrough === === Walkthrough ===
-<WRAP center round todo 60%> +  - Start the command 
-Todo +  - A window is shown with details about every block instances in the model 
-</WRAP>+{{ :start:plugins:marineweightschedule:gblock_getlist_walkthrough.gif?nolink |}}
  
 ==== GBlock_ReadData ==== ==== GBlock_ReadData ====
-Read a GBlock data.+Reads a GBlock data.
 === Walkthrough === === Walkthrough ===
-<WRAP center round todo 60%> +  - Select a GBlock 
-Todo +  - The data is shown in the command line: 
-</WRAP>+{{:start:plugins:marineweightschedule:gblock_readdata_walkthrough.jpg?nolink|}}
  
 ==== Gblock_Select ==== ==== Gblock_Select ====
 Select a block by their GBlock Name. (From a list of available GBlock names) Select a block by their GBlock Name. (From a list of available GBlock names)
 === Walkthrough === === Walkthrough ===
-<WRAP center round todo 60%> +  - Launch the command 
-Todo +  - Pick a GBlock name from the list 
-</WRAP>+  - Every instance of this GBlock will be selected in the model 
 +{{ :start:plugins:marineweightschedule:gblock_select_walkthrough.gif?nolink |}}
  
 ==== GBlock_SelectNextMissingData ==== ==== GBlock_SelectNextMissingData ====
-Select the next block in the document where gravity center and mass are undefined+Selects the next block in the document which is not a GBlock (gravity center and mass are undefined)
 === Walkthrough === === Walkthrough ===
-<WRAP center round todo 60%> +  - Launch the command 
-Todo +  - The commands loops between the non-GBlocks instances in the model. (Press ESC to leave)  
-</WRAP>+{{ :start:plugins:marineweightschedule:gblock_selectnextmissingdata_walkthrough.gif?nolink |}}
  
-==== GBlock_SetData ==== +==== GBlock_Rename ==== 
-Add gravity center and mass informations to block. GBlocks  are considered by the command //ProjectWeightReport //, which makes them extremely useful for your equipements.+Renames GBlock definition (Every instance will be renamed)
 === Walkthrough === === Walkthrough ===
-<WRAP center round todo 60%> +  - Launch the command 
-Todo +  - Pick a Gblock from the list 
-</WRAP>+  - Enter a new name for the GBlock