New Features and Bug-fixes in Karmba3D 1.3.2:
- Karamba3D can be used as a scripting library independently from Grasshopper. It now comes with its own geometry classes.
- A project for running automatic Karamba3D tests under NUnit has been published. See https://github.com/karamba3d/K3D_tests.
- The cross section library has been extended considerably and comprises standard steel sections from the EU, UK, US, Russia, Japan, India, Canada, Germany, Australia, China, South Africa, Brazil and Korea.
- It is possible to define initial-curvature and non-uniform temperature loads on beams and shells
- There is a Karamba3D version for Rhino7
- The definition of cross sections and materials via the Assemble-component has now priority over definition at components which generate elements.
- A model's nodal positions can be changed via the 'ModifyModel'-component. This is necessary since the 'DisassembleModel'-component outputs elements with nodal coordinates attached.
- 'Joints' have now their own class and container.
- All known bugs of Karamba3D 1.3.1. were fixed
Known Bugs in Karmba3D 1.3.1:
- With trusses the 'BESO for Beams'-component led to wrong results.
- The 'Optimize Reinforcement' component in most cases returns too large reinforcement quantities in the presence of bending moments: The concrete cover is wrongly used as the distance between reinforcement layer and neutral plane.
- The 'Mass'-output at the 'Optimize Reinforcement'-component is wrong in case of uniform reinforcement throughout a shell. The concrete cross section is counted as reinforcement in this case.
- The 'Mass' output-plug of the 'Optimize Reinforcement'-component returns values which are too large by a factor of ten.
- Initial strain and temperature loads lead to wrong normal forces when sent through 'Analysis ThII' or 'Optimize Cross Section'.
- 'Optimize Cross Section'-component: applies elastic cross section design procedure when user asks for plastic design.
- The 'Material Selection'-component returns materials with zero stiffness and strength for US steel types.
- The 'Optimize Cross Section'-component ignores the activation status of elements: Inactive elements get included stiffness-wise in the model as though they were active.
- The MeshLoad-component gives slightly wrong resultant loads in case of quad-meshes.
New Features and Bug-fixes in Karmba3D 1.3.1:
- there is now an updated manual.
- Karamba3D can be installed for Rhino5 64bit and Rhino6 in parallel.
- removed bug in MeshLoad: for ldist<0 loads were not attached correctly.
- improved string output of MeshLoads.
- removed problem with BLOCKEDIT-command under Rhino6.
- circular cross sections: made a distinction between full and CHS sections in terms of shear area and plastic resistance moment.
- made orientation convention for local MeshLoads the same as for shell coordinate systems.
- the 'DisassembleMeshLoad'-component outputs point-loads with coordinates instead of node indexes.
- removed bug which prohibited temperature and strain loads on shells.
- renamed 'AnalyzeTh.I' to 'Analyze' since it does automatically include second order theory effects in case of elements with non-zero NII forces.
- changed unit of displacement for input and output to centimeter.
- added an example for reinforcement design of shells.
- reordered the subcategories in the Karamba3D toolbar to better fit the workflow.
- 'OrientateElement'-component: added possibility to specify the local Y-axis for beams and trusses. If present and applicable (i.e. not parallel to the element axis) the Y-orientation overrides the Z-orientation.
- after disassembling a model, all elements contain node positions instead of node indexes to allow for reasssembly with changed node indexes.
- PointLoad, Support: 'DisassembleModel'-component switches definition by index to definition by position to allow for reasssembly with changed node indexes.
- 'MatProps'-, 'MatSelect'- and 'Cross Sections'-component: changed 'Elems|Ids' input from list to item.
- distributed moments are now displayed with unit 'kNm/m' instead of 'kN' as physical unit.
- improved the output of the 'Utilization'-component in case of inactive elements
- removed bug in Utilization-component which caused exceptions in case of inactive elements.
- in case of duplicate support definitions at nodes there is now a warning and not an exception when assembling the model.
- removed bug in Model: output of number of materials was incorrect.
- the Exporter to DStV now accepts spring cross sections, removes thermal loads from springs.
- made 'Beam Forces'-component part of the free version.
New Features in Karamba3D WIP 1.3.0 which change the behavior of older definitions:
Materials are now attached to the cross sections instead of the elements.
This makes it possible to include cross sections with different materials in one
cross section family. In case an old definition contains a cross section optimization
and a model where a non-standard material was assigned to the elements, this will lead
to different results under Karamba3D 1.3.0 compared to older versions.
New Features in Karamba3D WIP 1.3.0:
- calculation of reinforcement quantities for shells
- orthotropic material behavior for shells
- geometric non-linear calculation of beams (is work in progress)
- user defined orientation of local coordinate systems for shells
- in-plane and transverse shear modulus of materials can be set independently
- diagrams of cross section forces are plotted along the deformed geometry
- CullCurves-component to thin out lines generated using line results on shells
- persistent license between Karamba installs
- user specified colors for elements, materials and cross sections
- definition of model visibility via Brep
- definition of cross sections via the components which generate finite elements
- non-uniform surface loads
- ModelView: input-plug 'LCIndex': '0' now corresponds to the first loadcase LC0
- added option to make user defined karamba.ini-files permanent
- made user interface of Karamba NearestNeighbor-component similar to that of Grasshopper
- symbolic display for gravity loads
- component to disassemble materials
- improved performance of the output of beam result meshes and local coordinate axes
- improved performance of the cross section optimizer
- improved performance of the solver
Bug Fixes in Karamba 1.3.0:
- removed bug in COG calculation of shells
- PointLoads are now local by default
- removed bug in uniformly distributed loads: they were ignored in case of truss elements
(beams with bending=false). This lead to wrong resultant forces in case of
MeshLoads with equivalent line-loads on truss elements.
- removed bug in SupportForces-component: the resultant force was wrong in case of mixing globally and
locally oriented supports
- beams and trusses defined via IndexToBeam and zero length caused an unknown error in the solver
- removed bug in the calculation of Wt for quadratic custom cross sections
- removed bug in classification of I-profiles according to EC3
- removed bug in BESOforBeams: inactive elements were still visible
- corrected calculation of c-value for RHS cross sections
- removed bug in Load_Imperfection: Trusses could not be given Imperfections
- removed bug in scaling of the display of imperfections
- improved display of model by using the clipping box property of the components
- results are now bitwise identical between different runs
- corrected bug in export of locally oriented supports to RStab8
- made streamlines work for very small structures
- removed problem with scaling of fonts in Rhino6 on high resolution displays
- when feeding points into the Assemble-component now an exception is thrown in case
of nodes which do not connect to elements
- Supports: multiple supports in one position now cause an exception
Known bugs in build 161020:
- Line-loads on trusses get eliminated from the model without warning. This leads to wrong force distributions when using the MeshLoad-component with option 'Line loads'-enabled on structures with truss elements (i.e. beams with 'bending' set to false).
- InitialStrain-loads get exported to RStab or Robot with wrong sign.
- If multiple supports are defined in one node, the sum of resultant forces/moments returned by the 'Reaction Forces'-component is not correct.
- In case of a model with locally and globally defined supports the resultant forces/moments returned by the 'Reaction Forces'-component is not correct.
- For custom quadratic profiles the torsional resistance moment is calculated as 'b' (b = cross section height) instead of 'Ipp/b' (Ipp = primary torsional moment of inertia).
- The shear areay Ay and Az of I-shaped cross sections are incorrect in case of non-zero fillet radius and a large difference of flange- and web-thickness.
Karamba 1.2.2 contains these new features:
- Plots of cross section forces are now attached to the deformed geometry.
- The BESOShell-component has an improved user interface.
- Replaced Prestress-load by InitialStrain-load to make its application more intuitive.
These bugs got fixed:
- Sometimes excessive beam displacements resulted in Th. II calculations with NII almost zero.
- In Th. II calculations inaccurate reaction forces were calculated
Known bugs in build 161006 (got fixed in build 161020):
- For shell structures a wrong position of the center of gravity is output at the Assemble-component.
- Network licenses issued prior to December 2015 do not work properly.
Known bugs in build 161020:
- Wrong text-output of 'License'-component: reports 'student'-license for commercial network licenses issued before 12/2016 (Karamba functionality not restricted).
Karamba 1.2.1 contains these new features:
- New solver makes Karamba roughly two times faster and uses up much less memory compared to older versions.
- The "BESO for Shells"-component allows to do bidirectional evolutionary optimization with shell structures.
- Karamba comes with a new installer.
- Iso-lines on shells can now be positioned by value of the property to be traced.
- Cross section forces: come now in two colors for positive and negative values.
- AnalyzeThI- and AnalyzeThII-components issue warnings instead of errors in case of rigid body modes or negative eigenvalues.
- 'Deformation Energy'-component: elements for which to calculate bending- or axial deformation energy can now be selected via their identifiers.
- 'Utilization'-component: outputs now stresses for beam- and truss-elements.
- Added Exporter for RStab8.
- Models can be manipulated using Grasshopper's 'Move'- and 'Scale'-components.
- The Assemble-component issues warnings if loads, materials or cross sections do not apply to any elements.
- The 'karamba.ini'-file gives more customization options (e.g. font-size, offset and color of annotations, value of the constant to be used as the acceleration of gravity)
These bugs got fixed:
- Ouput of shell stresses was wrong by a factor of 10000 due to a conversion bug.
- Confusion of lb mass and lb force gave wrong results for structures under dead weight with Imperial Units.
- Eigenmode-component is now faster and more reliable.
- Element identifiers that were made up of digits only led to strange behavior. Element identifiers are now required to not resemble integers.
- Removed bug that made Karamba crash in cases where zero elements resulted after BESO for beams.
- AnalyzeThII: the warning in case of divergence gave a wrong convergence information.
- The contribution of locally defined loads to the system stiffness is not considered in second order analysis or the calculation of buckling load factors.
Karamba 1.1.0 contains these new features:
Karamba now comes with second order theory analysis based on the assumption of small displacements.
Imperfections (member inclinations and initial curvature) may be applied as loads.
- The "Buckling modes"-component allows to calculate global buckling load factors and buckling shapes.
For cross section optimization and the calculation of utilization of beam and truss elements the concise procedure of EC3 is used. It takes account of lateral torsional buckling and issues a warning in case of local buckling of the cross section.
In the free version of Karamba the number of shell elements is not limited any more.
- Karamba gets installed for all users by default.
Some functions got grouped together (e.g. for the definition of cross sections and loads) into mutable components to avoid crowding of the icon panels.
Fold-out panels give detailed access to element and cross section properties.
Cross section and element modifiers can act as stand-alone objects which facilitates the manipulation of models.
- The new "JointAgent"-component gives rich possibilities for defining hinges throughout a structure.
The "MeshLoad"-component now features additional options regarding the placement of loads on elements and nodes.
A refurbished ''Material Selection''-component gives better access to the predefined materials.
The examples that come with Karamba got restructured and updated.
These bugs got fixed:
Karamba 1.0.5 contains these new features:
- A simplified installation procedure.
- Iso- and stream-lines with user supplied values and vectors at mesh-vertices (unlimited mesh-size also in the FREE-version of Karamba).
- Benchmark examples with known results from literature for the evaluation of calculation accuracy.
- Cross section optimization comprises now also shells.
- Shell elements can be given individual thicknesses.
- Line-like shell results can be plotted on the deformed mesh.
- Faster model assembly and generation of mesh-loads as compared to the previous version of Karamba.
- A component for the retrieval of distributed cross section forces for shells.
- Principal moment- and normal force directions on shells.
- Separation of graphical user interface and underlying functionality of most Karamba components. This makes it easier to use Karamba in scripts.
These bugs got fixed:
- The layer-position of shell results was corrected.
- A problem with infinite loops in the calculation of flow-lines was resolved.
- Snapping nodes of elements do not cause errors and problems with mesh-loads any more.
- A bug that led to deviations in the display of principal stresses from the correct direction was removed.
Karamba 1.0.4 contains these new features:
- Karamba can now handle SI and Imperial Units.
- The "MeshBreps"-component meshes multiple, connected Breps for shell analysis.
- A network license option based on the Zoo5.0 license server has been added.
- The algorithm for cross section design has been improved: Ultimate limit state and usability limit state design can be controlled independently from each other.
- The cross section table comes in two variants: either sorted by cross section height (the default) or sorted by weight. When used in cross section design the first table results in minimum structural height, the second in minimum weight.
- For custom denitions of hollow box cross sections and I-profiles a fillet radius can be specified.
- When using the "MeshLoad"-component it is possible to specify nodes and elements where to apply it.
- American, Japanese, Chinese and Australian standard steel types have been added to the table of materials.
- The "ForceFlow" component supports multiple directions for the generation of flow patterns.
- There is a component for plotting principal moment lines on shells.
- All shell results that come as patterns of lines (e.g. principal stress lines, iso-lines,...) exactly intersect the underlying mesh.
These bugs got fixed:
- The shear deformation of hollow cross sections was underestimated.
- With Grasshopper 0.9.0056 the mouse interaction with the canvas was blocked after activating a drop-down menu.
- Models without any elements made Rhino crash upon analysis.
- Zero sized beam elements had the same effect.
- When Karamba could not verify the license it stayed in trial mode without reporting a problem.
- Writing a "machine.id"-file sometimes resulted in a Rhino crash.
- The cross section table contained wrong data: "Wy" of cross section FRR 120/80/4 was 20.4cm3(wrong) instead of 50.5cm3(correct). The "Wz"-values of the FRR family were slightly wrong. "It" and "Wt" of type "RO" were too small.
- Custom cross sections did not calculate the radius of gyration "iy" and "iz".
- In the results of the "Generate Cross Section Table"-component columns "Name" and "Family" were swapped in the resulting table.
- The position of the shell layer for calculating stresses is taken absolute instead of relative (i.e. '-1' is taken as the layer at a distance of 1m from the middle plane instead of the upper edge). This bug also affects the material utilization of shells because it gets calculated as the maximum at position -1/1.
- Shells: On complex geometries the calculation of flow-lines can result in infinite loops.
- When nodes of elements snap together and leave them with zero length or area, the mapping of element identifiers to element indexes is wrong. This leads to invalid indexes when using mesh-loads.
- The principal stress directions deviate from the true direction depending of the orientation of the underlying finite element.
Karamba 1.0.3 contained these new features:
- All flavors of Karamba come in one installer.
- Karamba components now conform to the standard Grasshopper data matching behavior.
- The installation folder contains approximately 180 examples and tests (see 'Karamba/Examples')
- Each Karamba specific object (e.g. beam, cross section, model,..) has a parameter icon which simplifies its handling.
- All Karamba specific objects can be internalized. This makes it easy to e.g. copy and paste them from one definition to another.
- Cross section optimization can now be done with groups of beams that shall all have the same cross section
- The Cross section optimization component can be supplied with a target value for the maximum deflection.
- 'Natural Vibrations': Modal mass and participation factors are scaled according to the modal shapes whose maximum vector component is scaled to unity.
- 'Read Cross Section Table from File': The standard cross section table contains ~5500 types from all over the world.
- 'Cross Section Range Selector': This component helps to preselect groups of cross sections depending on country, shape, family, maximum height and width.
- 'Cross Section Matcher': Takes a custom cross section, compares it to a given list of cross sections and returns the list member which is the best match on the safe side. Can be used to turn arbitrary cross sections to standard profiles.
- 'Connected Parts': Returns a data tree containing lists of lines that are connected. Helps to detect errors in the model.
- 'Disassemble Beam': Now returns also the local beam coordinate system and eccentricities.
- 'Modify Element': Buckling can be turned on/off for cross section optimization. Lets on simulate pretensioned, slender elements without having to really pretension them.
- 'Select Beam': Leaves the data structure of the incoming beams intact, so that the selected and rejected elements can be reunited in the original order after manipulating them.
- 'Export Model to DStV': Has export options for RStab and Robot.
- 'Mesh Load': Can now optionally generate approximate point- and uniformly distributed element-loads.
- 'Disassemble Mesh Load': Splits mesh-loads to point- and element-loads.
- 'Temperature-Load': Lets you simulate lengthening and shortening of elements due to heating and cooling with respect to the initial state.
- 'Material Properties': Contains an input-plug for the coefficient of thermal expansion.
- 'ModelView': The sub-menu 'Render Settings' lets on fine-tune the color range of rendered results by percentage of range or absolute value.
- 'Force Flow Lines on Shells', 'Iso-lines on Shells', 'Principal Stress Lines on Shells': Points near the shell can be given as sources of result lines.
- 'Line-Line Intersection': Setting a length tolerance avoids small pieces where lines meet in a T fashion.
- 'Get Cells from Lines': Takes a connectivity graph and points and constructs closed cells from it.
These bugs got fixed:
- Display of shell cross sections was not correct
- Calculation of shell elements with zero area threw an exception
- The calculation of the torsional resisting moment of box cross sections was wrong.
- The DisassembleModel-component skipped line-loads
- Locally oriented supports led to wrong cross section forces in the elements they connect to.
- Component 'Tension/Compression Eliminator': crashes on a random basis.
- Cross section table: 'Wy' of cross section FRR 120/80/4 is 20.4cm3(wrong) instead of 50.5cm3(correct). The 'Wz'-values of the FRR family are wrong.
- Cross section table: 'It' and 'Wt' of type 'RO' are too small.
- Custom cross sections do not calculate the radius of gyration iy and iz.
- Component 'Generate Cross Section Table': columns 'Name' and 'Family' are swapped in resulting table: 'Family' should be first.
- Grasshoppers mouse commands (pan,...) stop working after pressing the button of drop-down lists (e.g. for load-case selection). Work around: click on another widget of the same component that triggered the problem to unlock mouse commands.
Karamba 1.0.2 contained these new features:
- Names of materials can be displayed via the ModelView.
- Default color of resultant displacements goes from white (zero) to blue.
- There is an improved version of the StackedStitch-mapping.
- MeshToShell can now be used with non-manifold meshes as input.
These bugs got fixed:
- In some instances principal stresses, utilization and principal stress direction display with the ShellView-component led to runtime errors in the component.
- In some situations the IsoLine-component crashed.
Karamba 1.0.1 contained these new features:
- Karamba supports GH 0.8.0066 and 0.9.0006+,
- contains triangular shell elements plus related components for results retrieval: iso lines for shell results properties, principal stress lines, force flow lines.
- The functions of the ModelView-component are distributed to new ModelView-, BeamView and ShellView-components. New display options were added.
- ModelView: The display of the elements base geometry (axes, mesh of the middle plane of shells) can be enables/disabled via the 'Elements'-checkbox so they do not interfere with a rendered view.
- A DStV-component exports model properties to a STEP-file which can be imported in RStab5 and 6.
- Licensing now works via license files that turn a Karamba Trial-version into pro- or pro-student versions
- Deprecated components issue a warning and show a skull as their icon.
- The handling of colors for legends was improved: Any number of input colors gets interpolated to the preset number of color steps. This value can be changed in the 'karamba.ini'-file. Color schemes for legends can be specified separately for each property in ''karamba.ini''. RGB-values can be used for color specification.
- 'MatSelect' and 'Cross Section Selector' now also accept list indexes for selecting materials or cross sections from lists.
- 'Resultant Section Forces'-component: the number of points along a beam which get used for determining the maximum resultants defaults to three and can be changed.
- 'Nodal Displacements'-component: now returns vectors.
- Changed handling of 'SimpleStitch' and 'ProxyStitch': properties of connecting elements can be selected by giving an element id.
- Added dummy meshes for springs at the BeamView output-plug so that correspondence between beam index and mesh index stays intact when springs are present.
These bugs got fixed:
- Assembling a disassembled model after cross section optimization did not work correctly.
- 'Cross Section Selector' returned multiple cross sections when list contained cross sections with duplicate names - now the first.
- 'MLoad': When option ''global proj.'' was selected the absolute value of a load vector was squared.
- Tool tips did not show on Karamba components: Now they show when the mouse pointer hovers over input widgets like checkboxes.
- 'Approximate Principal Strains' removed bug in calculation of principal directions: sometimes first and second principal directions were interchanged.
- 'Optimize Cross Section': Crushed when joints were present in the model. It did not take account of eccentricities defined in across section table.
- Maximum number of beam sections is now limited to 1000 per beam by default. In case of very large deflections the rendering of beam meshes took very long. The default number can be changed in ''karamba.ini''.
- removed memory leak in ''Element Felting''-component.
- 'Make Beam-Set' was mistakenly not included in the Trial- and Pro-versions of Karamba.
- 'Eigen-Modes' was mistakenly not included in the Free-version of Karamba.