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
Last revision Both sides next revision
start:plugins:marineweightschedule:mws-usermanual [2021/02/18 10:59]
adminmar [HydrostaticReport]
start:plugins:marineweightschedule:mws-usermanual [2021/12/14 15:10]
adminmar [ProjectWeightReportByHullSection]
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.
 {{ :start:plugins:marineweightschedule:mws_walkthrough.gif?nolink |}} {{ :start:plugins:marineweightschedule:mws_walkthrough.gif?nolink |}}
 === 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
 +  * **''%%MaterialName%%''**((Since v1.1.3)) (optional) will the material's name. In the Bill-of-Material, the materials are displayed in a specific column. 
 +Two layers with the same name but different materials will not be grouped together.
 {{ :start:plugins:marineweightschedule:pwr_layers2.jpg?nolink |}} {{ :start:plugins:marineweightschedule:pwr_layers2.jpg?nolink |}}
  
Line 64: Line 66:
 For example: For example:
 {{ :start:plugins:marineweightschedule:pwr_layersimplicitstiffeners.jpg?nolink |}} {{ :start:plugins:marineweightschedule:pwr_layersimplicitstiffeners.jpg?nolink |}}
 +<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>
   * **Stiffeners defined as curves in the model**   * **Stiffeners defined as curves in the model**
 Two kind of curves-defined stiffeners can be used: Two kind of curves-defined stiffeners can be used:
Line 76: 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 97: Line 103:
  
 == Particular case for Blocks == == Particular case for Blocks ==
-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 ponctual masses.+By default, rhino(r) blocks((instances references)) are ignored by the command. Howeverwe provide several commands to transform blocks into GBlocks, which are considered in the reports as punctual masses.
  
 See [[start:plugins:marineweightschedule:mws-usermanual#gblock_setdata|gblock_setdata]] See [[start:plugins:marineweightschedule:mws-usermanual#gblock_setdata|gblock_setdata]]
  
 <WRAP center round important 90%> <WRAP center round important 90%>
-When the command will process GBlocks, their layer properties will be ignored, and the Gblock'internal definition will be used instead (Name, gravity center, mass).+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>
  
Line 112: Line 118:
 {{:start:plugins:marineweightschedule:pwr_excel_results.jpg?nolink|}} {{:start:plugins:marineweightschedule:pwr_excel_results.jpg?nolink|}}
  
-Bill of masses detailed sheets for Volumes, surfaces, curves and points:+Bill of masses detailed sheets for Volumes, surfaces, curvesand points:
  
 {{:start:plugins:marineweightschedule:pwr_excel_volumes.jpg?nolink|}} {{:start:plugins:marineweightschedule:pwr_excel_volumes.jpg?nolink|}}
Line 127: Line 133:
 ===  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 report template "PWE_Model.xlsx" can be modified in the plugin'install directoryusually:+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%%'')). 
 +== Excel templates == 
 +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> 
 +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.
  
-<wrap hi>%AppData%\McNeel\Rhinoceros\7.0\Plug-ins\Marine Weight Schedule for RH6-RH7 (dac6da37-23fc-4ad6-9b46-33a2cad9e13b)\//VersionNumber//</wrap> \\ (Adapt Rhino'version if neededas well as the plugin'version)+**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'bounding box. GBlocks will be allocated using the location of their gravity centers. 
 +<WRAP center round important 90%> 
 +Items((Volumessurfaces, 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'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>
  
-It is recommended to edit only the texts values and the logoswhile keeping the document general layout.+=== 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 enableda layer //ProjectWeightReportByHullSection// will be added to the model, with the splitted 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 calculation 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 150: Line 188:
  
 <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) <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'general layout.
-It is recommended to edit only the texts values and the logoswhile keeping the document general layout.+
 ---- ----
 ==== GBlock_SetData ==== ==== GBlock_SetData ====
-Adds gravity center and mass informations to a block. GBlocks  are considered by the command //ProjectWeightReport //, which makes them extremely useful for your equipements.+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%> <WRAP center round info 90%>
-When using this command on an existing GBlock, its gravity center, mass information and name will be overriden.+When using this command on an existing GBlock, its gravity center, mass informationand name will be overridden.
  
 This is the only way to edit a GBlock name or data. This is the only way to edit a GBlock name or data.
Line 170: Line 207:
  
 ==== 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 ===
   - Start the command   - Start the command
-  - A windows is shown with details about every blocks instances in the model+  - A window is shown with details about every block instances in the model
 {{ :start:plugins:marineweightschedule:gblock_getlist_walkthrough.gif?nolink |}} {{ :start:plugins:marineweightschedule:gblock_getlist_walkthrough.gif?nolink |}}
  
Line 188: Line 225:
   - Launch the command   - Launch the command
   - Pick a GBlock name from the list   - Pick a GBlock name from the list
-  - Every instances of this GBlock will be selected in the model+  - Every instance of this GBlock will be selected in the model
 {{ :start:plugins:marineweightschedule:gblock_select_walkthrough.gif?nolink |}} {{ :start:plugins:marineweightschedule:gblock_select_walkthrough.gif?nolink |}}
  
 ==== GBlock_SelectNextMissingData ==== ==== GBlock_SelectNextMissingData ====
-Selects the next block in the document wich is not a GBlock (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 ===
   - Launch the command   - Launch the command
-  - The commands loops between the non-GBlocks instances in the model. (Press escap to leave) +  - The commands loops between the non-GBlocks instances in the model. (Press ESC to leave) 
 {{ :start:plugins:marineweightschedule:gblock_selectnextmissingdata_walkthrough.gif?nolink |}} {{ :start:plugins:marineweightschedule:gblock_selectnextmissingdata_walkthrough.gif?nolink |}}
  
 ==== GBlock_Rename ==== ==== GBlock_Rename ====
-Renames a GBlock definition (Every instances will be renamed)+Renames a GBlock definition (Every instance will be renamed)
 === Walkthrough === === Walkthrough ===
   - Launch the command   - Launch the command