Scripting the Trim command
 1-5  6-25  26-32

Previous
Next
 From:  bemfarmer
8786.6 
The script TrimCurveTEST chops up one curve or one edge into multiple equal length segments. The curves can be open or closed.

The script is not completely polished. Names are left as remnants. There is some difference in naming standalone curves, versus edges.
Selecting edges will first need a click on the associated surface.
There is no option to remove FINAL points. Without seeing the points, the chopped up curve/edge segments cannot be seen, unless selected.

Current help, and past help, from Michael was used.

The script is in the TESTING phase, and seems to work well, in both MoI3 and MoI4Dec2018beta.

I needed the code of the script for my Oblique Elliptical or Circular cone Unwrap (Net) project.

Included is a test .3dm of some objects, with open and closed curves and edges.
Right click can reactivate the script.

- Brian

One big question is whether or not Trimmed segments are saved, or recoverable, in ORDER.
If the Order is "random," using the segments will be a problem.

Updated version 07 located in post #13.

EDITED: 16 Jan 2018 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
8786.7 In reply to 8786.6 
Hi Brian, that's great!

re:
> One big question is whether or not Trimmed segments are saved, or recoverable, in ORDER.
> If the Order is "random," using the segments will be a problem.

For a curve trim the trimmed pieces should be generated in order from the start of the curve to the end of the curve.

- 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
8786.8 In reply to 8786.7 
Thank you Michael!
- 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:  Cemortan_Tudor
8786.9 
so easy to read with comments :)
  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:  yakas
8786.10 
I was searching for a way to add a shortcut for just "add trim point" and this result came back, but when I click on it it takes me to another post:

MoI discussion forum > Add Trim Point | Hotkey
Hello everyone. Hope all is well and that your CAD journey is rewarding. Anyone knows how one could make a hotkey for the Trim -> Add Trim Point command? Bests, -J. EDITED: 18 Oct 14:41 by BERUBE. Image Attachments: Size: 475.4 KB, Downloaded: 14 times, Dimensions: 1427x748px ...
moi3d.com/forum/messages.php?webtag=MOI


Anyway, I can't find the above post so is it possible to have a hotkey just jump right into adding trim points on a selected curve?

Thanks
  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
8786.11 In reply to 8786.10 
Hi yakas,

re:
> Anyway, I can't find the above post so is it possible to have a hotkey just jump
> right into adding trim points on a selected curve?

It's possible in the v4 beta - there's a new mechanism in v4 for automatically activating UI controls within a command. For "Add trim points" put this on a shortcut key:

Trim addtrimpoints

That will automatically push the "Add trim points" button when it shows up.

Some other ways to control the Trim command are:

Trim addtrimpoints removekeepmode=keep

Trim addtrimpoints removekeepmode=remove

Trim isocurve isodir=u

Trim isocurve isodir=v

- 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
8786.12 
A bit of "polishing" of the TrimCurve script is working out, removing segment names upon Done button pushed, (code from BlendCap), but work is not done yet.
Have not yet been able to remove names when delete button is pressed.

For some unknown reason, Naming is working better now.

It is nice to Comment out the Alert window in the code.

When using the script, it is helpful to (click) activate the Objects Tab in MoI. Then the segments can be selected, while still in the script...

- 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:  bemfarmer
8786.13 In reply to 8786.12 
Version 07, polished up quite a bit.

Handling of Standalone Curves is sometimes different that for Edges.

Object Names seem to be a bit persistent. They come back with Undo History.

- Brian

Edit 1/18/2018

Here is the re-posted script.
I deleted a few comments. The script is nearly the same as version07.

EDITED: 18 Jan 2018 by BEMFARMER

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
8786.14 In reply to 8786.13 
Something peculiar is going on when copying different versions of a script to the MoI command directory, and using customUI.

A functional script named _TrimCurve07.js, and .htm is in MoI's command directory.

A copy of the script named "_TrimCurve07 - Copy" is modified a little bit, with a missing "curve" variable, and copied to the MoI command directory.
The - Copy (seems) to run in MoI

If the defective "_TrimCurve07 - Copy" is renamed to "_TrimCurve08" it does not work.

So the lesson is do not use " - Copy" versions when testing.

This happened a couple of months ago... when this "crazy" behavior was first encountered.
This example is on a different computer...

- Brian

(See next post.)

EDITED: 18 Jan 2018 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
8786.15 In reply to 8786.14 
Okay, here is a very simple example of a version of the problem with Somescript - Copy.js, which is created in Windows7, 3rd option when copy pasting a script into MoI's command folder, using the _Angle.js script.

Copy _Angle.js from the command folder, to the command folder, using Windows7 3rd paste option, which yields _Angle - Copy.js.
Do not copy _Angle.htm.

Copy _Angle.js again, and rename copy to _AngleSecondCopy.js,
and do not copy _Angle.htm to _AngleSecondCopy.htm.

_Angle - Copy (seems) to run fine.
_AngleSecondCopy will not run correctly.

- Brian

Using TAB and MoI's command entry window line, has the same behavior.

(Revised) conclusion, MoI does not recognize _Angle - Copy.js. Instead MoI just runs _Angle.js. (???)

(A reminder to myself, not to jump to conclusions, there could be another explanation:-)

EDITED: 18 Jan 2018 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
8786.16 In reply to 8786.15 
Hi Brian - you can't have spaces in command names. That's because of being able to have command line parameters sent as well, which are separated by a space from the command name.

So for example if you set up a shortcut key with: SaveAs c:\temp\test.obj , it won't try to run a command script of "SaveAs c:\temp\test.obj.js" , it runs SaveAs.js and the c:\temp\test.obj after it is a command line parameter to the SaveAs command.

Similarly if you try to run "Somescript - Copy" it's going to look for Somescript.js and the "- Copy" will be a command line parameter, not part of the command name.

- 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
8786.17 In reply to 8786.16 
Michael, thank you very much for the explanation.

When testing scripts, so as not to overwrite a version, I sometimes used the 3rd option on the copy/paste, which has the not-allowed spaces.
I'll stop doing that :-)

I wonder if there is some version control software that uses notepad++?

- Brian

Google of "version control with notepad++ is getting some hits. I'll do some more reading...
  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
8786.18 
I somehow managed to create an open curve which has strange behavior.
Running _TrimCurve on it with a setting of 8 segments, results in 7 segments.
One of the 7 segments is of double length. It failed to divide.
Multiples of 8, such as 16, 24, and 32 also fail to divide all of the segments. Approximately 1 or 3 segments are lacking.

This strange curve, as an open cone, came up while testing _ObliqueConeUnwrap script, which works for a right circular cone, but not for
an oblique cone, (yet). :-) The shape of the Net is not quite right...

- Brian
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:  Michael Gibson
8786.19 In reply to 8786.18 
Hi Brian,

re:
> I somehow managed to create an open curve which has strange behavior.

Looks like this is a tolerance related bug in the Trim command, on this particular curve it's ending up using too tight of a tolerance which makes it think that point was not on the curve.

I've got it tuned up for the next v4 beta so it should work ok then. Thanks for posting the file!

- 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
8786.20 In reply to 8786.19 
Hi Michael,

Thank you.

Is it possible to fix in MoI3?
Or is the "tolerance bug" in the C++ Trim factory?

MoI4beta seems to be working very well overall, so one of these days I'll move over to version 4!

- Brian

With _TrimCurve test script, on higher powers of 2, or 8, such as 512, 1024, and even 512+1024, the segment count is 3 short.
In either MoI3 or MoI4Dec2017beta. At these "high" point counts, MoI3 has a several second lag in Done completion,
MoI4Beta is very fast.

Testing with stock Trim command in MoI3 or MoI4DecBeta, show the "bug," for this particular curve. Other open curves work just fine.

Scaling the curve, 2X, also shows the "bug," But a new arc "on top of it," does not show the bug.

EDITED: 23 Jan 2018 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
8786.21 In reply to 8786.20 
Two last tests:

Using 64 points, _TrimCurve yields 61 segments. (3 are of double length, unsplit)

For standalone open curve, if the 61 segments are then Joined, and the _TrimCurve repeated, 64 segments result, the correct number.
(For an open edge, using Merge on the 61 segments, and repeating _TrimCurve with 64, results in 64 segments.)

Second tests, with stock Trim command, with start point added, yielded 1023 points versus 1024, one less than correct number of segments.
I'll try adding start point to _TrimCurve test script...

- Brian

EDITED: 23 Jan 2018 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
8786.22 In reply to 8786.21 
For standalone curves, I'm going to put a scripted "Join" and re-Trim in the _TrimCurve test script, as a "workaround" for MoI3.
Likewise for script in progress _ObliqueConeUnwrap.

For edge curves, I'm going to attempt to put in a scripted "Merge".

Adding startpoint to the already arrayed points seems to do no harm, in case of open standalone curves or open edge curves,
and so will be added for consistency with closed curves.

- 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
8786.23 In reply to 8786.20 
Hi Brian,

re:
> Is it possible to fix in MoI3?
> Or is the "tolerance bug" in the C++ Trim factory?

Yes it's in the Trim factory. Right now it doesn't seem likely to get fixed in v3, all my effort is going into v4.

- 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
8786.24 In reply to 8786.23 
cool :-)

- 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:  yakas
8786.25 In reply to 8786.11 
Great, thank you.
  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-5  6-25  26-32