See if the info in this thread is relevant.
http://www.cadtutor.net/forum/showthread.php?34410-Bilinear-Coons-Patch
The algorithm you've used seems pretty good - except for the Z value.
The thread I linked shows a process that would help you correct that Z interpolation. In the attached, add the Z component of the two CurveMidConnects midpoints (Yellow Points), and then subtract the Z value from the BiLinearMidConnect's midpoint (Magenta). That value matches the associated EdgeSurf point (Cyan).
Nice , ribarm ,Can you pass a demo (GIF)
HI,ribarm。There is a bit error in the running program. I don't know if I am drawing the problem. Please see the drawing in the attached file.Nice , ribarm ,Can you pass a demo (GIF)
Just download my attached DWG, erase 3dface entities and surface created with edgesurf command... Start routine; pick curve1 - in frontal plane; pick curve2 - in right plane; pick curve3 - in back plane; pick curve4 - in left plane; Specify m divisions; specify n divisions and new surface made from 3dface entities will be created... Note that start-end points of curves must be connected in relation start/end => start/end => start/end => start/end - last end point of curve 4 is actually start point of curve 1 (c1=>c2=>c3=>c4) all start/end points direction must be CW or CCW... There must be no start/end => end/start...
@myloveflyer:Hi,Roy.Sure enough, there is no intersection. After I mirror the largest arc, the problem still exists. After I zoomed in on the Ribarm image 100 times, the program still appears "Error: parameter type error: 2D / 3D point: nil", I don't know. Why? Can you help me modify the program, I mainly use it for meshing.
If you read ribarm's previous contribution carefully you will know why the right most example in your drawing fails.
1. You will need to _Mirror3d the biggest arc to ensure that all curves are in the correct start/end=>start/end sequence.
2. You will need to remove the small gaps between the lines and the biggest arc.
Note that if you remove the gaps the standard _EdgeSurf command should also work.
For my test I have used the test.dwg you have posted elsewhere:Thank you, ROY. I have figured out how there will be a gap. When UCS converts, there is a problem with the capture. Thank you for your advice.
https://www.cadtutor.net/forum/topic/67990-spatial-grid-segmentation/
Why the cross-posting?
Why the different dwgs?
See the modified dwg for what you should change in the dwg you have attached here.
As already explained the program has some restrictions. Maybe @ribarm will one day improve it.
Although the code is probably intended as more of an exercise than a finished product.
I advise you to use the built-in _EdgeSurf command instead.
I will not improve it more... I have working version for my purposes... What you should do to make it working is converting all curves to reverse possible curves - so arc should become spline - 2nd degree and planar curve... Then you should check for intersections at each end of curves and finally you should apply REVERSE command on those curves that don't satisfy rule of CCW as desired orientation... Finally you run routine and pick curves also in CCW manner... If there are no gaps between curves, routine should work and create desired result - mesh or (I forgot what... Polygon Mesh, Polyface Mesh, or...)Hi,ribarm.I have found the error of drawing under the guidance of roy. I don't know what your working version looks like. Can you provide it, is it also meshed? The current program is for quadrilateral meshes, in short, thank you for providing such a perfect program.