HP-Branded 3D Printers coming
-
Allen, a Ruby 'spec' is exactly what we need for the resident ruby masters, I know there is interest in 3D printing amongst them, so a clear 'spec' could lead to a wish-list request.
As you say just using a style (e.g.CadSpan style) doesn't do it, I often make a cube and instigate a mock BoolTools operation with the part I'm preparing, this tells me if I've got two solids at least, however it doesn't highlight the problems like VolumeCalculator will.As far as I'm aware there isn't a bomb-proof 3D design>3D print solution available for any platform at any price, I have friends who are buying a Zcorp machine and their having to have Catia 'optimised' for that, so even at the big buck end it's not fully resolved. Their all WRC technicians and can't believe that F1 would even contemplate 'track-side' 3D printed parts for next season, as reported in the press late last year)
just a thought, (that may just highlight my ignorance) can a UV map (effectively a 'shrinkwrap') be repurposed (with surface normals,etc...) as an export model?
Marian, thanks for the link, the PDF re: drawing prep is better written then a lot out there and well worth a look for anyone dipping in for the first time. Although it's basic at least they show SU examples. I'll email the company and see if they can contribute to a ruby 'spec'.
Modelhead it's amasing how much 'hidden even deeper' than 'hidden' geometry that turns up when you really need to get rid of it.
I've been using TT's 'EraseCoplanar' a lot lately and find it better than a couple of older ones I've used in the past, and the .stl converter you can't find is probably called skp_to_dxf.rb (stl is an option), I keep going back to this one for some reason. I'll attach it.
john
skp_to_dxf.rb -
I have a proto-watertightness_tester script growing in my head...
Please correct me if I'm wrong on any aspect or miss anything out...
Q: Will this mesh be a group ? It would make the testing easier to limit the entities set whilst ensuring all entities are tested...
The object's mesh must be only one 'surface' without 'holes' of any sort.
The mesh must be 'manifold' - i.e. it wraps round on itself to form a complete skin without perforations.
All edges in the mesh must have two faces -edge.faces.length==2
- no more, no less.
The mesh cannot have any loose 'flaps' - i.e. single faces,not edge.faces.length==1
The object cannot have any edges with no faces -not edge.faces.length==0
The object cannot contain internal faces - this can be found byedge.faces.length > 2
- but the finding of which face is which gets a bit convoluted...
We copy the group and we edit that as needed...
We look at the group's entities and take the first face we find and get itsall_connected
- if this list isn't equal in length to the group's entities list then we erase the difference [keeping a record of its details for use later] and continue to look at what's left...
We look at all remaining edges and if we get a fail and we erase this 'incorrect' edge [we make a running list of these with their vertex-points and faces as appropriate, for use later] - except those edges sharing multiple faces which are dealt with differently - see below...
Next we test progressive horizontal slices through the manifold - IF anyedge.faces.length > 2
.
We can start the first slice at the max end position found for any edges that failed - this will speed up the testing.
If these slices have any sub-dividing edges -edges.faces !=1
- then they're made by slicing through an inner face. Therefore we take the center-point on any sub-dividing edge and test for that on a face in the manifold faces. If it's a hit we erase that face [we make a running list of the face's edges, vertex-points and face as appropriate, for use later].
We continue with these 'slice' tests [c/c ? as the max height of the 3D-print is ~400mm [?] then we take the slices at the minimum part size of 0.5mm or 800 number proportioned to the groups real height BUT as we jump don when a face goes this should be far fewer] - we repeat the slicing until there are no internal faces left - to avoid excessive slicing we'll re-test the groups edges after each tidy up and only carry on slicing IFedge.faces.length>2
- i.e. there are still some internal faces AND jump down to that edge...
Next we have a 'dialog' Y/N - to erase all non-coplanar edges to simplify the manifold mesh; unless it has to be triangulated in which case we'll erase all non-coplanar then [re]triangulate any faces that aren't ?
If there were no changes made then the the copied group is erased.
However, if there were changes then the copied group with it's deletions/changes is move to the side of the original group and another group is made to the side of that containing a duplicate of the changed edges/faces for your information [these might be colored red?]
A report popup tells you what has been changed...This wouldn't be toooo difficult to code - any takers or anything else to consider ?
Haven't written a line of code yet - just the synopsis. -
TIG,
definitely a taker here, or is that defiantly...I'll go though your outline after dinner, first thoughts... fantastic
couple of things, bed dimensions are in the API PDF I posted above, there are others, but that covers most.
keep in mind however, I for one use meter's at 4 decimal places with units turned off and treat it as mm until final export, even then I'll scale up by 10 or 20 for detailed bits when editing.
some of the printers have build heights of .001mm for wax
are you highlight or repair, I think highlight all errors in one step, then let me fix them is what I'm after, but I'm not sure... may auto healing...
john
-
@tig said:
I have a proto-watertightness_tester script growing in my head...
Please correct me if I'm wrong on any aspect or miss anything out...
Q: Will this mesh be a group ? It would make the testing easier to limit the entities set whilst ensuring all entities are tested...##Grouping is easy, and needed by most the advanced rubies anyway... a 'not group/component' prompt wouldn't hurt. on script missing that I think "what's wrong now"
The object's mesh must be only one 'surface' without 'holes' of any sort.
The mesh must be 'manifold' - i.e. it wraps round on itself to form a complete skin without perforations.##I actually think it's 2 manifold that's required i.e. inner and outer face, because checking and orientating normals is all part of the prep,,, (I'll check my reference)
All edges in the mesh must have two faces -
edge.faces.length==2
- no more, no less.
The mesh cannot have any loose 'flaps' - i.e. single faces,not edge.faces.length==1
The object cannot have any edges with no faces -not edge.faces.length==0
The object cannot contain internal faces - this can be found byedge.faces.length > 2
- but the finding of which face is which gets a bit convoluted..33.
##no internal faces, but I pretty sure back faces are neededWe copy the group and we edit that as needed...
We look at the group's entities and take the first face we find##actually selecting a known GOOD face as a kick off is not a problem (Fredo's jointPP, etc...) and get itsall_connected
- if this list isn't equal in length to the group's entities list then we erase the difference [keeping a record of its details for use later] and continue to look at what's left...
We look at all remaining edges and if we get a fail and we eraseor just highlight, with an except changes option, maybe this 'incorrect' edge [we make a running list of these with their vertex-points and faces as appropriate, for use later] - except those edges sharing multiple faces which are dealt with differently - see below...
Next we test progressive horizontal slices through the manifold - IF anyedge.faces.length > 2
.
We can start the first slice at the max end position found for any edges that failed - this will speed up the testing.
If these slices have any sub-dividing edges -edges.faces !=1
- then they're made by slicing through an inner face. Therefore we take the center-point on any sub-dividing edge and test for that on a face in the manifold faces. If it's a hit we erase that face [we make a running list of the face's edges, vertex-points and face as appropriate, for use later].
We continue with these 'slice' tests [c/c ? as the max height of the 3D-print is ~400mm [?] then we take the slices at the minimum part size of 0.5mm or 800 number proportioned to the groups real height BUT as we jump don when a face goes this should be far fewer] - we repeat the slicing until there are no internal faces left - to avoid excessive slicing we'll re-test the groups edges after each tidy up and only carry on slicing IFedge.faces.length>2
- i.e. there are still some internal faces AND jump down to that edge...I'm not sure if a slice test is required at all, unless you incorporate a volume calc, If I was doing it manually and I knew the all external edges had a maximum of two connected faces, that implies any internal geometry is free floating, so I would do a select all then de-select the external shell, group any remaining and look at it separately, then attach or deleteNext we have a 'dialog' Y/N - to erase all non-coplanar edges to simplify the manifold mesh; unless it has to be triangulated in which case we'll erase all non-coplanar then [re]triangulate any faces that aren't ?the export file needs to be triangulated, either as a skp or on export by SU, personally I'd rather work with the triangles and move points about [That reminds, is there a PointsSlide Ruby??]
%(#000000)[If there were no changes made then the the copied group is erased.
However, if there were changes then the copied group with it's deletions/changes is move to the side of the original group and another group is made to the side of that containing a duplicate of the changed edges/faces for your information [these might be colored red?]]
A report popup tells you what has been changed...I Like your Alice Blue on another Layer myselfThis wouldn't be toooo difficult to code - any takers or anything else to consider ?
Haven't written a line of code yet - just the synopsis. 8-):ugeek:
-
Finally I the found a page I knew must exist,
whose ready to buy a desktop 3D metal printer? http://www.exone.com/eng/technology/x1-prometal/equipment_prometal.html
a bit of background how it works infohttp://www.bathsheba.com/sculpt/process/
and some mesh repair headers for a wishlist MeshRepair script (from a Mac only scientific mesh repairer/viewer)
’topeScope Mesh repair:
◦ Uniquify vertices
◦ Flip all faces
◦ Orient faces consistently
◦ Vertex cluster analysis
◦ Remove degenerate or duplicate faces**#Mac users:**this actually a very good free viewer I forgot I had, the pay for version could be handy if you do a lot of file conversion involving point clouds and DXF
’topeScope Base features:
• Read stl, dxf gts, nff, q3o, obj, off, ply, tri, uo
• Mesh coloring
• Copy image to clipboard
• Print image
'topeScope Plus additions:
Write stl,dxf, obj, ply, uo
Mesh information
Mesh morphing
Merge models
http://www.ripplon.com/topeScope/index.html -
Here's my first go at a 'manifold' fixer... http://forums.sketchucation.com/viewtopic.php?p=218691#p218691
-
I see this tantalizing post from January 2010:
@tig said:
Here's my first go at a 'manifold' fixer... http://forums.sketchucation.com/viewtopic.php?p=218691#p218691
After that, silence... TIG, did you pursue this to a working plugin? Are you planning to do so?
FWIW, my naive thought is that it would be great to have a collection of "broken" models to be used in testing such a tool. Would it be hard to assemble a "starter set" of these?
-
A 'Manifold' tool and other related tools are now built-into version 8 [there are more tools in 8-Pro] and v8-M1 is [probably] in the beta pipeline now... addressing a few issues: so it is now much easier/quicker to 'Manifold' a form without the clunkiness of the Ruby API...
-
I hope if HP is really doing this that their printer drivers are written by someone other than the printer drivers for the printer we have.
-
Dave, the 3D printers HP is selling are made by Stratasys right here in the Twin Cities
Stratasys is doing some seriously cool stuff now...here they printed and entire car!
http://www.stratasys.com/investors.aspx?irp=news&nyo=0 -
Cool! After all the problems I've had with HP printer drivers, I wouldn't recommend an HP product. I'm glad to see this isn't really an HP product. Pretty soon we'll be able to inexpensively print a new suit for that once a year dinner we have to go to where they make us dress up and we'll just print a Lambo to drive to the event.
-
A Lambo? Why not? ...these guys want to print spacecraft
Advertisement