I've known about crashing blank frames for a while. I just delete the blank ones. But it would be nice if laserboy recognizes them.
I've known about crashing blank frames for a while. I just delete the blank ones. But it would be nice if laserboy recognizes them.
I hired an Italian guy to do my wires. Now they look like spaghetti!
I can fix it! LaserBoy already supports empty frames. I just need to make one of those instead of crashing.
Ahaaa! I need to look for two possible conditions. 1. a DXF file might not have an ENTITIES section at all... and 2. a DXF file may have an ENTITIES section with nothing in it!
So, 1 is not a picture at all and 2 is a picture of nothing.
Thanks, drlava for the kick in the head. I needed that!
James.
Last edited by James Lehman; 06-20-2008 at 10:11.
This should take care of the empty dxf crash.
http://hacylon.case.edu/laser/LaserB...06_20_2008.zip
Two months ago today, 04-20, was the day that LaserBoy first showed up in Windows!
It was released 7 days after that.
James.
Nice work!
here's a quick suggestion to get you started on the optimization front. I took a look at the code for minimize vertices and reduce vectors, and a simple improvement would be to add a bounds parameter for declaring points are 'in the same position' for reducing. For example the remove_dwell_points() routine tests to see if the points are in the exact same position, but it could test to see if the points are in the same 'area' defined by a minimum distance.
Here's an example dxf that could use optimization (attached). The square has corners with two points that are so close together they should be made one point (interestingly your minimize algorithm rounds the square twice instead of once and stopping at each corner twice). Moving up in distance, the grid has close points that could be merged to one, and finally the star has slightly further points that could be removed if the minimum point distance parameter was further increased. Changing the 'insignificant distance in points' doesn't do this, but perhaps it could? What exactly does it do?
thanks!
"What exactly does it do?"
You got me!
Let me look at this.
BTW I'm not completely satisfied with my fix for empty DXF. It makes the option of not maintaining the DXF origin not work, ever.
Thanks!
James.
re: curve.dxf
What a cool example! I will definitely come up with something to make this better.
Have you messed with option '2' in the frame transforms menu? If you start with a 2D drawing and Z order the points you can look at it from either the side or the top (or both) and see the exact order of the points as they would be drawn. You can easily see multiple points at a single location and lines that get traced more than once. I know this doesn't automatically solve the problem, but it lets you see it!
James.
I think an issue is that your reordering algorithm doesn't search the entire vertice array for closest vertices. Once it does, solving the above problem becomes trivial.
OK. I guess... You have to look at the first and the last point in every segment. and make sure that the segments are at least close to being congruent in 3D space. That means that you have to look at the whole segment, not just the first and the last point.
I want to figure this out. I thank you for your interest in this. Do not mistake my questions for dissuasion. Please keep posing your interesting situations. This it exactly the kind of interaction I am looking for to continue to develop LaserBoy. Thank you.
I will try to give this situation my full attention. It is where This code needs to go next.
It's about 9:32 PM. I just got home from my niece's high school graduation party, and I've had a bunch of free beer.
Let me get my sh....tuff together.... hic..... .
James.
Here is a better solution to the empty dxf crash problem. The first fix worked by placing a blank vector at the origin of every frame, so that even frames with no other data would at least have that. This goofs up the ability to open dxf images that are drawn away from the origin into LaserBoy and have LaserBoy find a new center for the image as all size and scale calculations were being done on data that would always have a point defined at the origin. This version should take care of that problem.
http://hacylon.case.edu/laser/LaserBoy/LaserBoy_06_23_2008.zip
James.