Hi, chlh_jd... I must say I am very impressed... It almost work in every situation... I don't know why, by my "Another example" didn't finish like you showed on your animated GIF... I am on A2014 and didn't modify file I posted, just checked on the same polyline and it failed around start/end vertex... I've turned off debug mode, removed layer creation of ridge lines - uses current layer and done overkilling duplicate ridges through ALISP... And you showed on very complex example with revcloud some lack... Hope you'll solve this when you did it so good so far... I'll attach your lisp with those mods I mentioned (I don't want duplicate ridges)... Very grateful for this, thanks again GSLS(SS)...
M.R.
You are welcome .
chlh_jd, I've tried to improve, but I don't know if my attempt is good... Now my case is solved, but I don't know ab your (revcloud)... My attempt was pretty simple in comparison to your coding (made main sub-function - "start", and if it runs on error it restarts main function with little modified order of vertices - had to nil rgl variable)... So error should be printed, but solution should be made if my estimations were correct... Also made better formatting of code - never mind it's now bigger...
So long from me for now, M.R.
Ribar , Thank you for test , please post your error polygon for me , thanks .
I've catch the error you said , it's because of the accuracy of AutoCAD's VLIDE .
Even now the most Process of the Algorithm -- through bisector and axis from 2D , you can check every function with precision , and then found which is wrong .
Add change start point , shoud change each side to operate , and it can slove some error cause by precision . In my opinion , change every point's coordinates into according the centroid , and then transform them back after get the result , this method will be some better .
It can be easy modified into support 3D method , because it has Z list , like building each side region and then union them . Enjoy .