The script for chain
 1-6  7-26  27-46  47-66  67-80

Previous
Next
 From:  krass
6087.7 In reply to 6087.6 
Andrew, my dear colleague, I give up!
You no longer have links to pictures - I KNOW what are the kinds of chains)))
Let's just listen to other lovers of modeling and scripting, right? ;))
  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:  Andrei Samardac
6087.8 In reply to 6087.7 
krass,
Yep man :)

-----------------------------------------
Portfolio: www.samardac.tumblr.com
  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
6087.9 In reply to 6087.1 
A previous chain link:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4416.3
MoI3 has the Twist command.
I recollect seeing a chain calculation program in some other language.
-Brian

EDITED: 3 Aug 2013 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:  bemfarmer
6087.10 In reply to 6087.1 
A script looks relatively easy to do, but doing a chain manually is also easy.
Flow works well to bend a linear chain array to a catenary curve.
If the chain profile is square-ish, not sure how it would come out.

EDITED: 7 Jul 2014 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:  krass
6087.11 In reply to 6087.10 
To: bemfarmer. You was superb and well-made chain! Respect!
If I was a programmer, you probably would. But alas, I am a designer and can only draw a picture of their thoughts ;)))
  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
6087.12 In reply to 6087.1 
Hi krass, many of the steps that you list are pretty well covered by existing tools.

For example to make the width, height and corner radius parts you can just use the already existing Draw curve > Rectangle command, it allows you to enter width and height there and if you enable the "Rounded corners" checkbox it will allow you to specify corner radius in that command as well, that should cover your steps #2, 3, and 4 right there.

For the thickness of the chain link, just draw a circle of your desired radius off to the side, make sure it is outside of the bounding box around the rounded rectangle. Then you can select the circle and run Construct > Sweep and select the rounded rectangle as the rail path and you will then have your link.

That's already so quick as it is with existing tools that you would only be saving a couple of seconds by having a specialized plug-in script to do it... Are you making a whole lot of chains all day long for some special purpose where saving a couple of seconds might be helpful? Because if you're only doing it here and there even though it would be a fun thing to have it would end up taking quite a bit longer to build and test the script than the amount of time that you would be saving if it's only for occasional use.

- 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
6087.13 In reply to 6087.12 
Also if you want to streamline the steps you can use the Pipe plug-in to avoid having to draw a circle separately, you can get the Pipe plug-in here:
http://kyticka.webzdarma.cz/3d/moi/#Pipe

- 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:  krass
6087.14 In reply to 6087.12 
Michael, thanks for such a comprehensive and detailed answer, I'm touched!
Of course I don'T "do chains all day" :))
And, nevertheless, I do not think that you here present, script writers, all the day engaged in" gears or thread or the creation of nuts or extruded tubes.

Of course all that I described above, you can do once and forget about it.
Also, as the gear, nut, bolt, spring, hose or something else.

Then why there are scripts? ;))
Or actions in Photoshop? Or macros in other programs? Why all this?
All, all you can do without them, right? ))

PS. This is just my private opinion is not claiming anything more))))
  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
6087.15 In reply to 6087.14 
Hi krass, it would definitely be cool to have a script for it, unfortunately it's more time consuming than what you might think to create those scripts so right now I myself only really have time to do them when they'll help save someone a bunch of time.

In the future at some point I'll probably be able to spend some time just making scripts for fun...

In the meantime if you want to undertake learning how to create those kinds of scripts yourself, I can try to help you along if you get stuck!

If some script like this would save you some significant amount of time beyond just a convenience or "cool" factor, then make sure to let me know that is the reason why you need the script...

- 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:  krass
6087.16 In reply to 6087.15 
Michael, thank you very much, but - I am sure - you and I have enough worries without that and still teach me scripts!
Especially because there is quite keen enthusiasts who may be try to implement my idea.

And I learn skrtptam - I'm afraid nothing will happen.
Not my way, alas.
Very badly in school, so with mathematics and programming is not friends, alas;)) (joke)

And forgive my terrible English, it's Google translator;))
  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
6087.17 
- krass
Here is a quick htm file for a chain_link_maker.
You could process the numbers and feed them into a rounded rectangle factory...

There are several ways to accomplish tasks in MoI. Pipe, array, unwrapcurve, and flow would be very helpful, so you would have
to implement several factories.

I think that I would rather spend my time on other projects. :-)

- Brian
Edit: deleted obsolete file

EDITED: 11 Aug 2013 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:  krass
6087.18 In reply to 6087.17 
To bemfarmer:
Thank you so much for your help, I will understand!
And what to do with the file to make it work?
Copy this html-file in the /commands and assign a "hot key"? Or something else?
  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
6087.19 In reply to 6087.18 
- Krass
You would need to write several dozen lines of javascript, to apply the numbers to the appropriate factories.
In the MoiWiki, under scripting, the MoI Javascript API documentation by David Morrill describes the factory inputs.
Opening various existing MoI scripts from the MoI command folder and the forum, in a word processor, studying them,
and modifying them, is one approach. The ToroidalHelix script provides a "pattern."
Since the several rectangle scripts, such as RectCenter and GetRectRoundCorner are designed for interactive use, and
so have extra code, you would need to tease out the portions needed to set up the rectangle factory numbers.
This would create the centerline of the link. Then repeat the process with extracts from the Pipe script, then the array script,
and the Flow script, etc.

Using unwrapcurve on your path curve may provide its length, in order to calculate how many links are needed +/-.

Occasionally an interactive script does not have the "handles" needed to work in a non-interactive script...
I am an amateur programmer, so anything I say may be incorrect. :-)
- 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:  krass
6087.20 In reply to 6087.19 
Brian, thank You all so thoroughly explained.
There is one problem - I'm NOT a programmer )) And nothing will be able to write in either Java code, not with any other. I can only draw, because I am an artist, designer )))
Can I copy and paste it into the desired place in the file script - and then use it in their work. This I can. But write scripts does not work ))
Would be familiar with programming - of course I would be all for a long time had composed. ))
But thanks for the support and advice! ))
  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
6087.21 In reply to 6087.20 
.

EDITED: 11 Aug 2013 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:  bemfarmer
6087.22 
Request for script help.

Here is my latest effort to script a chain.
It is unsuccessful so far.
The sweep goes into endless calculation, trying to sweep a scripted circle over the scripted rounded rectangle.
Based upon the Pipe2 script, it should work, but it uses a scripted rail, not an interactively selected rail.
Is it a problem with the rail? Is the rail a list or an object, with one or multiple parts?

Studied quite a bit Michael's and Martin's posts, asynchronous sweep, .calculate() versus .getCreatedObjects(),
and did a lot of permutations, but the sweep does not work. (Many tries ago I did have a sweep formed when changing the profile radius, but
that version is long gone...)

- Brian

Edit, deleted obsolete chain maker script draft

EDITED: 7 Jul 2014 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
6087.23 In reply to 6087.22 
Hi Brian,

> Is it a problem with the rail? Is the rail a list or an object, with one or multiple parts?

The rail should be an object list, it can be either one rail curve for a one-rail sweep, a list of 2 curves for a 2 rail sweep, or 3 or more curves to do a one-rail sweep on each of them.

The problem is that sweep is an asynchronous factory and it requires an object ID to be set for transferring geometry over into the command processor (async factories are actually generated inside of the moi_commandprocessor.exe process instead of inside of moi.exe). Because your rail has been created through script and never added to the geometry database, it doesn't have an ID yet and so doesn't work with sweep. If you add it to the geometry database it will then work. You'll need to do that for both the circle and the rail as well. (EDIT: see added info below, only add the circle).

So something like call:

moi.geometryDatabase.addObjects( rail ); // addObjects takes an object list
moi.geometryDatabase.addObject( circle );

Before doing the sweep.


EDIT:

Actually it's not the rail that wasn't in there, it was the circle that wasn't in the geometry database. So don't try to add in the rails again or else you'll get an assert.


The rails were already in the geometry database because they were created by .update() and then .getCreatedObjects() - that sequence adds stuff to the geometry database. The circle was created just by .calculate() which just generates an object and does not add it into the geometry database automatically.

So get the circle into the geometry database before doing the sweep and it should then work for you.


I'll see if I can eliminate this requirement for async factories to have things inserted into the geometry database before they can be remoted.


- 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:  bemfarmer
6087.24 In reply to 6087.23 
Thank you Michael. I must have missed something in the Pipe2 script.

EDITED: 10 Aug 2013 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:  bemfarmer
6087.25 In reply to 6087.24 
Added circle to the geometry Database with "moi.geometryDatabase.addObject( circle );" worked! :-)

Still do not see the line in Pipe2.
Maybe it is the order of code, re function WrapWithObjectList( obj ) ?

The purpose of this script is mostly for script education, not chain making. :-)

Now to try an array and flow factory. The recent forum topic on spaced copy may be timely?

- 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:  krass
6087.26 
Wow, I have a deep subject, raised ))
I Hope that will be born something brilliant!
Watch for development, with bated breath ;))
  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-6  7-26  27-46  47-66  67-80