Looking for someone to modify an existing MoI script in return for beer money (or whatever :)  1-20  21

Next
 From:  ed (EDDYF)
8370.1 
I'm looking for someone to modify an existing MoI script in return for beer money (or whatever :)

Ring Circle Creator is an existing MoI script designed to aid in modeling rings. Based on the finger size selected, it draws the proper ring inside diameter circle, which becomes the basis for modeling the ring.

The script for MoI ver 3 is here:

Use RingCircle2.js from:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4441.10

Use RingCircle2.htm from:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4441.11

I would like to have the script go a step further so it produces the 3D ring model, based on a selected ring width, and the selected ring profile.

The purpose of the script is to produce a personalized, custom set of 3 plastic ring sizers on a 3D printer. The script will be run by a person who is not familiar with 3D modeling, so it needs to take three inputs via a menu and do the rest automatically.


Script specifications:

User opens a pre-defined MoI 3DM template file which contains three ring profiles named A, B & C (The template file units must be millimeters to be compatible with the 3D printer settings)
User runs the Script.
From the script menu:
Select a US ring size: (sizes & corresponding diameters are already defined in the existing script .htm)
Select a ring width: (range is 2mm to 10mm in 0.5 mm steps)
Select one ring profile by name: A, B or C

Draw the circle corresponding to the diameter specified in the script's .htm file. (this function is contained in the existing script).
Draw a second circle with a diameter 0.2mm smaller than the original circle. (1/4 US size = 0.2mm change in diameter).
Draw a third circle with a diameter 0.2mm larger than the original circle. (1/4 US size = 0.2mm change in diameter).
Arrange the circles such that the centers are about 50mm from the Origin. If that is not possible they can be arranged in a straight line with their centers 50mm apart. The goal is to print everything near the center of the 3D printer bed.
Make a copy of the selected ring profile and scale it in Z only to equal the selected ring width.
Sweep the three circles using the copied profile.
The result is a solid ring representing the attributes selected in the menu, plus two rings that are 1/4 size larger & 1/4 size smaller.
If possible via the script, save-as the three rings as a STL file.

I've written js and html before, but I'm not at all familiar with MoI's structure. But I'm sure I could take over and refine the script if just the basic functionality was in place.

Ed Ferguson

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
8370.2 
The US ring sizes in the .htm file are in mm, and are the inside diameter.
Searching on Google brings up many variations in the mm reading for the various sizes,
so a few might be in error, for example size 13.5 varies from 22.6 and 22.75.

Will there be a compensation for shrinkage of the plastic material?
ABS shrinkage ~8% (?)
PLA shrinkage ~2% to 5% (?)

How are profiles determined?

- Brian

EDITED: 8 Apr by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
8370.3 In reply to 8370.2 
Brian -

All good points.

Ring size charts are not standardized as you noticed. I built my own table years ago by averaging several charts from reference books. There is now an ISO standard for ring sizes. I can edit the .htm file to match the ring size table I use. For now the constants used in the existing script are close enough for development.

The 3D prints will be made from PLA. Your idea for a shrinkage multiplier (scaling) to be applied to each of the 3 ring solids is a good one. As you know the results would be affected by the brand of filament and the print temperature, so I would have to make some test prints to fine tune the scaling factor. A 5% scaling constant in the script is a good place to start.

The three profiles would be drawn in advance and saved in a MoI 3DM which becomes the template for running the script. I assume the three profiles can be named (via Styles) in the template file for use by the script.

If possible, a nice final feature would be to find a simple way to identify each of the three rings as nominal size, 1/4 size smaller, and 1/4 side larger. I'm thinking each of the three profiles could be supplemented with two additional profiles, so I would have profile A1, A2, A3 and profile B1, B2, B3, and profile C1, C2, C3. I could modify the outside of the profiles so, for example, A1 produces one groove in the ring OD, A2 produces two grooves in the OD, and A3 produces 3 grooves in the OD.

Ed

EDITED: 8 Apr by EDDYF

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.4 In reply to 8370.3 
Hi Ed, can you post an example .3dm template file with the A, B, C profiles in it so that all the inputs are available to test with?

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
8370.5 In reply to 8370.4 
Sure Michael - see attached 3DM.

- Ed

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
8370.6 
There seem to be two versions of the RingCircle2 script, which caused me some confusion.

I made two rudimentary changes, shown in (deleted).
1. Changed the Frame so that the circle is visible in the Top View.
(The profiles then show up in the Front View.)

2. Added input field for Width, (without any code to use it.)

3. Moved US to the first choice.

I was thinking that each profile would have two points, ("Line") associated with it, on the inner side, so that Sweep would be
on the Exterior of the inner diameter. "Orient Line Line" could place the profile on the circle, using the Width to
locate the 2 placement points ("Line") which would accomplish Scaling as well as exterior placement.

This is a busy time of year, so I have not done much :-)

- Brian

EDITED: 11 Apr by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.7 In reply to 8370.5 
Hi Ed, thanks for posting the profile file. Another question, do you need the ring to definitely be created by sweep, or would a revolve of the profile work ok?

Also is the diameter always measured from the left most point of the profile? I mean would getting the bounding box around the profile and using the bounding box's minimum x value be he correct thing that defines the diameter?

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.8 In reply to 8370.5 
Hi Ed, re:

> Sure Michael - see attached 3DM.

I just took a look at it and I noticed there weren't any object names set in it, were you expecting the script to identify profiles A B and C just by their left to right arrangement as in that file or should they have names assigned to them?

Are profiles always to be specified as planar curves in the Front view, in the X/Z plane?

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
8370.9 In reply to 8370.8 
Michael & Brian - Thanks for attempting this script!

1. Sorry, I forgot to name the 3 profiles. They need names assigned - call them anything as long as they can be selected by the menu.

2. Yes - Profiles to be planar curves in the Front view, in the X/Z plane. That way the ring imports into the printer's slicer program in the correct orientation.

3. A ring solid created via Revolve is fine.

4. Using the standard ring diameters from the existing script, the left side of the profile should rest on the circle (rail). In other words, when the ring is printed, the inside diameter should measure the same as the circle diameter that is associated with the selected ring size in the .htm.

5. The ring profile must be scaled in Z only to match the Ring Width selected via the menu. X should remain constant as the ring shank remains a constant thickness, regardless of ring size.

6. As a final step, the ring solid should be scaled larger overall by 5% to compensate for shrinkage when it prints. A single scaling variable would be easier to match to a specific printer/ filament combination, rather than individually adjusting the ring size constants in the .htm.

- Ed
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
8370.10 
The leftmost point of the left side of a profile will correspond to the inner surface of the ring.

After doing a few tests:
Using Bounding Box looks very useful.
Bounding Box center, adjusted by subtracting BB xLength/2 from x coordinate, gives Orient Line Line base line start point.
BB center, adjusted by adding BB zLength/ to z coordinate, gives Orient Line Line base line end point.
The start point of the ring circle, on the + x axis, will be the Orient Line Line target start point.
The start point of the ring circle, with ringWidth/2 added to the z coordinate, will be the Orient Line Line target end point.
Orient to be in the Stretch mode.
(The above math is off the cuff, and might not be perfect.)

Then do revolve.

A concave inner profile seems doubtful ...

The coding seems relatively easy, (which would mean many hours for myself :-)
Not sure about how to do .2mm width increments, except with slider...

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.11 In reply to 8370.1 
Hi Ed, one other question - for the STL export part do you want the "Mesh options" dialog with meshing controls to pop up or would you rather it not show and instead some fixed meshing parameters used instead and if so what parameters.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  ed (EDDYF)
8370.12 In reply to 8370.11 
Michael -

I'd like to use fixed meshing options and avoid the pop-up.

Because these are small models I use:

More Polygons slider = Maximum

Display: Shaded + edges

Angle = 3

Divide larger than: 1 ALL

Avoid smaller than: Blank
Aspect ratio limit: blank

- Ed
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.13 In reply to 8370.12 
Hi Ed, please try the attached MakeRing plugin (instructions for installing plug-ins here).

I hope it does what you wanted! If the person using it will not know how to zoom and pan around it may be a good idea to save the template file with the profiles in it with the views set up so that they can easily see the generated rings without needing to zoom around.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
8370.14 In reply to 8370.13 
Cool, elegant and professional!

Note, the 3 profiles need to be named A, B, and C, in the preloaded .3dm file.

- Brian

EDITED: 11 Apr by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8370.15 
And what is the last ring.3dm or maybe 3 curves (?) to draw and select for run this script ?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.16 In reply to 8370.15 
Hi Pilou, to run the script get the 3DM file from here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8370.5 and also set object names on each profile, first one named A, second one named B and third one named C.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8370.17 In reply to 8370.16 
Ok !
But why solids are losted and just saved as STL ?
It's not possible to keep them on the screen as normal 3dm volumes for make any functions?
It's very frustrating! :)

here C : I have tested with any forms of profiles :)
Error messages when profils are not vertical!

EDITED: 11 Apr by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8370.18 In reply to 8370.17 
Hi Pilou,

> But why solids are losted and just saved as STL ?

Because that's what was requested for the plug-in to do, to just generate an STL file. It is to help someone who only wants to generate an STL file and not do any other kinds of modeling.

But if you want it's easy to modify it to keep the objects and not generate an STL file automatically. To do that, edit the MakeRing.js file in a text editor. Near the end of the file are 2 lines that have this:

code:
	SaveSTLFile();
	
	RemoveObjects();


If you delete or comment out these 2 lines then the objects will be kept. Commenting out means to put // at the front of the line like this:

code:
	//SaveSTLFile();
	
	//RemoveObjects();



> here C : I have tested with any forms of profiles :)
> Error messages when profils are not vertical!

Ed specified earlier in this thread that the profiles were to be planar in the Front view, see here: http://moi3d.com/forum/index.php?webtag=MOI&msg=8370.9

So the plug-in is only designed to work with those kinds of profiles, it's normal to get an error if your profiles do not match that requirement.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8370.19 In reply to 8370.18 
Perfect!
+ Flow function :)
and render with the Free SimLab Composer Light! (maxi 1920 * 1080 )
http://www.simlab-soft.com/3d-products/simlab-composer-freelicensee.php#lite

EDITED: 11 Apr by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8370.20 

EDITED: 11 Apr by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21