Jump to content

Bilinear Coons Patch


Bella_Ciolla

Recommended Posts

Hey guys I have narrowed down my several weeks long research into coons surfaces to find that I need to learn how the 'bilinear coons patch' works. I was hoping you could help me understand some small details about it?

 

Please visit this page real quick:

 

books?id=CCqzMm_-WucC&pg=PA439&lpg=PA439&dq=bilinear+coons+surface&source=bl&ots=mriy19LHbg&sig=Lx5rODerfDS3clogtlKPq7ghM1A&hl=en&ei=GM7RSb3_GZzulQe2s9yHBw&sa=X&oi=book_result&resnum=7&ct=result

 

Okay its not a picture, its a url, and the site wouldn't allow me to post any urls so I had to work around it.

 

Anyways at the site I am seeing to make the bilinear coons patch you do a ruled surface in one direction, and one in the other, and then add them together, and minus those from the bilinear interpolation created by the 4 corner points. Now where I am confused is I am wanting to do this manually in 3d, but how do you add the 2 lofted services, and moreso, how do you subtract from that, the bilinear interpolation?

 

I am really hoping someone can help me with this, I have been googling this for weeks and am absolutely lost on how to add and subtract these :cry:

Link to comment
Share on other sites

books.google.com/books?id=CCqzMm_-WucC&pg=PA439&lpg=PA439&dq=bilinear+coons+surface&source=bl&ots=mriy19LHbg&sig=Lx5rODerfDS3clogtlKPq7ghM1A&hl=en&ei=GM7RSb3_GZzulQe2s9yHBw&sa=X&oi=book_result&resnum=7&ct=result

Link to comment
Share on other sites

Very interesting despite the fact the math is way over my head.

 

Using the link you provided I did however reconstruct most of the graphics (in a rudimentary fashion as there are no dimensions given) to the point that I have objects (a), (b) and ©. I know I can use the Intersect command and get the "result" of (a) and (b) but I'm stuck trying to achieve the final result (d).

 

It's been fun trying though and I haven't yet given up. I just need to think on it some more. Thanks for sharing this puzzle.

Link to comment
Share on other sites

Yeah thats where I get lost, I mean if object © was a solid rather than a plane, than I would have figured this out quick. but I thought suppose there was an inside distance between both lofts a and b, where they are divided, this length would be the sum of both lofts right? So now imagine these distances were divided by two, where the c plane met? That would give you one distance divided by two, not equal lengths. Basically what I am seeing is there is a way to get a distance say figuratively the distance is 5, but its divided in two segments, suppose one is 2 and the other 3. how would you subtract two numbers from eachother? I cant find that 3rd number :cry:

 

I dunno, Iv'e spent weeks obsessing over this, I just cant seem to figure out how do you subtract something with no distance? Any insight I can get into this would mean the world to me! :)

Link to comment
Share on other sites

I'm sticking with my pseudo-solution and leaving the higher math stuff to the brainiacs like yourself and Lee Mac. If something comes to mind, including any wild ideas, I'll be back in touch with you. Good luck.

Link to comment
Share on other sites

I’m not sure how possible it is to create the “Coons” solid with Union, Subtraction, and Intersection. Though, it is an interesting concept to consider.

 

With regard to Solids, it may be possible to address it via a regular grid, processed point by point. This may give the necessary Slice points for a solid extruded from each grid section. See Sample.

 

Granted, this is rather labor intensive. The process would certainly benefit from some type of automation. It would likely be a pretty complex routine, however.

Coons.dwg

Link to comment
Share on other sites

SEANT: A fresh set of eyes on the problem brings a whole new perspective. Nice. But as you point out it does appear to be labor intensive. Do you think the problem could be handled better in a program other than AutoCAD?

Link to comment
Share on other sites

Ah, Yes. I see what you're getting at. I imagine Excel could be used to kick out the numbers. If the numbers are the end requirement, might as well keep modeling out of it.

Link to comment
Share on other sites

But if the numbers were not necessarily the end requirement couldn't they be fed back into a routine (VBA? Lisp?) to generate the final solution?

Link to comment
Share on other sites

But if the numbers were not necessarily the end requirement couldn't they be fed back into a routine (VBA? Lisp?) to generate the final solution?

 

They could. For that matter, VBA and (likely easier) Lisp could do the computation to locate individual points. Laying out the solids and setting them up to slice would also be relatively straightforward. Probably, the whole routing would be about 50 – 100 lines of code.

 

But, depending on the actual requirements of the OP, the routine may already exist (M2S.LSP). It would first require and EDGESURF mesh, so, if modeling is an accepted prerequisite, that would be the way to go.

Link to comment
Share on other sites

But how do you find the points? And how do you find the numbers to input into excel? I mean how do you add two lofts together and get a number? are you adding their distance at each interval? and how do you subtract that number from the bilinear patch © thats what im looking for. supposedly you using the boolean sum which is 'OR' but I cant find any information on how that would relate to this. :cry:

Link to comment
Share on other sites

The answer to that question is somewhat based on the data you intend to process (for my example, it was just a quick recreation of the patterns shown in the link).

 

For us to offer appropriate advice you may need to give additional background on what it is you’re trying to do, what you’re starting with, the result you’d like to generate.

 

Another factor to receive appropriate advice is how far along you are in addressing the problem. For example, how familiar are you with the method to interpolate intervals between two points.

 

As a general example for “Interpolation”, if you had a point (3, 6, 1) and you wanted to interpolate 6 steps to (21,6,16) , the total span would be (18,0,15) derived via

 

(Xend – Xstart), (Yend – Ystart), (Zend – Zstart)

 

A 1/6th span would be (3, 0, 2.5). To find the interpolated points that span is added to the start point the appropriate number of times [ (6, 0, 3.5) , (9, 0, 6) . . . .] .

 

I apologize if this is elementary; it is partly intended to illustrates the difficulty in giving blind advice.

Link to comment
Share on other sites

No its not elementary at all, its the type of thing im looking for. Im not sure where to start with all this. here is my setup so far. I have the four connected boundary curves, and what I did was took two opposing boundary curves, divded them both by say 4, then connected them by their divided points each by a straight line, so i would have 3 straight interior lines representing one of two lofted surfaces. I did this same thing for the other two opposing boundary curves.

 

From there im seeing there are 3 interior straight lines in one direction and 3 in the other. so for each straight line i divided it by 4 as each straight interior line has 3 lines crossing it from an overhead view. basically all in all i have 9 interior intersections. but the thing is from an overhead view they intersect, but in 3d they dont, so what i did is i made a striaght line connecting each intersection.

its like imagine you had two lines crossing eachother, but they dont actually touch eachother, so where they were divided by 4, i would connect them. all in all i would have 9 of these

 

from there i make the bilinear frame, which basically covers the entire 4 boundaries at their endpoints, and i make them have 9 interior points as well, or a grid of 16 rectangles. so now what i have is two lofts, which are not connected, yet there are interior lines at each of the 9 interior intersection points that determine a length.

and this is where im at a loss, im trying to understand is this the right aproach?

Link to comment
Share on other sites

So you’re addressing it at various intervals as well. I think the only difference between your technique and the one I’m proposing is the type of operations. You’re starting with the average of the spans A and B.

 

My method is adding A and B, then subtracting C to generate the position D.

A.jpg

B.jpg

C.jpg

D.jpg

Link to comment
Share on other sites

WOW thank you Seant I really appreciate that illustration, that really helps me understand it alot better. :) Now that were both looking at the same thing, would you say the boundary curves would have to always be along the end points? Know what I mean? When i see © connecting to the boundary points, it wouldn't always take into account a curve that might taper out against the boundary. I mean would the line have to be 90 degrees straight from the bilinear patch?

 

Another thing is what if the lofts lines are not directly above the bilinear patch? Your illustrations make perfect sense to me, but they dont explain what you would do if the loft lines weren't directly adjacent to the bilinear patch

Link to comment
Share on other sites

WOW thank you Seant I really appreciate that illustration, that really helps me understand it alot better. :) Now that were both looking at the same thing, would you say the boundary curves would have to always be along the end points? Know what I mean? When i see © connecting to the boundary points, it wouldn't always take into account a curve that might taper out against the boundary. I mean would the line have to be 90 degrees straight from the bilinear patch?

 

If we consider AutoCAD’s EDGESURF command as an example of a Coons surfaces creator then the edge curves don’t have to be at 90 degrees but the four corner points have to be in contact. If you’re creating your own algorithm then a certain amount of “Fuzz” could be built in. This is to say the corner points only need to be within a certain distance of each other and will be processed to find a suitable “average” point.

 

Another thing is what if the lofts lines are not directly above the bilinear patch? Your illustrations make perfect sense to me, but they dont explain what you would do if the loft lines weren't directly adjacent to the bilinear patch

 

This is where the interpolation comes in. If you are indeed designing your own algorithm then you will likely have to stack multiple interpolations together to derive the Bilinear interpolation (perhaps even Trilinear depending on the complexity of the edge curves).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...