Community Tip - You can Bookmark boards, posts or articles that you'd like to access again easily! X
Recently I've been downloading Gridfinity boxes from makers spaces as a .stp file as a starting point and then modifying them in Creo to create the container I want on our 3D printers. However I'll get halfway through designing a container and then decide instead of it being a 4x6 container if I make it a 4x8 container I can fit in this extra widget.
This requires me to download a whole new .stp file and start the Creo process from scratch. It sure would be nice if these Gridfinity files were parametric.
I've been racking my brains to think of the best way to great a parametric Gridfinity set of bins.
1) I'm assuming a family table is the best way to create a parametric set of bins?
2) Does anybody already have a Gridfinity family table they could share with me?
3) Filling in the corners between two sets of bins or filling in the edge corner details will be the difficult part. I'm guessing I could do that with a bunch of relations within the family table.
I appreciate any tips or tricks from Creo users that have tried this and what you learned about the best approach..
For those that don't know what Gridfinity is here is a YouTube short showing you the concept:
https://www.youtube.com/shorts/7BkqQXnJdK8
Here is the Gridfinity design spec:
https://gridfinity.xyz/specification/
Any thoughts or help appreciated.
Cheers,
Airfix
Solved! Go to Solution.
I opened your model and was able to get it to work as you intended. This is not the approach I would take with the UDF functionality. I would make a single model that is driven by the number of cells required to build the base plate which would not involve using any UDFs to create the baseplate geometry. The approach with this is to create a plate of the correct size for the array and then cut out each cell to form the pockets. By exploiting geometry patterns this can be done in a manner that regenerates quickly as will be seen in the video.
In this baseplate model I would include a csys at the center of each cell which could then be used to drop UDFs on a cell for any modification to the baseplate (i.e. cutting away cells for non-rectangular arrays). If you are clever about building the UDFs then you can very quickly customize a baseplate by placing them with a csys reference only.
I would not use family tables for this. If you want the designs in Creo then build a model with relations and use it to generate whatever size you need based on the geometry of a unit cell. There are online gridifinity generators that take input and then create the 3D model, you can readily replicate this within Creo. Start with a unit cell definition for each type of design i.e. base plate and then use the unit cell to expand an array to fill the desired footprint managed with relations. I also think that UDF functionality may be useful for options to be added to a base model (screw mounting on a base plate).
Check out this thread where there are models that employ a step and repeat approach to generate a "grid". You should be able to leverage some of the techniques shown in these models to make your parametric models to grow/shrink as needed.
I was thinking family tables because it would be easy to turn on/off certain features like the magnet recesses but it would likely require a huge table which can be difficult to manage.
I had a passing thought about using a UDF which I've used in the past to generate the gear teeth from an involute sketch but it has been years since I created that UDF.
Those isogrids are a difficult problem to model then more difficult when you think of manufacturing. Fortunately the gridfinity problem is much easier being planar. I'll have to think more about the grid approach used in the isogrid models I downloaded. Thanks for the link.
A few hours working on the problem and writing relations now will likely save me frustration down the line. My initial Creo model of these bins started with the profile being swept around a sketch but then I have to fill in the voids but that might not be the best approach for a parametric grid driven by relations.
Airfix
tbraxton,
Okay, so I made a UDF for the base grid. I'm trying to have a prompt for the user to be able to turn off or on some of the features. In this case I want to turn off/on only the 4 corner extrudes but because they were in my original pattern I can't seem to turn them off in the UDF. Do I need to to pattern the corner fill extrudes independent of the sweep, or do I need to use ProProgram or a family table and prompt the user through that?
Attached is my UDF in a zip file (Creo 9). BTW it is a metric model and placement should be self explanatory.
Cheers,
Airfix
I opened your model and was able to get it to work as you intended. This is not the approach I would take with the UDF functionality. I would make a single model that is driven by the number of cells required to build the base plate which would not involve using any UDFs to create the baseplate geometry. The approach with this is to create a plate of the correct size for the array and then cut out each cell to form the pockets. By exploiting geometry patterns this can be done in a manner that regenerates quickly as will be seen in the video.
In this baseplate model I would include a csys at the center of each cell which could then be used to drop UDFs on a cell for any modification to the baseplate (i.e. cutting away cells for non-rectangular arrays). If you are clever about building the UDFs then you can very quickly customize a baseplate by placing them with a csys reference only.
Tbraxton,
Thanks for the great explanation video. I would not have thought to use a UDF if it were not for your original post but now I’ve re-read that post, I see you were not suggesting to use a UDF to create the geometry, just certain features.
First to answer the questions from your video, these grids are typically 3D printed and as you alluded to for tool box, drawer and other organization. You are limited by the bed size of the 3D printer so for some of our low end printers for this type of project that would be a 5x5 grid. To fill a larger space you would just print multiple grids and in some instances have spacers to fill in any drawer dimensions that are not divisible by 42. Also I’ve not yet found a need for anything other than a rectangular grid but I suppose it could be a potential need.
I am not convinced on the worth of the Gridfinity system so this is a side project for a small drawer to test the pro’s and con’s of the system. The main con is the inefficient use of space if a tool or item happens to be just larger than 42mm.
The grid is the easier part because there is very little variance in the shape and is what I chose to model to simply understand the best Creo Practices. The bins are where the parametric design is more critical. For example if a bin has been designed for a tool that needs a 3x3 grid and then it is decided to add an accessory to that bin now requiring a 4x4 grid it is important that the model doesn’t fail or references lost when the bin grid is expanded.
A problem in my solution is the X-CENTER-PLANE and Y-CENTER-PLANE changes feature ID every time the grid size is changed so any features referencing these planes will fail following a grid size change. Resolving the failures would be trivial if not time consuming depending on the number of children to those planes.
By referencing each cell’s csys in your solution nothing will fail when the grid size changes.
A few questions/observations
Thanks for your help in helping me understand some corners of Creo I don’t venture into often.
Cheers,
Airfix
Creo best practices are not universal. I have developed different practices for organizations based on things like work flows, team organization/structure, user competency in Creo etc. I always ask clients to document desired outcomes and deliverables and let us figure out options for how to realize the goals. I cannot overstate how many times I have been in organizations that have immature or no processes documented and/or followed but are trying to deploy enterprise wide standards for CAD, PLM or the like and wasting tremendous amounts of money. Define the goals then look for options on how to reach them.
In my model CS0 is not the default csys. Prt_csys_def is the default csys in the part. The orientation of the model is arbitrary and can be set your whatever your preference is using datums etc.
In general surfaces will regenerate faster than solid geometry. I have exploited this in the patterns for fast regen. Creo offers multiple ways to capture design intent, there is usually not a single "right" way to do it. I use surfacing in many cases that other Creo users would not. I would not associate more features with a more complex approach necessarily.
My intent was to build a baseplate generator model with a low range of 1x1 array expanding outward, so yes it would be a "master" in the context you ask about. You can use Pro/Program with this model to have a user enter the driving parameters if you wanted to. It is not the only way to generate the geometry in Creo and may not be the best in the context of workflow, team organization, etc.
In general I use UDFs from a library to modify models/designs, not start/create models. I am not saying it is wrong to do that but I have never even considered using a UDF as a start part. I could be convinced otherwise.
I am definitely not convinced that this system to organize things is efficient at all in many respects. It seems to be a justification for having a 3D printer as a hobbyist for entertainment. The juice is not worth the squeeze IMO in a professional setting. If gridfinity were best in class you would likely see it in the F1 teams and being used in aerospace/military settings, I have not seen it in use in these settings.
