thegrumpys / odop

Open Design Optimization Platform (ODOP) - Coil spring design app; mechanical springs; compression spring, extension spring, torsion spring
https://www.springdesignsoftware.org
MIT License
4 stars 6 forks source link

Improve handling of standard wire sizes #467

Open grumpyinca opened 3 years ago

grumpyinca commented 3 years ago

There is an opportunity to improve the handling of standard wire sizes.

In the US, there is a concept of "1st preference" and "2nd preference" wire sizes. Separately, I believe that at some level metric wire sizes are available for purchase in the US. Finally, it is hoped that wire manufacturers would have an interest in having their product line specifically called out in ODOP:Spring.

In current implementation, the 1st and 2nd preference tables are merged. Metric sizes are not visible if working with US units and visa versa. The standard size tables are linked from the material tables. Customizing wire size tables for a specific wire manufacturer requires maintaining a complete separate version of ODOP:Spring.

A different approach to handling wire size tables (perhaps linked to a different approach for handling material properties tables) should be thought through. Perhaps instead of offering the user a single column of standard wire sizes to select from, it could be an entire table. For an arbitrary example:

1st Preference   2nd Preference   metric - mm in. equiv.   Gibbs   Interwire
0.105         0.105   0.105
    0.106       0.106  
      2.7 0.1061    
0.109         0.109   0.109

The user would select a single row. If working in US units, the inch value would be imposed. If using metric units, the mm value would be imposed.

Other implementations of this same notion are possible.

grumpyinca commented 3 years ago

Alternative implementations are possible. For example:

If Wire_Dia is in FREE status, the handling of wire properties like tensile strength could be exactly as currently implemented. If going through Action : Select Size, the user might get a chance to select the current generic standard sizes, some improved version as described above or select a wire vendor (manufacturer, distributor). When a standard wire diameter from that vendor is selected, the material properties (tensile strength) associated with that vendor for that wire diameter would be imposed.

At this is written, the implementation details are not thought through. Will this require Prop_Calc_Method other than 1? An entirely new Prop_Calc_Method ? Presumably, this feature would be accessible from Action : Select Size in all views. However, it might require Advanced View to actually see what is going on. How does the user switch back to default behavior with Wire_Dia FREE ?