Home
Reply
ssv
Contributor
ssv
Posts: 9

Understanding laws in sweeping

[ Edited ]

Hello all!

 

I appreciate a lot this forum, and responsive guys who find some time to dig into my troubles. Thanks, really!

 

Today I've faced new problem with understanding of how sweeping operation is recorded into SAT-files. Here is the block I was looking through:

 

===================

spline-surface  $-1 -1 $-1 forward { sweepsur angled
    straight 10 0 1 1 0 0 I I
    intcurve forward { ref 2 } I I
    angled
    0 1 0
    1 0 0
    -0.7071067811865476 0.7071067811865476 0
    -0.5773502691896258 -0.5773502691896258 0.5773502691896258
    0.4082482904638631 0.4082482904638631 0.8164965809277262
    0 20.79862447107529
    0 0
   
    @657 DOMAIN(VEC(((SIN(X)+COS(X)*(1+X))^2+(COS(X)+-SIN(X)*(1+X))^2)^-0.5*-(SIN(X)+COS(X)*(1+X)),DOT(VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))),VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))))^-0.5*(1*(COS(X)+-SIN(X)*(1+X))-0*2),DOT(VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))),VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))))^-0.5*(0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X)))),0,20.79862447107529)
    0
   
    @1 0
    0
   
    @10 VEC(1,1,1)
    0 none F -9 F 0 F 0 F 20.79862447107529 OPEN OPEN NON_SINGULAR NON_SINGULAR
    0
    0
    0
    0
    0
    0
     } F -9 F 0 F 0 F 20.01000000000003 #

===================

 

I've also attached a test file demostrating different sweep surfaces. Actually, I'm investigating body #14, and the block posted above belongs to the face #242. What I want to know is some basic things about sweeping parameters which are recorded in ACIS save files. Thus, it is clear that we have one profile curve and one path curve, and profile is being swept along the path. The things get more complex for me when we are talking about sweep laws.

 

The matter is that I do not really understand the meaning of the DOMAIN entity referenced in the mentioned block. As I can guess, it specifies some mathematical law identifying how the profile is swept along the path. It has the following format:

 

DOMAIN ( VEC(... some functional components ...), PARAM0, PARAM1 );

 

So, could you please help me with the following questions?

 

1. Do PARAM0 and PARAM1 correspond to the parametric range along the path curve?

 

2. For each param value between PARAM0 and PARAM1, we need to calculate the corresponding value of VEC(...) function, specified in DOMAIN and get 3D point so. What this 3D point is then used for? Is it sum up with each point of the profile curve to obtain the resulting surface?

 

Thanks in advance for your help.

Regular Contributor
Vi2
Posts: 55

Re: Understanding draft laws in sweeping

[ Edited ]

Your

 

@657 DOMAIN(VEC(((SIN(X)+COS(X)*(1+X))^2+(COS(X)+-SIN(X)*(1+X))^2)^-0.5*-(SIN(X)+COS(X)*(1+X)),DOT(VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))),VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))))^-0.5*(1*(COS(X)+-SIN(X)*(1+X))-0*2),DOT(VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))),VEC(0*2-1*(SIN(X)+COS(X)*(1+X)),1*(COS(X)+-SIN(X)*(1+X))-0*2,0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X))))^-0.5*(0*(SIN(X)+COS(X)*(1+X))-0*(COS(X)+-SIN(X)*(1+X)))),0,20.79862447107529)

 

is reduced by my SCHEME AIDE to

 

@192 DOMAIN(VEC(((SIN(X)+COS(X)*(1+X))^2+(COS(X)+-SIN(X)*(1+X))^2)^-0.5*-(SIN(X)+COS(X)*(1+X)),((SIN(X)+COS(X)*(1+X))^2+(COS(X)+-SIN(X)*(1+X))^2)^-0.5*(COS(X)+-SIN(X)*(1+X)),0),0,20.79862447107529)


and it can be reduced more to

 

@86 DOMAIN(NORM(VEC(-(SIN(X)+COS(X)*(1+X)),(COS(X)-SIN(X)*(1+X)),0)),0,20.79862447107529).

 

I think that it is a twisted unit vector.


1. Do PARAM0 and PARAM1 correspond to the parametric range along the path curve?

 

Yes, of course, PARAM0 is a low parameter and PARAM1 is a high parameter of this 1-parametric LAW curve in DOMAIN definition. There is an incompleteness in http://doc.spatial.com/index.php/LawSymbol:DOMAIN because I met some complicated definitions (for example, "DOMAIN(X*VEC(10,0,0)+X2*VEC(0,8,4),0,4,0,3)". So definition of DOMAIN can look like:


DOMAIN ( NDIMLAW, LAWPBEG1, LAWPEND1, LAWPBEG2, LAWPEND2, ..., LAWPBEGN, LAWPENDN );

ssv
Contributor
ssv
Posts: 9

Re: Understanding draft laws in sweeping

[ Edited ]

Actually, I was not right calling this entity a "draft law", sorry (I've corrected the starting post a little to prevent any misunderstanding).

 

It seems like it is a rail law, not a draft. According to the documentation (http://doc.spatial.com/index.php/Profile_Orientation_and_Twisting), this entity specifies an orientation of the profile along the path. As I understand, specifying a rail law allows us overriding the default Frenet notation (is it default?), where Tangent, Normal and Binormal vectors are used for orientation of the profile.

 

However, I'm not sure if I understand the following part of the documentaton:

 

The rail_laws option specifies the orientation of the profile as it is swept along the path.

What does "orientation of the profile" mean? The DOMAIN enity mentioned above, contains only one vector which is supposed to be orthogonal to the path. However, to orient some shape (profile in our case) in 3D space I need to have some local co-ordinate system for that shape, not only a single vector. What vectors are used in such cases? Tangent and Binormal, I guess?