Skip to content
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

Merged
merged 6 commits into from
May 25, 2020

Conversation

Martian42
Copy link
Contributor

@Martian42 Martian42 requested a review from IsakNaslundBh May 19, 2020 14:30
Copy link
Contributor

@IsakNaslundBh IsakNaslundBh left a 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;
Copy link
Contributor

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.
Copy link
Contributor

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.
Copy link
Contributor

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.

Copy link
Contributor Author

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;
Copy link
Contributor

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.");

Copy link
Contributor

@IsakNaslundBh IsakNaslundBh left a 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

@IsakNaslundBh IsakNaslundBh merged commit bcc6010 into master May 25, 2020
@IsakNaslundBh IsakNaslundBh deleted the Add-Push-capability-for-all-materials branch May 25, 2020 09:09
@IsakNaslundBh IsakNaslundBh added the type:feature New capability or enhancement label Jun 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feature New capability or enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Robot_Toolkit: Add push support for OrthoTropic materials
2 participants