View Full Version : Anyone want to help out?
Death Adder 07-28-2005, 08:59 PM Please see:
http://www.cnczone.com/forums/showthread.php?t=12054
We've been discussing starting up a group of people to produce cad/cam products (free, probably open source) and educational programs. Basically we'd like to start producing useful cad/cam applications. Anyone else up for it?
rweatherly 07-29-2005, 09:41 AM Did you get your original problem solved? (Post 1 in the link)
Richard
Death Adder 07-29-2005, 12:03 PM Evodyne is working on it. I'm not sure how far he's gotten. 'twill be available eventually though. Were you interested in something like that?
Did you get your original problem solved? (Post 1 in the link)
Richard
Evodyne 07-29-2005, 01:40 PM Did you get your original problem solved? (Post 1 in the link)
Richard
Hi Richard. It's functional, but I'm adding a few tweaks and making it look pretty. My day job slowed me down a bit this week (deadlines deadlines, deadlines), but I plan on capitalizing on the weekend and wrapping it all up.
Evodyne
Evodyne 07-29-2005, 02:06 PM Please see:
http://www.cnczone.com/forums/showthread.php?t=12054
We've been discussing starting up a group of people to produce cad/cam products (free, probably open source) and educational programs. Basically we'd like to start producing useful cad/cam applications. Anyone else up for it?
As Death Adder mentioned, the two of us have had some dialog about creating tools, interactive FAQs, calculators, simulators, unit converters, etc. for the CNCzone community. Not us per se, but a larger gathering of interested members both with and without programming skills.
We could, for example, runs some polls to determine what 'zonies would like to have made available.
There might be an "algorithm discussion" area. No specific projects there, but a sharing of code snippets and solutions to things so that others could use the info. in whatever language they prefer.
I can see non-programmers adding their input: "here is what you need to consider when writing loop-tuning software" and so on.
Then of course, a projects area. Perhaps broken down as it would relate to building a CNC machine: mechanical, power supplies, motors, and so on.
There are lots of possibilities. For now, I'm just curious to see how many are out there with/without programming skills having a desire to be a part of something fun.
Today I sent an email to cncadmin/Paul to see what his thoughts are. Who knows, maybe he wants to see this go in different direction. What are your thoughts?
Evodyne :eek:
Scott_bob 07-29-2005, 03:18 PM Absolutely!
I'd like to ask you about your interest here on the CNCzone.
Considering that you're talking about software development and all.
Is this site better organized and presented than elswhere?
Is this why you guys are interested in developing a forum discussion here?
I just don't have time to go on the web to see what else is out there...
I really like your idea...
turmite 07-29-2005, 04:03 PM Hey guys , I don't know if this is something like you're talking about or not. Ynneb posted this link last week.... take a look.
http://www.opencascade.org/
Sorce code does me absolutely no good. I need a program to open and run!
Mike
Evodyne 07-29-2005, 04:06 PM Absolutely!
I'd like to ask you about your interest here on the CNCzone.
Considering that you're talking about software development and all.
Is this site better organized and presented than elswhere?
Is this why you guys are interested in developing a forum discussion here?
I just don't have time to go on the web to see what else is out there...
I really like your idea...
All creditfor bringing what was just a thread conversation goes 100% to Death Adder. He meantioned the idea, and I have to admit it has grown on me.
For just pure open source development I think SourceForge (http://sourceforge.net) is the way to go. But, for my part, I love this site. I'm still in the gathering parts, testing, playing around stage of building my first machine. And I don't think I would have gotten as far as I have without the help of the members here. I'll be the first to admit I do not have much to offer I the way of practical CNC experience. But I can program, and love to do it just for fun. It occurred to me it can be an extension to this hobby, and also is a way for the CNC challenged to give back to the site and contribute. So why not? It just makes it better for everyone.
I'm glad to see you hopped over here and are interested!
Lance
Evodyne 07-29-2005, 04:14 PM Hey guys , I don't know if this is something like you're talking about or not. Ynneb posted this link last week.... take a look.
http://www.opencascade.org/
Sorce code does me absolutely no good. I need a program to open and run!
Mike
Hi Turmite! I did meantion source code sharing as one side benefit of what I think we might be organizing. But don't get me wrong: developing "click and run" applications for all of us is the end goal. Tools for the CNC hobbyist to use to assist in designing, testing out ideas, learning, etc. Just what your looking for!
When I get some time this evening I am going to take a look at the opencascade site. I would now, but I'm really supposed to be working (evil wry grin on my face).
BTW, what software would interest you?
Lance
Hello all !
I thought this site was for such things .
Dosent it have a catagory ,menu,whatever list to post to ?
Yes, am interested in reading ,posting input and such , but would rather
not have to go to other sites and back and forth,etc.
Bear
Evodyne 07-29-2005, 04:55 PM Hello all !
I thought this site was for such things .
Dosent it have a catagory ,menu,whatever list to post to ?
Yes, am interested in reading ,posting input and such , but would rather
not have to go to other sites and back and forth,etc.
Bear
Bear,
Yes this Forum, "Opensource", and its sub-forums, IS for guys to put stuff they develop on the site as opensource. You might write something and decide to post it here. So might I.
From the initial conversations I've had with Death Adder there seemed to be a common interest between us to go one step further.
I'm envisioning a more collective effort to provide programs, etc. as a toolkit of sorts for all CNCzone members to use. Maybe someone brings an idea to the "team". One or more members decide to tackle it and build something made to order. Or we, as a group, make a laundry list of things that would be nice to have: design tools, whatever. Then we go about writing them and making them available to everyone on the site. It can take a lot of different directions.
There is no menu or directory structure for what I'm talking about yet: Death Adder only just started this thread.
Give your input-what you think is needed, what would be cool, what you'ld like to do to help. Just keep in mind that this is a proposal or idea that has just hatched.
As I said earlier, I'm curious for now just to see what other members think and to see who programs and is interested in pitching in. I would really hope to see a big, group effort. Time will tell.
Lance
MrBean 07-29-2005, 05:55 PM I love the idea of open source CNC software, developed by the members of CNC Zone, for the members. I can't write code to save my life, but would contribute with ideas, testing etc..., as I'm sure would many others on here. For those of us that can't program, but have built and used a CNC machine, I'm sure we could contribute in many other ways. I really hope this idea goes somewhere and doesn't end up as: "another one bites the dust."
Regards Terry.....
Evodyne 07-29-2005, 06:08 PM I love the idea of open source CNC software, developed by the members of CNC Zone, for the members. I can't write code to save my life, but would contribute with ideas, testing etc..., as I'm sure would many others on here. For those of us that can't program, but have built and used a CNC machine, I'm sure we could contribute in many other ways. I really hope this idea goes somewhere and doesn't end up as: "another one bites the dust."
Regards Terry.....
Terry,
Good to hear from you again! Like your site updates-especially the wind turbine stuff. I feel like such a slacker.
Glad to hear you would like to contribute! That's exactly the programmer/non-programmer collaberation that would make this exciting. All of us working together to make this hobby/site better. As for "biting the dust", we are not even up and off the ground yet. But Death Adder's idea is appealing, isn't it? Can you help drum up support?
Lance
Death Adder 07-29-2005, 08:36 PM Wow, I'm away at work for one day and this thread explodes! ;-)
I'm glad that there seems to be support for this. As evodyne said, it would be nice to figure out what sort of utilities the average CNC operator and/or forum member could use. Maybe, like he said, we could get a few more forums in this open source center here at cnczone. There are plenty of things that both programmers and non-programmers can do. For instance, knowledgeable people could write up educational documents on how to build your own mill, etc.
Death Adder 07-29-2005, 08:41 PM I forget how exactly I found my way in here...
I think I was actually looking for good open source cad/cam software and I happened upon a discussion in the open source area here at this site. When I saw that some people were already talking about a project here and a project there I knew I had found what I was looking for. I've been toying with a variety of programming for a long time now. I've had my hand in open source games, operating systems, utilities (some of them for CAD). I've come to lean toward putting my time towards cad/cam as thats what I do for work.
Absolutely!
I'd like to ask you about your interest here on the CNCzone.
Considering that you're talking about software development and all.
Is this site better organized and presented than elswhere?
Is this why you guys are interested in developing a forum discussion here?
I just don't have time to go on the web to see what else is out there...
I really like your idea...
Death Adder 07-29-2005, 08:46 PM Really, I posted a link to OpenCascade as well... I didn't know that he did.
I've looked at opencascade and I have been thinking about using it. It's geared mostly toward visual CAD/CAM applications. It seems it's been used mostly for analysis apps (stress analysis, crash testing, etc). We might be able to use it for the more visually in-depth applications. It has a fairly high learning curve but once one or more of us learn it we'll be good to go.
Hey guys , I don't know if this is something like you're talking about or not. Ynneb posted this link last week.... take a look.
http://www.opencascade.org/
Sorce code does me absolutely no good. I need a program to open and run!
Mike
Death Adder 07-29-2005, 08:51 PM Yes, this is what I'm envisioning. I'd like to see people posting what would be useful to them. People have been doing that every so often in the past but let's see if we can concentrate it a bit. Then one or more people can start work on trying to produce the desired item. That item might be a program that modifies cutter paths in some fashion or it might be a document that explains how to build an encoder/stepper setup.
Bear,
Yes this Forum, "Opensource", and its sub-forums, IS for guys to put stuff they develop on the site as opensource. You might write something and decide to post it here. So might I.
From the initial conversations I've had with Death Adder there seemed to be a common interest between us to go one step further.
I'm envisioning a more collective effort to provide programs, etc. as a toolkit of sorts for all CNCzone members to use. Maybe someone brings an idea to the "team". One or more members decide to tackle it and build something made to order. Or we, as a group, make a laundry list of things that would be nice to have: design tools, whatever. Then we go about writing them and making them available to everyone on the site. It can take a lot of different directions.
There is no menu or directory structure for what I'm talking about yet: Death Adder only just started this thread.
Give your input-what you think is needed, what would be cool, what you'ld like to do to help. Just keep in mind that this is a proposal or idea that has just hatched.
As I said earlier, I'm curious for now just to see what other members think and to see who programs and is interested in pitching in. I would really hope to see a big, group effort. Time will tell.
Lance
ger21 07-29-2005, 09:13 PM I'll take a nice 3D simulator ;)
Death Adder 07-29-2005, 09:16 PM Actually I've sort of been toying w/ the idea of making a cutting simulator for CNC paths. Is that what you are talking about? Or a machine simulator that simulates a machine before you create it?
And yes, I know either one is a LOT of work.
I'll take a nice 3D simulator ;)
ger21 07-29-2005, 09:55 PM Cutting simulator. Something like CNCSimulator, with a higher quality display, and without the goofy interface, and that works in inch mode. :) Rediculous amount of work. I'll beta it, though. :)
Death Adder 07-29-2005, 10:38 PM By CNCSimulator are you talking about this http://sourceforge.net/projects/cncsimulator/ ?
I tried it out but it turns out to be only a lathing simulator. I thought that sucked because I dont even have a CNC lathe (just an old world war 2 era military lathe).
A milling simulator (I live in the US so I too would want something in inch mode) would be potentially time consuming to do but it might be neat. I personally love Metacut View. It's an awesome program but I haven't bought it and can't use it anymore. I've got Surfcam so I just use the one included w/ that. However, not everyone can afford a > 8,000 dollar CAM package. Metacut rocks and I think it's only $400 bucks but not everyone is going to spring for that either.
What is the interest level in such a thing? It's not a program to approach lightly but if there is interest and more than 1-2 coders then maybe... The mathematics material we'd have to put together will probably blow pass a lot of people's comfort level (including mine... calculating the intersection of a cutter and the block at a high rate of speed is a bunch of fun) but it's livable.
MetLHead 07-29-2005, 11:45 PM Collin,
Speaking from experience, I can tell you that writing a simulator can be quite challenging. I've been working on NCPlot now for about a year, I have my own forum on the Zone and everything. I, like most people, have a day job so writing this program has been an evening and weekend project. I've learned a lot working on it and I would encourage you just for that reason.
Scott
Death Adder 07-30-2005, 10:29 AM Interesting! I just checked out NCPlot and it's a pretty neat program. I could probably use something like that for program verification. It's a little different in scope than what I want to do but a lot of the ground work is the same: processing GCode input into an internal representation and displaying it.
Also, I think your program is more geared towards what I'd want to use for verifying 2D paths. I've got a CNC plasma cutter as well as a mill and something like NCPlot would be perfect to verify that I'm not about to run the plasma cut path from hell.
Really I'd like to, w/ the toolpath cut simulator I was talking about, to concentrate on 3 axis milling. Theres already a lathe simulator and your program works great for visualization anyway. I just want to see something free or really cheap that does solid simulation for milling. 4 and 5 axis machining would probably complicate things too much so I feel 3 axis is a more reasonable goal.
I've got some ideas on how to optimize a 3 axis solid simulator and I'll be posting them in the next few days.
ger21 07-30-2005, 11:04 AM http://www.cncsimulator.com
Evodyne 07-30-2005, 11:08 AM I'll take a nice 3D simulator ;)
What would be handy? Something that ran a file against a virtual block of material and showed a timeline of cutting progress (real or accellerated time), or something that processed a file and simply showed the end result (possibly in a way where one could verify final dimensions?)
Lance
ger21 07-30-2005, 11:08 AM Really I'd like to, w/ the toolpath cut simulator I was talking about, to concentrate on 3 axis milling. Theres already a lathe simulator and your program works great for visualization anyway. I just want to see something free or really cheap that does solid simulation for milling. 4 and 5 axis machining would probably complicate things too much so I feel 3 axis is a more reasonable goal.
I've got some ideas on how to optimize a 3 axis solid simulator and I'll be posting them in the next few days.
With today's video cards, you should be agle to get a really nice display using OpenGL, right? Although I dabble in simple programming, I wouldn't be much help here. If you use AutoCAD, you might want to check out the macro I wrote that exports g-code right from inside AutoCAD. It's here in the AutoCAD forum.
ger21 07-30-2005, 11:10 AM What would be handy? Something that ran a file against a virtual block of material and showed a timeline of cutting progress (real or accellerated time), or something that processed a file and simply showed the end result (possibly in a way where one could verify final dimensions?)
Lance
The end result would be OK for starters, but the actual cutting is where the cool factor is highest. :D I would want to be able to adjusat the speed to go faster than real time, though. How fast you actually could go would probably be processor and video card dependant.
Evodyne 07-30-2005, 11:19 AM Ger,
I've been dabbling with OpenGL and it relatively simple and lightning fast. I'm still in the getting-up-to-speed phase, but I think it's the way to go for the visualization part of a project.
Lance
MetLHead 07-30-2005, 11:28 AM Cool, I'm looking forward to hearing your ideas...
For me, NCPlot started out as seperate ideas. I had written an editor with some basic formatting features. Then I wrote the macro calculator, which was a huge step for me. Then the geometry code, and finally the viewport drawing stuff. Then I mashed them all together with a G-Code interpreter and NCPlot was born. Each of these was a seperate building block and they all could be used in lots of different ways. I think you'll find the same thing if you decide to go ahead with your idea.
Scott
Evodyne 07-30-2005, 04:08 PM Cool, I'm looking forward to hearing your ideas...
For me, NCPlot started out as seperate ideas. I had written an editor with some basic formatting features. Then I wrote the macro calculator, which was a huge step for me. Then the geometry code, and finally the viewport drawing stuff. Then I mashed them all together with a G-Code interpreter and NCPlot was born. Each of these was a seperate building block and they all could be used in lots of different ways. I think you'll find the same thing if you decide to go ahead with your idea.
Scott
Scott,
Sounds like you'd be right at home working on the kinds of projects we have been discussing. Have you given any thought to participating? I'm sure most, if not all, of us are limited by work, families, and such. However not everything would need to be so involved, so the time investment could be tailored to what you, me, or several of us together felt we could work into our schedules.
Death, this thread seems to have taken off, at least initially. I'm really swammed with my day job right now, but I'm going to try to start putting a potential project list together. Just as a jumping off point. Or, if I see someone else beats me to it, I'll just add on. Either way it might serve to get the creative juices flowing. And keep the momentum going.
Any other thoughts guys? I'm curious to hear what you all have to say.
Lance
MetLHead 07-30-2005, 04:25 PM Lance,
Sure, I'd love to help out. I'm sure I have something I can contribute.
Scott
Death Adder 07-30-2005, 04:37 PM http://www.cncsimulator.com
Originally I was quite impressed. After a while of playing w/ it though I found it lacking. Mainly, the inability to rotate the view really sucks. Well, you can rotate the wireframe 3d view but if you do it erases the path. The 3d block view (which is the most useful) can not be rotated. To me, this signals that they cheated like crazy on their 3d block view and that's why you can't rotate it. The data must just not be there. The lack of persistance in the 3d wireframe view is inexplicable...
It's still great that it's free but well... were it not no one would buy it. Except for people who've bought BobCAD. They've probably got low enough expectations to buy it and be happy.
Don't get me wrong... CNCSimulator is not a terrible program. It's useable and pretty quick. It's just not up to what I expect out of a simulator.
Scott_bob 07-30-2005, 05:55 PM An idea on the list of projects:
Use a poll, then it would be easier to gage interest by the votes.
Maybe at 1st, we could list here any ideas, then stick the candidates in a poll.
I'd like to see a better trig calculator that graphically shows the geometric form to solve for, then enable mulitple memory registers...(I currently do this with a macro utility, but is just a bit slow).
http://www.cnczone.com/forums/showthread.php?t=11136
Keep it up,
Evodyne 07-30-2005, 06:30 PM An idea on the list of projects:
Use a poll, then it would be easier to gage interest by the votes.
Maybe at 1st, we could list here any ideas, then stick the candidates in a poll.
I'd like to see a better trig calculator that graphically shows the geometric form to solve for, then enable mulitple memory registers...(I currently do this with a macro utility, but is just a bit slow).
http://www.cnczone.com/forums/showthread.php?t=11136
Keep it up,
Scott_bob I am going to look at that macro recorder when I get a spare moment or two. Not sure I understand what you mean by geometric form-trianges, pentagons, and so on? And I fell rather dumb for asking, but what mmory registers. I can see where I am weak-no practicle G-code experience as of yet. If my naive questions aren't too bothersome, can you explain?
Feeling stupid,
Lance ;)
Scott_bob 07-30-2005, 07:52 PM Evodyne,
BTW, I just wanted to plug the idea of anonymity, since some of you on this thread have come out with your names and locations. IMO, it is better for you that you remain anonymous on the internet, for no other reason than that you all have day jobs. I can tell you that many working guys and gals have lost their day jobs because of what they were "interpreted" as having said, online. (Example: Myspace blogs and getting fired"). I hope you know you can go back and delete any of your comments, or correct your spelling! You can't get into trouble, if you remain anonymous... Just an idea...
Anyway, back on point. I use a "macro" that does the following by just touching 2 keys simultaneously. This takes no more than 3 seconds...
For those of you who use the surfcam editor, it has a little trig calculator. So, I launch sedit (surfcam editor), move the window to the top left corner of my screen and small enough, then start the trig calculator, size and move that window over the editor (cause I am not using the editor), Oh, btw I have also launched and moved the windows calculator to the right side of my screen, ready for action.
---------------------------
Now the little trig calculator is the only thing visible, and the Windows calculator. I solve the trig, cut and paste the answer I need into the calculator, so I can further calculate on this value (if needed), and when I'm done, I press the "Shift" key. (That is the keystroke, my macro is waiting to see, Clipboard copy and paste is commenced, and the value is pasted where my cursor was when I launched the macro.
I think it might be advantageous to have 4 memories or so, for each of the trig solutions, and then be able to recall them individually. Right now, the clipboard will only store for pasting "one" value. This can all be done with a more sophisticated macro, but I think a custom application would work faster...
Also... (by pressing Ctrl, F12 simultaneously) I use another little macro that I made that simply:
Launches the windows calculator, moves it to the right/center side of the screen, and wait's for the "Shift" key, when calculations are done, the value is truncated to .xxxx place decimal, then pasted where I launched the macro, and the calculator is closed. I don't reach for my calculator nearly as often as I used to, and the answer I'm after gets pasted exactly where I need it, error free.
Just some thoughts,
Death Adder 07-30-2005, 08:16 PM I don't think it's a bad thing to maintain anonymity but there really is no such thing. You can always be traced back to who you are via your IP address. If you behave like you are anonymous and anything you say is OK then you WILL get yourself in trouble. I've probably said a few things that people don't like (like how crappy BobCAM is or how CNCSimulator could be better) but I try to keep things reasonably civil. That's a good idea whether you think anyone knows who you are or not.
Also, it seems like nearly everyone on here has said their first name (or someone else has called them by their first name) and most people's profiles include their location. Providing too much info is a bad idea but it's kind of nice to be able to call people by their first name and knew where about people live.
Evodyne,
BTW, I just wanted to plug the idea of anonymity, since some of you on this thread have come out with your names and locations. IMO, it is better for you that you remain anonymous on the internet, for no other reason than that you all have day jobs. I can tell you that many working guys and gals have lost their day jobs because of what they were "interpreted" as having said, online. (Example: Myspace blogs and getting fired"). I hope you know you can go back and delete any of your comments, or correct your spelling! You can't get into trouble, if you remain anonymous... Just an idea...
Evodyne 07-30-2005, 08:34 PM Evodyne,
BTW, I just wanted to plug the idea of anonymity, since some of you on this thread have come out with your names and locations. IMO, it is better for you that you remain anonymous on the internet, for no other reason than that you all have day jobs. I can tell you that many working guys and gals have lost their day jobs because of what they were "interpreted" as having said, online. (Example: Myspace blogs and getting fired"). I hope you know you can go back and delete any of your comments, or correct your spelling! You can't get into trouble, if you remain anonymous... Just an idea...
I can appreciate what your saying, but I guess my viewpoint is different. As Death Adder meantioned, true annonymity is an illusion. And, maybe I'm Cynthia or Carl in real life! Ha!
I will say that on this particular site I am very impressed with all of the people , um, most of the people I've "met". Just about everyone is courteous and strives to be helpful. I suppose I just feel comfortable or safe, but the use of names when I'm here doesn't bother me. In fact I think it adds a bit. It's kind of cool to know people from all over the globe on a first name basis.
I also try to act as a guest and keep my behaviour in check. I might disagree with someone on a technical issue and argue the point, but I won't take it to a personal level. So I don't worry about what might come back to haunt me later.
To each his own!
Sincerely,
Claudette :cheers:
Death Adder 07-31-2005, 10:51 PM To get back on track a bit... Here is one of my ideas for how to simulate a cutter path in a solid block:
Make the solid block an array of single precision floats. The array will be set each 1/100th of an inch in X and Y. So for instance, a 10"x10" block would be a 1000x1000 array. Singles are 4 bytes so 1000x1000x4 = 3.8MB of RAM usage.
Each element in the array is a Z level for the upper surface of the block at that location. The lower level of the block at each location is understood to be constant. Now, the cutter is also a rectangular array of depth values. These values start at 0 at the tip and run negative going up. To simulate a cut the cutter is moved to position <X, Y, Z>. This coordinate is understood to be the tip of the cutter. The cutter array is then used to modify the depth values in the block array. The cutter array modifies the portion of the block within the array of the cutter array moved to the position of the cutter.
Did any of that make any sense? It should yield reasonably decent visualization while at the same time keeping the RAM usage down. And it's not a huge cheat that can't be rotated. The resultant data could be rotated and zoomed to your hearts content.
As another note... W/ 100th of an inch as the array unit a 60"x25" die would take 57.2MB. Not bad really. Most people have CAD/CAM machines with at least a gig of RAM.
PS: If it would be more clear I could post some crudely drawn illustrations that no doubt would put me in the running for the 'worst artist of the year award'
CNCadmin 07-31-2005, 11:22 PM Let me know if you want me to set-up a new section etc... what ever you guys want let me know.
Evodyne 08-01-2005, 06:15 AM Let me know if you want me to set-up a new section etc... what ever you guys want let me know.
Thanks! If we are to formalize this then, yes, we will need some kind of organized layout.
Looking at the post two back, Death Adder is discussing how we tackle the coding for cutting paths. I can literally see many such discussions on a variety of topics. Each needs its space to be fleshed out, discussed, etc. If it were up to me I'd probably call the sub-forum "Algorithms and Coding". Programmers would immediately know to go there to discuss, well, algorithms and coding (duh).
Perhaps a "Project Suggestions" area too where anyone could go to post their ideas for things they would like to see written.
That's just my "big picture" view based on where I see us at right now. And, those are broad enough to not lock us into any one direction.
Guys, please add your two cents worth. Let's make this work and not let it wither and die on the vine.
Oh, and cncadmin, there are probably several good programmers who use the site but haven't run across this thread. Any way (since your the boss :) ) to make a general announcement and invite those interested to at least take a peek? This little army needs more soldiers!
Evodyne
Evodyne 08-01-2005, 06:41 AM To get back on track a bit... Here is one of my ideas for how to simulate a cutter path in a solid block...
...Did any of that make any sense? It should yield reasonably decent visualization while at the same time keeping the RAM usage down. And it's not a huge cheat that can't be rotated. The resultant data could be rotated and zoomed to your hearts content.
Yes it made sense-a depth map! Initially set to be as deep (thick) as the workpiece, then we pass the tool through it and "zero out" or subtract away the portion of the depth map where the tool is at.
Could use long integers (32 bit unsigned) too: they represent values in the range of 0..4294967295. If we assume inches and four decimal places you material could be 0" to 429,496.7295" Hmmm. Probably more than we need. How about a 16 bit unsigned integer? 0" to 6.5535" or 0" to 65.535" if you can live with three decimal places. Now you've cut your memory needs in half!
The tool need be only an array, as you said. Or a few 3D points that define a polyline profile. Given a tool path and a position on the path, we would have to rotate the profile around the Z-axis to keep it tangent to the direction of travel. Very doable. The other approach would be create a 3D (voxel) representation. Seems overkill to me though.
What about turning the whole thing inside out? Start out with no material and anytime the tool is inside a given volume, leave behind a trace where the tool has been. Once the whole thing is done yould have a virtual negative mold. Subtract each value from a constant (material depth) and you now have a positive that represents the object itself.
Just some thoughts.
Lance
Death Adder 08-01-2005, 08:12 AM Yes, I think we could use both forums you suggested. The Coding forum would be nice because not everyone is going to want to wade through code and algorithm ideas. Project suggestions should definately be a seperate section as well. I think you pretty well covered it for now. Later on maybe we'll think of another section we should have... Actually, once something big gets produced (like, say, a cutting simulator) then each of those projects should probably have a forum for people to talk specifically about the program.
Thanks! If we are to formalize this then, yes, we will need some kind of organized layout.
Looking at the post two back, Death Adder is discussing how we tackle the coding for cutting paths. I can literally see many such discussions on a variety of topics. Each needs its space to be fleshed out, discussed, etc. If it were up to me I'd probably call the sub-forum "Algorithms and Coding". Programmers would immediately know to go there to discuss, well, algorithms and coding (duh).
Perhaps a "Project Suggestions" area too where anyone could go to post their ideas for things they would like to see written.
That's just my "big picture" view based on where I see us at right now. And, those are broad enough to not lock us into any one direction.
Guys, please add your two cents worth. Let's make this work and not let it wither and die on the vine.
Oh, and cncadmin, there are probably several good programmers who use the site but haven't run across this thread. Any way (since your the boss :) ) to make a general announcement and invite those interested to at least take a peek? This little army needs more soldiers!
Evodyne
Death Adder 08-01-2005, 08:24 AM I thought about using integers (either short ints or longs) but they limit you as to the dimensions that the block can take on. Floats are open ended and I liked that idea. Really it will work either way. One thing to keep in mind though. Up until the Pentium (1) chip integer math was faster but current day processors can really blaze through floating point math (esp if you use the new multimedia instructions they've got). So for people with Pentium4 and Athlon64 chips the best bet is probably floating point. It can be a bit of a large format (4 or 8 bytes depending on if you use singles or doubles) but it's fairly nice to use. It's all a matter of preference though.
I wanted to make the tool a depth map like the block just because I think it might be faster than any other alternative. I thought of the polyline idea too and maybe it would work better. I'm not really sure to tell you the truth. Like you said, a polyline of the cutter's profile can be rotated around Z to be tangent to the block intersection. The problem is what happens if you plunge into the block? Then you've got to rotate it all of the way around 360 in the block and clear everything away. It seems like it might be simpler to just use the same scheme as the block (height map) and intersect them.
Your negative mold idea is interesting. I hadn't thought of that. It might speed things up, it might be basically the same but maybe more elegant. Elegant code is always nice!
Seems like we're really getting somewhere now. At this point I think the best way to go forward would be to create a few small test programs that test the theories. Which is faster, integers or floats? Is it efficient to use two height maps and intersect them? I've done OpenGL coding before, I might just mock up the ideas here into a simple test where a small block has a one inch flat bottom cutter run through it in a straight line. No GCode interpretation yet, no fancy stuff, just the bare minimum to test the idea.
Could use long integers (32 bit unsigned) too: they represent values in the range of 0..4294967295. If we assume inches and four decimal places you material could be 0" to 429,496.7295" Hmmm. Probably more than we need. How about a 16 bit unsigned integer? 0" to 6.5535" or 0" to 65.535" if you can live with three decimal places. Now you've cut your memory needs in half!
Just some thoughts.
Lance
Death Adder 08-01-2005, 11:00 PM Attached is a simple speed test program. It tests the speed of integer math versus single and double floating point. The zip has both source and an EXE. Please, anyone who has a pentium 4 or athlon machine try to run the attached EXE. I can't promise it will work on anything less. You might need the Microsoft Visual C++ runtime DLL ver 7.1 as well but most all of you probably already have it.
I'm sorry to say... The test seems to indicate that I was DEAD wrong about floating point math... It's slow as dirt compared to integer math. By about 14x in fact. I hope I've just done something wrong in my little test. If others get the same thing then maybe we really should use fixed point integer math!
Potential reasons to still use floating point are:
1. Increased range and precision. Singles have 11-12 digits of precision. That's pretty good
2. Using the floating point units frees up the integer pipes for other things. This might be good
Also, keep in mind, my test causes the loop to be determinant on the last loop's iteration. This kills the pipelining on the pentium architecture and smashes any hope of using multiple pipelines concurrently (both the P4 and Athlon have multiple integer pipes and multiple floating point pipes).
As such, I'm going to try to make the test thread better into the pipes. Hopefully tomorrow I'll have a better test. With better pipelining the floating point code might start to look better. Really, both integer and floating point should be able to do better. Still, the current test is useful to test integer and floating point w/ tangled results in the code.
MrBean 08-02-2005, 05:16 AM Hi. It runs ok on my AMD 3400 64 bit.... Results are:
Time for int tests 0.437000
Time for float tests 0.438000
Time for double tests 0.406000
ran a second test and got:
Time for int tests 0.468000
Time for float tests 0.422000
Time for double tests 0.422000
Regards Terry.....
Death Adder 08-02-2005, 08:29 AM Holy cow.... Your tests ran a lot better than what I got!
Here is what my 1.8Ghz P4 machine reports:
Int test: 1.071000
Float Test: 13.5700001
Double Test: 13.589001
As you can see, the floating point math did TERRIBLE on my machine. It actually was faster than integer math on your machine (which is what I originally thought should be the case.)
Thanks so much for running the test! With a few more people chiming in we just might get a clear picture of what the speed differences are.
Hi. It runs ok on my AMD 3400 64 bit.... Results are:
Time for int tests 0.437000
Time for float tests 0.438000
Time for double tests 0.406000
ran a second test and got:
Time for int tests 0.468000
Time for float tests 0.422000
Time for double tests 0.422000
Regards Terry.....
CNCadmin 08-02-2005, 08:37 AM Here is your new coding forum- http://www.cnczone.com/forums/forumdisplay.php?f=285
ger21 08-02-2005, 08:41 AM I think you have a problem with your machine. With a P3 750, I get:
Int = 1.906
Float = 4.890
I don't see the last one, it closes after the first 2?
ger21 08-02-2005, 08:42 AM Athlons are faster at floating point then P4's, btw. I used to do a lot of 3D rendering where everything is floating point.
ynneb 08-02-2005, 09:00 AM I'm with ger, a good simulator would be a very valuble tool.
I use cnc simulator too, but am constantly having to get petrol for it ( Why do they do that ?) I do like it, but it does have some annoying things about it too.
A simulator for 3 4 5 axis would be cool.
I dont know how to program either, so I would expect feature requests will be my limit.
If you do descide to make a simulator I will happily submit a list of feature requests.
Death Adder 08-02-2005, 12:06 PM Here is your new coding forum- http://www.cnczone.com/forums/forumdisplay.php?f=285
Thanks! Unless you move this thread it will have to continue here but I'll take subsequent threads to the new forum.
Death Adder 08-02-2005, 12:12 PM You have to open up a command prompt and run it from there. It doesn't pause after giving you the results. Maybe that should be fixed in the future. At any rate single and double performance is usually very close.
I ran the test on a 2.54Ghz P4 machine and the same thing happened... Terrible floating point performance and good integer performance. The numbers for that machine were:
Integer: 0.656
Single: 8.297
Double: 8.265
I believe the problem is pipelining. The P4 is heavily pipelined and my test destroys that. The Athlon processors are apparently still able to pipeline it or at least don't have as long of a pipeline (if memory serves they really do have a shorter pipeline). It would be interesting to see if the test runs as badly on other people's P4's as it does on both of mine. Apparently on the P3 floating point (even with the pipeline smashing test) is only around 1/2 speed of integer. That's better than the 14x drop in speed I'm seeing.
When I get a better test together I'll post it in the coding forum. Thanks to everyone that ran the test so far!
I think you have a problem with your machine. With a P3 750, I get:
Int = 1.906
Float = 4.890
I don't see the last one, it closes after the first 2?
Evodyne 08-02-2005, 12:38 PM Hi guys. My work IBM clocked in at:
Int: 0.578 s
Float: 7.031 s
Double: 7.016 s
2.8 GHz P4 ,XP Pro SP-2, & 256 Mb RAM
Evodyne
Evodyne 08-02-2005, 12:46 PM Hey Death,
I don't know what all you doing inside you speed checker, but try to minimize things that can add time but not be part of what your checking. Function and proceure calls add time, as do looping instructions. As ugly as it might be, consider inlining you math code over and over again in a main routine. If you can't, then repeat the same math 5-10 times in each loop iteration to reduce the effect of the looping instructions. Also, try it with differnt looping commands: see if while...next is better/worse that for...next or do....while.
Evodyne
Death Adder 08-02-2005, 04:49 PM Hey Death,
I don't know what all you doing inside you speed checker, but try to minimize things that can add time but not be part of what your checking. Function and proceure calls add time, as do looping instructions. As ugly as it might be, consider inlining you math code over and over again in a main routine. If you can't, then repeat the same math 5-10 times in each loop iteration to reduce the effect of the looping instructions. Also, try it with differnt looping commands: see if while...next is better/worse that for...next or do....while.
Evodyne
I should have taken the printf's out and turned off optimization. Then all there'd be is math and loop instructions. C turns loop instructions into machine code so efficiently that I don't think that's a problem. If you look at the code you'll see that really everything is pretty spartan and not much is going on that could influence the results. I could inline the math code a few times but I'm reasonably sure I understand the results and that the program is working like it should.
stupidog 08-05-2005, 11:34 PM Loved your speed test though I did have to tack on a getch() at the end to see the double result.
int = 2.296
float = 4.547
double = 4.672
This was on a dual processor (1 gig each) using XP Pro.
Death Adder 08-21-2005, 09:34 PM Just a little update on the gcode solid viewing program we were talking about:
I've been checking out the various GUI frameworks that could be used- MFC, QT, and wxWidgets primarily. I think I'm going to start coding up a test of the simulation stuff we've been talking about. Eventually I plan to come back to the GUI frameworks. One will have to be picked. I'd like something cross platform. That takes MFC out but leaves QT and wxWidgets. I don't know which to pick yet. Anyone have any suggestions?
tastefulasever 08-28-2005, 09:30 AM Has anyone considered using Blender as a starting point?
Before you read any further, know that I am an open-source nutball. I haven't had any proprietary program installed on any of my machines for nearly a year.
But please, don't let that affect your judgment on what I now present.
What is Blender?
Blender is an advanced cross-platform (doze,mac,*nix), open-source, professional 3d animation program, with built in game and physics engines that would be useful in machine simulation.
If you don't have Blender, get it. Latest release is 2.37.
blender.org (http://www.blender.org)
Why write CAD/CAM scripts for Blender?
Blender already has superb rendering capabilities, and a great user interface.
Blender has a built-in Python interpreter that can control almost everything inside of Blender.
The Python programming language is easy to learn, and easy to code in, and very powerful.
python.org (http://www.python.org)
(Blender uses python 2.3)
There has been some amount of talk about CNC and CAM related subjects in the Blender forums.
A thread (http://www.elysiun.com/forum/viewtopic.php?t=22453&highlight=)
Another thread (http://www.elysiun.com/forum/viewtopic.php?t=32249&highlight=)
One more thread (http://www.elysiun.com/forum/viewtopic.php?t=45172&highlight=)
The Blender community is huge and supportive of any efforts to provide professional software for hobbyists and average Joes.
Problems...
Blender supports units as low as .001, which is fine for millimeter; maybe someone will need better in inch.
Blender does not currently have a CAD-type interface.
Why reinvent the wheel?
There isn't a really great reason to hack out a new rendering engine or 3d environment, when Blender already has a great one. And it would be cool to see how your project could actually look in real life, before you machine a single part.
So what does Blender need?
Blender needs a CAD interface scripted for it. I've started on that project already 2 weeks ago, but I'm a slow programmer.
Blender can be made to create drawings that have better than .001 unit resolution within a CAD script.
Blender needs scripts for toolpathing, and g-code generation for however many axes one may be using.
What's good about any of this?
We don't have to worry about the 3d engine.
If there are features we would like to implement, someone can (relative to starting from scratch) easily add to a script, or write another script, because Blender's application programming interface to Python is fairly simple and well documented, and that means that we don't have to work as hard at getting more people involved in the project, or explaining how our scripts work.
Scripts that could also be made for Blender include: CNC operation simulation, automatic toolpathing, machine design and simulation, machine configuration, tool libraries, materials libraries, pretty much anything that any other CAM programs have, and more.
Because there are so many people between CNCzone and Blender, there is greater chance that more people will get involved, so features have a larger likelihood of being implemented.
That's my $2.50.
Peace.
ger21 08-28-2005, 10:16 AM Just a little update on the gcode solid viewing program we were talking about:
I've been checking out the various GUI frameworks that could be used- MFC, QT, and wxWidgets primarily. I think I'm going to start coding up a test of the simulation stuff we've been talking about. Eventually I plan to come back to the GUI frameworks. One will have to be picked. I'd like something cross platform. That takes MFC out but leaves QT and wxWidgets. I don't know which to pick yet. Anyone have any suggestions?
Don't hold me too it, but I believe that the author of MeshCAM uses the Widget thing. ;)
Death Adder 08-28-2005, 07:18 PM Tastefulasever:
Thats an interesting idea. I hadn't thought of using Blender. There is the possibility that it would work. I might shy away from it only because it's big and bulky and not well known to be very user friendly (at least at first... it's certainly not very intuitive). But, it is well definied and extendable. I think that it's something we should probably discuss farther.
Would you be talking about using it for CAD or CAM or both? I think it's much better suited for use as a CAD program than CAM. It's possible it could be used as a framework on top of which a solid cutting simulator could be built. I think that such a thing might end up being very slow though.
tastefulasever 08-29-2005, 04:38 AM Death Adder,
You are right that Blender's user interface is definitely not beginner friendly. But once the learning curve is over, modeling becomes very quick. Also, the proposed CAD interface could be much more intuitive, and is probably the way most CNC operators would use the program.
Blender has built in support for animation, using either paths, keyframes, or motion curves. This should be more than adeqaute for cutting simulations, no matter how many axes are involved.
For example, the cutters path would naturally be guided by path animation, and cutter tilt or lathe rotation would be handled by motion curves.
I don't think that the simulation will be slow, because Blender is known for being one of the fastest pro 3d animation programs. Faster and lighter (less than 5mb download) than Maya, 3DSMax or Lightwave, which are some of the most popular proprietary animation softwares.
I think that Blender would be faster than MasterCAM, which is the only pro CAM software that I've had any experience with.
Blender doesn't need to have CAM scripts, as any CAD work could be exported, but that isn't very convenient. The cool thing with scripts is that you can run them one at a time, so you never have too much resources dedicated at once.
Anyways, I'll upload the CAD interface when I finish a few basic functions, so anyone who uses Blender can try it out.
In any case, there is a real need for a comprehensive opensource CAD/CAM solution.
Peace.
tastefulasever 10-08-2005, 05:05 AM Much later than anticipated, I have made some progress on the CAD interface script for use in Blender. However it is still far from complete.
The script can be downloaded here: http://branerd.net/pycadblend.txt
You will probably have to change the file extension from .txt to .py
And a Blender forum thread I started for the script is here: http://www.elysiun.com/forum/viewtopic.php?t=51114
The thread covers what works at this point.
You can download the latest version of Blender here:
http://blender.org/cms/Blender.31.0.html
Be aware that there is a learning curve when learning any advanced 3d application, and Blender is not an exception.
|
|