Creating a simplified parametric fastener library

 On some other threads we have been discussing the fastener library that comes with some versions of BricsCAD.  Personally, I abandoned the provided library and started making my own.  But, initially I was unaware that BricsCAD Platinum could do parametric 3D models.  I see now that is a viable thing to do with parametrics, and that makes a fastener family a LOT easier to create.

I still have a lot to learn about the Mechanical module of Bricscad, and it will take some time for me to get a better handle on it.  But, I thought I would start the discussion about how such a fastener library should be created.

My typical fastener is like the attached file with a 1/4-20 x 1" long Hex Head screw.  Note that the head is without the normal curves, and that no thread is modeled.  But the issue gets more complicated with other fasteners.  For example on a 6" version of that screw, it is only partially threaded.  I indicate this to myself by putting a circle where the thread stops. (example also attached. Note that these are all dumb solids)

For a flat head screw I indicate the Philips (cross) by drawing a 2D polyline on the head, and similarly for a socket head, rather than actually modeling the socket.  

For a locking screw, I add a polyline on the side to  show the nylon patch.  Though this information might also simply conveyed in the block name.

As for the file name, since I did not use any fields in the drawing file, I opted to just put that info on the file name.  English units don't do well on file name because the "/" is a problem   The traditional solution is to use the underscore "_".  I also used the - instead of a space between whole inches and the fraction.  But, I would prefer the more proper nomenclature on the BOM.  So, I imagine I should include some fields.  For fasteners the description can do everything except the length, which is the parametric part.  You may notice the McMaster part# on the locking fastener.  Again, this is probably better handled as a field.

Is there any sort of standard for the fields that I should look towards?  or perhaps they should be attributes?  Any other comments?

-Joe

Comments

  • To get the correct name in the BOM you can (should?) change the name of the component:
    [code]: _BmMech
    Name for mechanical component : Hex Bolt 1/4"-20 x Length"
    Convert blocks and external references to mechanical components? [Yes/No] : [/code]

    This name will appear in the Mechanical Browser and the BOM. You can use the Configure option of the BmBOM command to ensure that parametric values appear in the table.

    Hex Bolt 1_4-20xLength.dwg

  • Oops forgot about those pointy brackets:
    [code]: _BmMech
    Name for mechanical component <Hex Bolt 1_4-20x1>: Hex Bolt 1/4"-20 x Length"
    Convert blocks and external references to mechanical components? [Yes/No] <Yes>: [/code]
  •  Thanks for that detail.   I read up on BMMech command on the help file, but it doesn't explain much.  I see that you put in a name that includes "/" which is not a permitted file name.  So, if I save this drawing, I am guessing that the original file name is unchanged. But, this component within that dwg file has the name you typed when the bmMech command was run. Then, by using bmInsert, I can place this component into a new drawing.

    Another thing I a guessing at, based on some posts in another thread, is that the BmInsert command puts this drawing in as a type of Xref.  So, I must maintain the original directory with those parts, keeping the file name and path the same.  Is that correct?

    I do try to find answers to these types of questions before I impose on this forum to get answers from other users.  But, I have yet to find this sort of information in my BricsCAD help files.  I have not heard from anyone whether this sort of information should be there or not.  It may be possible that my help file is not fully installed, or that the Mechanical part is just a separate document and not part of the regular help system.

    -Joe
  •  Mr, Gebbinck, how does the Length get indicated in the BOM.  You put the term "length" in the part name. Is that like a field that automatically updates?  Or perhaps there is the option to include Length as a column in the BOM.

    -Joe
  • On a separate issue from my last few message, I wonder if Part family tables are possible within a part file.

    By this, I am referring to a table in a drawing, that lists various parameters of a part family. For example a hex-head bolt may have a table that, for each diameter, lists the height of the head, and the span across flats.  This means I need to create on Hex Head Bolt, and then fill out the table for the other values.  Though, more likely, I would need to put the 1/4-20 bolt as its own DWG file, and have length as its only changeable parameter.

    This may have application in another type of part, such a an evaporator for a refrigeraion system.  Each model may have different X,Y and X values, and also a different number of fans.  In some other parametric CAD systems, you have the option to have the number of fans change depending by using a type of dynamic array.  And I don't think BricsCAD is at that level.  But, it might have the table, where the user simply chooses the model# and the dimensions adjust.  For models with different numbers of fans, those would need to be separate DWG files.

    -Joe
  •  I am having a problem creating this parametric 3D part.  

    1st, the name of the part is just the file name, and I cannot edit it.  I suspect that I did not properly turn it into a BM part, even though the components bodies seem to be in the listing of the part.

    2nd, Putting a distance constraint between the underside of the head, and the end of the bolt causes the bolt shank to flip up so it extrudes upwards through the head.  The sequence which I select the two surfaces does not matter. When I select the two surfaces, the default value shown is the current value of 1.5 regardless of the order, and if I enter a -1.5 as the number, it still flips upward.

    Attached is the file

    -Joe

    Hex Head Screw 1_2-13.dwg

  • First an unimportant aside:
    My last name often leads to confusion. Even the Dutch get confused. But it is 'Klein Gebbinck' and not 'Gebbinck'. And I do not stand on formality, so just 'Roy' will do. If it helps: I am in fact younger than you. Although not by many years...

    Parametric components and V14 BOM (bad news...):
    I have meanwhile had a look in the V14-V16 Help and have found that the ability to display parameter values in the BOM was introduced in V15.1. This means that for you as a V14 user parametric fasteners are probably not a viable option. At least not if you want to use the BmBom command.
    See: http://www.bricsys.com/bricscad/help/en_INTL/CurVer/CmdRef/source/Mechanical/BmBom.htm

    Component name:
    If a component drawing has a 'mechanical structure' you can change the component name in the Mechanical Browser. If that structure is missing you first have to use BmMech to create it. The command will prompt for the component name. The file name will be suggested as the default name, but you can choose any name.

    BmInsert and paths:
    BmInsert initially inserts components as Xrefs. If a component has parameters and a parameter is changed, the Xref becomes an anonymous block. But in both cases an external file is referenced. So the path of of that file is important.

    More help:
    You can find some information in the V14 Help under:
    User Guide > Creating Entities > Mechanical
    User Guide > Creating Entities > Direct Modeling

    About the constraints in your drawing attached to post #7:
    There is no need to have that many constraints. I think that only two are required. If the head is a separate solid, you should add a DmFix3d constraint to the top of the shaft and a DmDistance3d constraint between the top and the bottom of the shaft. If the head and the shaft are a single solid, the bottom face of the head should be used for both constraints instead of the top of the shaft (see the example in post #2).
  • Parametric?

    Parametric 3D means full history of the 3D part  so applications as old mechanical desktop and inventor , pro engineer  etc are real parametric 3D applications.
    Bricscad is sure not yet parametric.

    3D constraints work good so a historical list how this 3D is constructed is missing.
    For instance, if a few holes has been moved or added, file saved and 2 weeks later someone else opens the 3D and has no clue what has been changed.
    A historical list prevents this.
  • @ Stefaan:
    I think your definition of parametric is too strict. IMO AutoCAD's dynamic blocks, 2D constraints, and 3D constraints are all examples of parametric applications.

    Attached is a parametric bolt and nut example. The proportions are based on DIN M10.
    Open Para_Bolt_Nut_Test.dwg and play around with the Diameter and Length parameters.
    To get a BOM that includes the parameters use the 'Configure' option of the BmBOM command and choose 'parameterS' (requires at least V15.1)

    Para_Bolt_Nut_Test.zip

  • We seem to have a different understanding of 'parametric'.
    Most modelers used to be 'history-based'.
    Fairly recently 'direct' modelers came on the scene, not requiring the full modeling history in order to be capable to apply modifications to a model, thus providing more flexibility and taking away the requirement for the operator to be intimately familiar with the modeling history tree in order to make any desired modifications. Also, this history tree often could require major reworking, even restart, of a model in order to  allow certain modifications.

    Besides 'history-based' and 'direct' modelers, there are a few modelers that combine both approaches.

    Whether a modeler is 'history-based' or 'direct' or a combination of both types doesn't say anything about support for parametrics, the use of parameters.
    All  aforementioned modeler types can either support the use of parameter-driven ( = parameter-constrained) modeling or not and thus be referred to as 'parametric' or not.
  •  Roy, I realize your test drawing was probably focused on certain aspects of the features.  But, I can't seem to get any sort of parametrics to work in them.

    The BOM treats all the bolts as the same object.  So, a 1/4" bolt and 1" bolt are the same item on the list.

    If I select one of the fasteners in the assembly, there don't seem to be any parameters I can edit to change its shape.

    If I opened the nut in the "bib" directory, there are parameters, but changing any of the values does not do anything, even after hitting update. But, note that the command line replies, "Mechanical structure is no initialized".

    I tried it again, but then BricsCAD immediately crashed and died.  Perhaps parametrics are one of those "not ready to be release as a separate product" sort of features in my v14 platinum?

    -Joe
  • @ Joe:
    My files were created with BricsCAD V16. This version has an improved implementation of the 'Rigid Set' 3D constraint. As a result my files would not work in V15 and V14. Removing these constraints solved the problems for V15. V14 is a different story. Parametric components were introduced in V15.1, so the whole idea of a parametric library is not feasible in V14. The Para_Bolt.dwg and Para_Nut.dwg can be made to work in V14. But to keep the nut in the correct location I had to introduce a 'helper' cylinder in V14.
    I apologize for getting you hopes up, but I was unaware of this development history. I have only recently upgraded to the Platinum version.
    imagePara_Bolt_Nut_Test_V15_V16.png

    Para_Bolt_Nut_Test_V14.zipPara_Bolt_Nut_Test_V15_V16.zip

  • Parametric history means :

    for instance, a box has 4 fillets and one hole and one extruded cylinder.
    If I edit the fillet, from R3 to R5 then all four corners are updated.
    I can change the diameter and placement of the hole, also, diameter , height and position of the extruded cylinder.

    That all within the history list.

    Adding parameters to bolts/nuts is one thing, positioning the bolt/nut another.

    BricsCad V16 leans a bit towards parametric build up but not yet on a very friendly way , I mean with that, if I move a hole then I really want to see a dimension from the side where
    this hole has been placed. if  a part has been further extruded.

    In a CAD team: without a history list it is painful to edit drawings from another designer , cause you simply have no idea how this model has been build up related to position, parameters and constraints.

    I have drawn a 9 cylinder rotary engine that actual can rotate in Autodesk Inventor.
    if I select one cylinder in the BOM edit the diameter of the cylinder, save, then the piston is updated automatically cause they are linked to each other.
    that's the most important function within real parametric 3D.
    This link is not possible with Bricscad and all the parametric 3D applications can do this.

    Do I look too strict?
    I've drawn 15 years with parametric 3D (Mechanical Desktop, Inventor) so sure know the difference.










  • Example of a bricsCad 3D that I drawn usual.
    And this is even simple.
    Mechanical design can be very complex.


    imageBricsCad 3D.jpg
  • Stefaan, I know is meant by history-based parametric design and understand why this may be essential to you. But I still have a broader interpretation of the term 'parametric'. My previous response to your remark was in no way  intended as a comment on your level of experience ('too strict' = 'te streng / te restrictief').
  • Hello all,

    Parametric history means :

    for instance, a box has 4 fillets and one hole and one extruded cylinder.
    If I edit the fillet, from R3 to R5 then all four corners are updated.
    I can change the diameter and placement of the hole, also, diameter , height and position of the extruded cylinder.

    That all within the history list.

    Adding parameters to bolts/nuts is one thing, positioning the bolt/nut another. 
    And both parameters are possible with BricsCAD: you can size your bolt/nut by adding 3D constraints to the faces and edges of the corresponding 3D solid(s), and you can then insert it as a component into your assembly and use the same 3D constraints to position it. So what's the problem that BricsCAD is not a history-based modeler?

     BricsCad V16 leans a bit towards parametric build up but not yet on a very friendly way , I mean with that, if I move a hole then I really want to see a dimension from the side where
    this hole has been placed. if  a part has been further extruded.

    That's a nice suggestion, thank you! We are constantly improving our GUI, now mostly for BIM (did you try BIMINSERT, for example?), but we plan to generalize these improvements for MCAD users as well in V17.

    In a CAD team: without a history list it is painful to edit drawings from another designer , cause you simply have no idea how this model has been build up related to position, parameters and constraints.

    Instead of a history tree in BricsCAD you have a list of parameters and 3D constraints, which allow you to reach the same goal.

    I have drawn a 9 cylinder rotary engine that actual can rotate in Autodesk Inventor.
    if I select one cylinder in the BOM edit the diameter of the cylinder, save, then the piston is updated automatically cause they are linked to each other.
    that's the most important function within real parametric 3D.
    This link is not possible with Bricscad and all the parametric 3D applications can do this. 

    Why have you decided that it is not possible with BricsCAD? Did you file a support request with your model? Did you try to create parameter 'D' at assembly level and then specify that both diameters (of the cylinder and the piston) are equal to 'D'?

     Do I look too strict? 

    Probably you are just not aware of the parametric possibilities of BricsCAD? In that case please don't hesitate to formulate your questions as support request to our support analysts.

     I've drawn 15 years with parametric 3D (Mechanical Desktop, Inventor) so sure know the difference.

    That's the problem - I can understand that it is not so simple to change your mind from the history-based world to history-free.

This discussion has been closed.

Howdy, Stranger!

It looks like you're new here. Click one of the buttons on the top bar to get involved!