guess meaning of sx and jn

1 reply [Last post]
wangyang
Offline
Joined: 01/12/2015

Hi,
Recently I've been dealing with some unconventional objects and I felt confusing about the parameter "-sx".
Here is a long pipe, bounding box size 1:1:200.
Using parameter "-sx 1", a highly simplified object is generated. Like this: Broken Pipe
I read the documentation, it says "from any viewing direction", but does not mention how to determine the size of the model in the viewport. I guess it must be something like a boundary, like a 2D bounding box of the 2D bounding circle of the projection area of the 3D bounding box...pic here:Long Pipe Pic
Then a scaled parameter "-sx 0.0542" achieved an expected result: Nice Pipe
There are many other long pipes to be dealt with so I wonder is this guess reasonable, and if it is not, how long is 1px(-sx 1, viewport 480*480) on a model?

Another question: Does the parameter "-jn 90" joins normals of adjacent faces, working like this? jn Pic

JackJack
JackJack's picture
Offline
Joined: 04/18/2009

Hi Wangyang,

If the bounding box of your model is extremely non-uniform, the pixel based tolerance can produce unexpected results like for the pipe. The width of the pipe is small relative to its length. Using "-sx" option, the width of the pipe is considered a small feature relative to the pipe length. The pixel based tolerance is a convenient type of tolerance simplification for models with a uniform bounding box like a sphere.

For models like the pipe we recommend using "-st tolerance_in_metric_units" parameter. If your model units is, say, millimeters, and the width of your pipe, say, 100mm. You can simplify it with "-st 2" for example, with 2mm error tolerance.

Also, the pixel based tolerance actually computes metric tolerance and the simplification is built using metric tolerance. When you simplify the model, you can see its bounding box and extent. For the model in your previous post it was:
Bounding box size: [699, 1.74, 0.776], Extent: [699.01]
Using the pixel tolerance, the metric tolerance is computed as:
extent * pixel_tolerance / viewport_size
So, for your model the metric tolerance is computed as:
699.01 * 1 / 480 = 1.45625
And thus, "-sx 1" will be equivalent to "-st 1.45625".

Sorry, I was not able to open the images you attached.
For the joining normals, please, see the user guide here:
https://www.atangeo.com/guide/boundaries