-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding push capability for orthotropic materials #372
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed, see comments below regarding collecting the warnings into one message, and slight change to what is being pushed.
Also, let make sure to use the average for the shear modulus!
else if (material is Timber) | ||
{ | ||
Timber timber = material as Timber; | ||
materialData.E = timber.YoungsModulus.X; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggested single warning message, replacing the warnings below.:
Engine.Reflection.Compute.RecordWarning("Due to limitations in the Material model for orthotropic Timber materials in Robot, the following assumptions have been made when converting the BHoM material to Robot:\n" +
"- Youngs modulus has been set to the x-component of the vector in the BHoM material.\n" +
"- Youngs modulus transversal has been set to the average of the y and z-component of the vector in the BHoM material\n" +
"- The ShearModulus (G) has been set to the average value of all components of the vector in the BHoM material\n" +
"- The Thermal Expansion Coefficient has been set to the x-component of the vector in the BHoM material\n" +
"- Poissons Ratio is ignored for timber materials.");
materialData.E_Trans = Math.Abs((timber.YoungsModulus.Y+timber.YoungsModulus.Z)/2); | ||
Engine.Reflection.Compute.RecordWarning("Young transverse modulue (timber) is an average between Y and Z axis due to Robot definition limitation"); | ||
materialData.RO = timber.Density * Engine.Robot.Query.RobotGravityConstant; | ||
materialData.Kirchoff = timber.ShearModulus.X;//Since shear modulus is expressed as shear stress over shear strain, longitudinal value is used as it is likely used for cross section analysis. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would change this to the average value of the vector in BHoM
Engine.Reflection.Compute.RecordWarning("Shear modulus in Y and Z axis are ignored due to Robot definition limitation"); | ||
materialData.LX = timber.ThermalExpansionCoeff.X;//Value in X axis. Longitudinal expansion for bar element is likely of interets. | ||
Engine.Reflection.Compute.RecordWarning("Thermal Expansion Coefficient in Y and Z axis are ignored due to Robot definition limitation"); | ||
materialData.NU = timber.PoissonsRatio.X;//Poisson ratio in X axis. Longitudinal defomation under axial loading is likely of interests. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can actually not be set through the UI in robot, so would completely skip setting this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've deleted the PoissonsRatio for Timber material because as you mentioned it is not a component for Robot Timber material. I think thermalExpansionCoeff is steel worth keeping thought?
Engine.Reflection.Compute.RecordWarning("Robot_Toolkit does currently only suport Isotropic material. No structural properties for material with name " + material.Name + " have been pushed"); | ||
return; | ||
IOrthotropic orthotropic = material as IOrthotropic; | ||
materialData.E = orthotropic.YoungsModulus.X; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missed copying in this warning as well:
Engine.Reflection.Compute.RecordWarning("Robot does not support generic orthotropic materials. Material pushed will be treated as an isotropic material, only taking the x-component of the values into acount.\n" +
"This means the y and z-components of the vectors for YoungsModulus, ShearModulus, PoissonsRatio and ThermalExpansionCoeff will be ignored.");
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All works as expected now
Issues addressed by this PR
Closes #360
Test files
https://burohappold.sharepoint.com/:f:/r/sites/BHoM/02_Current/12_Scripts/01_Test%20Scripts/Robot_Toolkit/Pull%20Requests/Push%20orthotropic%20materials?csf=1&web=1&e=jdsysw
Changelog
Additional comments