View Full Version : Why Open Source????? A White Paper. FLAME away!
weimedog 03-24-2006, 11:05 AM A "White" paper:
Prolog:
(A very long opinion....could bore you, annoy, entertain, or even
excite..depends. Just a Farmer's opinion on how the Shareware/Freeware community
can make CAD/CAM/CNC package that would make serious impact in this business...
please excuse terminology....I'm more used to talking about equine issues,
trucks & tractors, and dirt bikes than CAD/CAM!)
Goal:
I would like to see a shareware community where programmers can show case their
talents and develop a suite of capabilities that can compete with anything in the
business today. Why do that? Same reason open source "vbulletin" exists...brings the
business back to the programmers where they can sell services directly to
businesses over the internet. Eliminates all kinds of baggage in the CAD/CAM and
Graphics types of business. Winners are the innovators and programmers along with
a customer base that enjoys the lower cost & greater pool of talent to support
these types of products and services.
How could this happen? Learn from history. Many of the current successful business
built a product & business model assuming third party development to add to
capabilities and therefore market place. The first part of the puzzle has to be
a development environment that includes things like standard database utilities
with standard API and/or command interfaces Shareware programmers can use to
"plug" their ideas into. A "model" to look to is those many modelers out there
that have a full set of database creation and management. Think of all the App's
that run within the Autodesk Environment, ACIS or Solidworks, etc. Why not have
a share-net modeler that has those same types of database, modeling, IO, graphics,
picking things available for developers?
Guts:
How might this look?
1) Start with a standard database environment that all Shareware types can use to
include the following type extensions:
a) Data types to include Geometry from line,arc,spline, surface types, solid
constructions of the base geometry types, toolpaths as geometry, coordinate
systems as geometry, etc.
b) Save/restore functions in a public domain format....pedes, iges, or from
SCRATCH!
c) create, delete, and manipulation functions such as copy, rotate, mirror,
translate, etc.
d) The ability to store coordinate systems as geometry...(and also ability
to attach to all geometry types, including toopath entities and SUB
entities)..(ie, a series of nodes in a spline w/ I,J,K info that could be
both part of a toolpath or raw geometry.
e) extendable for shareware types to add their own geometry/data classes...and
then have the benifit of all the data base utility functions already DONE..
f) Define a standard way to evaluate and output geometry/entity classes (NEVER
know whats in the future!)
g) Provide a standard style of "API" for shareware types to follow as they
extend these functions. Might use the CLfile out, save/restore as the samples.
h) Have a display & picking capability using as "industry standard" a display
mechanism possible. Allow picking to be either extended or replaced by
shareware types, but have a working sample.
The idea is these standard type things are taken care of and share ware/ open
source contributers can spend their time building neat new and useful functions
to evolve the overall package into something that can compete at ANY level.
IF there is an environment out there ..... start there. I'm not familiar
with an open source solid modeler or that type of development environemt.
2) Having an open architecture is the key...must be able to allow extentions.
Especially in geometry types(classes) and toolpath types. My particular
preference is using linked lists of objects. For example a linked list
of objects defining a toolpath. The "Begin" object has some basic information
including Partno, Machine number and just general text info..but it points
to the next which might be a "Motion" object the has text & numerical info
like feedrates, and points to geometry. The geometry can be edges, lines, arcs,
splines, loops (lists of curves), etc. The toolpath evaluation to create
CLdata info needs to loop through these lists and evaluate each object to
define data for output...but I'm getting ahead and its JUST an opinion. The
reason I like that concept is because it allows the "output" evaluation code
to be a module AND therefore depending on the application could output
something like a CLDATA files or be drivers for servos....with ability
to modify those tool-object with intellegent feedback...again I'm off subject.
(Also notice "Motion" vs. "Cut-to"....never know what you ant to DRIVE with
that style entity!)
3) Need to avoid Patent or liscensing issues & May need to have either a public
domain modeler to start from or may need to build from scratch...organizational
head ache!!!! Didn't "Padl" used to be public domain? Is there anything out there
complete & robust enough to start with? How about from NIST/DARPA and other
research efforts? Also needs to be a safe place to store this modeler thats
accessible to the shareware community. Needs a proceedure where forum
"moderators" can review code before they add to the pool...guarantee once
something like this gets capable enough to be useful there will be those
who want to kill it before it grows.
4) Need a standard post processor type function either embedded or have a simple
CLDATA output/ G-post concept in shareware. Makes the system useful. Make them
replaceable and/or extendable. This along with a part save and restore function
makes the system useful AND gives shareware developers a sample of code
to work with when they build their own "output" interface drivers.
5) Nice to have a GUI builder & have integrated with standard display & picking
functions. (I remember Cimlinc's and it allowed a tremendous amount of ownership
at the user/customer without turning into a maintenance nightmere). Again to
be a sample but it also would allow endusers and hobbiest the ability to
customize groups of functions and therefore have ownership of their own
toys...a huge interest magnet.
6) Have a simple milling areaclear and profile function for an example for shareware
types to follow. (Along with toolpath entity to post or to CLDATA out to post).
A hook to get endusers to spend time as there is useful functions. More
critical is the "template" for shareware developers to use as they build
toolpath and other geometry creation type functions. Shows interaction
with the database, graphics, picking, file in/out, etc.
7) Have a simple Lathe rough & finish function as an example. Ditto above as
the geometry of "Lathe" is way different than milling functions.
8) Have a simple modeler to make things like lines & arcs with trimming as an
example to add geometry function. Ditto again to show how new geometry
modeling functions can interface.....
9) Have loop or profile entity types defined. With offset functions. This
is one of the hardest things to get right. If there is a robust and reliable
set of functions that shareware developers can use and grow, things will
happen MUCH faster.
10) Have some trimming functions defined...certainly enough for those guys doing
profile and areaclear type toolpaths to use. Ditto above again for
motive.
11) have some slice (surface surface intersection routines) ..yea...ditto
12) As shareware developers add functions, have the functions (like slicing) in
a form they can be used by other requiring to slice and return data so
results of one shareware project can accellerate another one...AND maybe if
there is enough communication different guys with similar projects can split
up base functions in the beginning of this effort so everyone wins
.......almost like a company.
Summary:
Guys, if you build an environment like this, people will be able to contribute
and make a system over time that can rival anything out there....then you
independent types will have a customer base as the industry see's this as a
real option and wants to HIRE folks to help train, setup, maintain, customize
etc. Same as vBulliten, and Network environments have been in the past. Same
as a whole host of modelers have done in our industry but without the high cost
of entry and staying with a modeler for you in this shareware world.
Also make this where it can creep into the GIS world and the marketplace will
be far greater than anything we have ever seen in the CAD/CAM/CAE world.
Those GIS guys are growing in a similar way as we did...its about data,
geomemetry to display, manipulation, inquity of data,display of info derived
from that data etc. to build businesses around this huge expanding database
that is the GIS world.
One thing I know we all need to realize, no one in the real CAD/CAM
business world see's shareware as a viable solution or threat (same thing)
because there isn't a coordinated effort or even a standard enough
development environment conducive to the development of a full function
suite of CAD/CAM solutions ...yet. Figure out how to build the foundation
first and the CAD/CAM world will change the way it does business.
Several businesses predicated their plan with selling an environment so
3rd party developers can add to their set of functions; instead of being
competition they get those developers to invest in expanding their
marketplace! Kind of like the operation system concept for graphics
applications. WHY not build one in freeware/shareware? Give a place
for the independent types to build and sell their talents without
being tied to these other licensing anchors. :boxing: This would certainly
change the business models for some wouldn't it. The web is a wonderful
sales and marketing tool.
By the way...might be worth PAYING those maintain a Bulletin Board
for tracking all this!!!
Who knows, if you out there in on the web make this happen; maybe one
of the existing products will tumble out from behind its corperate wall
for every one to play with...but there has to be a reason to drive one
out! (Maybe a share-ware develpment package option...what do you think?)
Also think how much simpler data transfer in this CAD/CAM/CAE/CNC/GIS
world would be if one modeler became the standard for developers...
PS:
Back to the horses. Need to "muck" the stalls and work a broken down
Race horse with an amazing history. Just makes me sad to see how much
they give over their racing career only to be tossed out to feed the
French! (They really have done a good job of understanding the CAD/CAM
world haven't they? And no I don't have anything against the French..
just don't like seeing dedication rewarded in that way (horses!))
pminmo 03-24-2006, 06:59 PM http://www.opensource.org/index.php
http://www.linuxcnc.org/
Some of what you say, reflects a point many people miss. It's all about data.
"build it and they will come" so to speak. if somebody wants I'll setup part of my website for such a project. i.e. dedicated forum, repository... I've got more space than I will ever use.
vacpress 03-24-2006, 07:09 PM one problem with this is that it seems to often take 1 dedicated programmer who writes a core dataset, something sooo attractive and usefull that others cannot help themselves but contribute...
something like GIMP is a good example...
rippersoft 03-25-2006, 08:36 AM Maybe the answer comes in taking open source software and re-interfacing to achieve a new product. Reinventing the wheel has always been a problem in software development.
Look at XML and the attempts to make it the savior of Ebusiness. There are XML standards for all sorts of data, including CNC. XML may well be the data model you need to have a seamless transfer between products.
An example is XMI used to move UML model data between different development products like Rational Rose, ArgoUML, etc. The standard takes everything done to the gnats behind. However, you can describe your model using only the minimum, and that is OK.
I have alot of experience with this and would be willing to suggest and/or develop an XML model of this dataset. Can someone start describing the dataset?
RipperSoftware
rippersoft 03-25-2006, 11:12 AM Let me add that AutoCAD uses a XML format called DesignXML. This is supported by AutoLisp XMLin and XMLout.
There are several opensource projects that attempt to deal with this standard and convert to other standards like SVG. There are opensource graphics programs that read SVG.
What about opensource CAD and CAM using DesignXML?
RipperSoftware
rippersoft 03-25-2006, 11:37 AM Here are some open source products:
OpenCascade http://www.opencascade.org/
BRL CAD from the US Army http://www.brlcad.org/
SagCAD http://sagcad.sourceforge.jp/
CAM Simulator http://www.codeproject.com/docview/cam_simulator.asp?df=100&forumid=3323&exp=0&select=873174
FreePCB http://www.freepcb.com/
ger21 03-25-2006, 12:03 PM Let me add that AutoCAD uses a XML format called DesignXML. This is supported by AutoLisp XMLin and XMLout.
Not in 2006, or it's undocumented. Nothing in the helpfile, and not in the list of Autolisp functions there.
A search of Autodesk's discussion groups seems like it was dropped with AutoCAD 2004.
NC Cams 03-25-2006, 12:27 PM In a theoretically perfrect society, your idea would probably gain traction and move.
However, when a group of people can find that they can make MONEY at creating software, things change and do so quickly.
Besides, things like food, clothing, houses, cars, HEALTHCARE INSURANCE, gas, taxes, etc take their toll on "open source" projects. Somewhere, somehow, somebody has to make a living or an income off some part of it - nothing is free - everything has value. Perhaps the most valuable thing is TIME and time spent writing code ultimately deserves more than recognition.
All the computer stuff that has been done was either an offshoot of governmental/military pr0jects and/or engineers who worked in the industry who spun off what they learned into private enterprises. Why? Usually because the "suits" didn't let them be creative so they did it on their own.
It takes money to finance development. Taxes and/or industrial grants fund university based development and private industry finances code/technology that is developed for sale.
There are many projects that become "open source" due to any number of reasons but somehow, somewhere someway, somebody's bucks paid for the seminal roots of the works. "Hobby development" only goes so far, especially when someone down the line will use it to make a profit - again, DIY only goes/carries so far as many folks would love to make their hobby their profession. I am lucky enought to make a profit at mine but as lucrative as it is/can be, it ain't enough to live off of (yet)....
Having voiced the capitalistic mantra, I'd love to hear a reason/explanation how to get around it.... especially in todays economy in my industry where the stalwart OEM's are pretty much all near bankruptcy....
WayneHill 03-25-2006, 01:06 PM In a theoretically perfrect society, your idea would probably gain traction and move.....
True. Another thought is programmers use different tools to create their work. I program in Delphi with custom component tool add-ons. Others use C# and C++ ... etc.
Any open source project might require that programmers use the same language. However another option is to build a DLL library of functions that most languages can create.
The operating system on which to base is another issue. WinXP is the flavor of the month until WinVista is stable. I no longer support the Win98 platform as compatible for my applications.
Linux is unknown to me. And I like it that way :)
I would like to contribute to an CNC Open souce program.
Ref:
http://www.imsrv.com/mtb/
http://www.cadcamcadcam.com/index.asp?PageAction=VIEWPROD&ProdID=4
http://www.cnczone.com/gallery/showphoto.php/photo/2490/cat/500/ppuser/3155
weimedog 03-26-2006, 07:57 AM A few reasons why it is absolutely possible and as time goes on chances increase
it will infact happen.
1) So many companies have come and gone...the pool of people who have
done this type of thing increases with these industry changes.
2) Some of the big guys are close to financial distress and need to find a different
business model....might pickup on this as a way to shrink their foot print.
3) If they don't and crash and burn, where do their ex-programming and application
types scratch their itch?? A way to turn former work skills into furture jobs. Or
at least have a place to keep that interest alive in a hobby format.
4) The need for some (many) small manufacturing / design houses to cut operational
expenses will drive them to find solutions without yearly liscensing fee..don't
want the operational overhead showing up on the bottom line...
5) The inovation side of this CAD/CAM world is ABSOLUTELY stagnant. Inovative types
Need to have a way to "explore" without an impossible entry price...and mystic
built up from years of having the big guys control inovation & distribution of that
stuff. A viscious circle....this is a way to break it once and for all.
6) It would be FUN to have it work and go make impact..especially for the CAD/CAM
refugees from all that past history & especially for those who infact were inovators
from the past and are still around like "solutions" looking for a problem! Build an
environment where they can be up and going quickly and the flood gates
will open with neat new App's....(Take the infrastructure part of the development
away so we can focus on....application stuff...the FUN stuff)..programmers would
LIKE that if they could afford it...kinda like software LEGO's.
Buy the way, the past may have had the fun and ability to inovate because
the industry was new....I have learned over time there is NO shortage
of VERY smart and inovative people..I would love to give the "new"
generation an environment that was as much fun and exhilerating as we had. Isn't that every parents wish?
7) The researchers of the world have been trying to take essoteric thought and put it
into a forum they can show off with since the beginning of cyber time. They NEED
something like this that for REAL...need a way to show off their research proof
of concepts....they don't need to keep re-inventing a development environment as
it is expensive. They ALSO don't need to be continually tied to someone elses only
to see entire market segents to their research closed out because they are tied
to a specific modeler or development environment.....
8) General industry has been fighting the data transfer world since the beginning...
this is the only way to solve it for the future.
What are the real hurdles?
1) Concensous of a language.
a) My thoughts is the language needs to be one that has a PAST and will have a
FUTURE. The past to draw those out of the wood work who have developed
and would like to revisit that part of their life ...for FUN.
The future so that the legacy of that past will be supported and with new
plateforms as this hardware revolution continues. Also those who invest time
now will have their evolving legacy supportable in the future.
The language doesn't have to be flashy. Just stable as hell and accessible.
2) A FEW people agreeing on an architectures....doesn't have to be a world wide
political event. Just a few who can design and then implement enough as I had
layed out above to break the "infrastructure" barrier down to where CAD/CAM
functions can have a place to live in Shareware all can use.
Having an environment thats useful will do two things: Will encourage new
development because its easier and more instant gratification. Will begin to
guide how application extensions are architected....catch twenty two isn't it?
BIG responsibility!
Oh yea...in a useful environmet with a functional capabilty set along
with a packaging that can infact be used in the real world....business
will start wanting even NEEDING to consider this option and then the
down stream services business model will become real.
3) Those FEW people staying on focus for a while....almost like a company?
Again the thing that has hurt "shareware" type things in the past AND the difference
between "shareware" projects and companies IS that direction and focus on
infrastructure up front.
My bet is there is WAY more talent and capability cruising this type of place than
most companies have in thier roster....focused and results will happen.
Why again do something like this???
Look at all the techy types making a living off the internet. Independent small business
supporting local business and also selling their stuff over the internet. Stuff like
websites, bulletin Boards, support services, even products. This could be the same (on
a smaller scale) but similar in structure. Gives a place for those who ARE going to be
on the street as the industry contiues to shake out a place to make a living without
the anchors which are...drifting. Give a place for those ON the street to play and keep
their skills sharp. Gives a plave for those who been there and moved on but still are
interested a place to play. Gives a forum for discussion thats REAL and the open
sharing of ideas can really turn into a 800lbs gerilla of a software development
environment and therefor set of applications...
weimedog 03-26-2006, 08:14 AM I guess the other thing that has struck me is looking at this web site and seeing ALL
the excitement and inovation around CNC....the software side needs to follow. Right
now looking at this industry after 10 years is SO dissapointing!!! its really a case of SOSDD!!!! Amazing.
More reasons...lets say this infact does happen....there will be a feeding frenzy when the products start becoming accepted in industry to migrate business to the new. Yet another business plan to sell services.
The FIRST BIG GUY to figure this out will have a leg up on the competition
as THEIR environment and therefore services will be more in demand.
It wouldn't suprise me to see one or more existing S/W companies see the logic of this as a way to get back into the game and do our work for us...imagin a competitve battle to get development environments into free ware because it will be infact survival...the only way for that to happen is to start and make this real. Then there is no risk. Either one is up and running and the rest need to follow...or if one gets close an industry developed environment will pop out that is better as a survival/new business stratagy. Either way everyone wins. I mean EVERYONE!
No one ever thought IBM would dump the PC business and go service 15 years
ago either.
ViperTX 03-26-2006, 09:59 AM Just a note IBM never wanted the PC business....it was started by a group within IBM..which was quickly eliminated....
Regarding "Open Source" the only person that believes they win is the buyer....well at least until they start looking for support or enhancements....all the big players that have "Open Source" as their corporate strategy have all learned that they must charge for something.....so they create development tools that are suppose to help deal with the "Open Source" environment .....
It absolutely amazing how many software programmers work on "Open Source" stuff....I suspect most do it on their own time while working for someone else....just think..."How does someone support themselves, if everything they create is free?"
rippersoft 03-26-2006, 10:18 AM There are a number of behind the scenes supporters of open source developers. Cas in point is Mono. Mono is .Net for Linux. Behind the scenes was Novell and now very prominate.
Open source may not be the answer for everything, however, it is a concept in which many people can participate in product development that they are interested in. The benefit is that the product is shaped by consensus of those involved.
On this site we have seen a combination of source available, freeware, shareware, and commercial products. Alot of us have participated in the development and the result has been better and more usable software. Look at CamBam.
RipperSoftware
weimedog 03-27-2006, 02:46 PM Ripper, Open Cascade looks like it has all the fundementals. Looks like its the fall out
from Matra Data Systems....very good stuff in its day with a funky interface. Strim
was some seriously powerful stuff.
Matra's solid modeler is structured very much like the old Romulus and ACIS B-rep
modelers from the past...bet it would make an awesome foundation...
What do you guys think? There "CD" is 89 Euo's...I have no Idea of the exchange
rates...
Are there other options that might be better?
pstockley 03-27-2006, 03:00 PM I think your big problem will be finding enough skilled individuals to be able to contribute to the project. Successful open source projects seem to be either programming tool or internet related. There is a vast pool of programmers who have interest/skills in these areas. There is a relatively small number of programmers with the training/experience to develop CAD and CAM software. I used to be a programmer for a CAD software company and I can tell you it is way more complicated to write something like a solid modeller or CAM package than a programming tool or typical internet website (I've written both of these kinds of software).
lerman 03-27-2006, 04:02 PM BRLcad (previously mentioned) is probably a good start. It has a data representation that seems reasonably open. And it has a bunch of converters iges, dxf, ... they could be used.
Ken
weimedog 03-28-2006, 10:17 AM Pstockley, You are correct, its not only EXTREEM skill intensive; its time intensive. Thats why looking around for a foundation makes some sense. Even then its hard to find technical talent who can deal with that level. Been on the vendor side of that business as well...but I have to wonder if there isn't enough with that back ground who cruise these sites and might get interested. That is the purpose of this excercise..to find out.
NC Cams 03-29-2006, 09:46 AM Two words - mission creep or creative difference.
Lets say you start out with a basic system that is open source. As the development takes place, people start to move in different directions. That INEVITABLY results in different people fighting for the same resources to do different things and/or complexity in search of a need.
ANYBODY who's ever tried to resolve an hardware interrrupt conflict with a PC knows what I'm talking about.
Then you get the "but if I had a bit more gigaflops of widgit glom, I could do existential morphing of dirigibles if I use the fidoodle port like this which surely EVERYONE will need to be able to do eventually and will have to do it MY WAY"..... yeah, right....
Trying to maintain discipline in an open source environment is like herding cats - ain't gonna happen.
This is why there are SO many CAD systems and why they are no longer capable of talking to each other. It used to be that one could transfer data via IGES. In my industry, a lot of the suppliers and the OEM's no longer support IGES an DEMAND that the data be in native format ONLY. It was a "screw that, I"m gonna do it my way...."
Heck, even the government can't come up with computer/software systems that can talk/exchange data with each other and they (allegedly) have iron fisted control over their systems. Hmmm the old "power and control deal" rears its ugly head AGAIN.
As soon as you have 2 ways of doing something, one of them is gonna be "wrong". Ditto that when you have more than one person involved in development of code/product/process etc.
Take the servo vs stepper, ball screw vs acme deal and extrapolate that to software. Same babe, different dress.... As admirable as the thought/intent, creative differences combined with the useage target will keep it from being a focused, successful project.
Now, if there was a tightly regulated "core" that had modules that plugged in to add this or that feature that had a regulated/dedicated communication protocol/bus, you'd have the foundation for something that you're looking for. Create away BUT you have to communicate like THIS or else you can't do it...
This sort of deal was done in the model train industry with a concept called N-TRAK if I recall properly....
WhiteTiger 03-29-2006, 12:12 PM Of course, discipline can be overdone. The problem with it is that there have to be *individuals* positioned to exercise it, and those individuals are as subject to the "big blue" error as anyone else is to any other sort of judgement error.
Open source at least has the advantage of precluding the self deluded from exercising a stranglehold. Everyone else is perfectly free to ignore them and do something "impossible" if they feel like it.
I suspect there is a reason why every web server operator I know is running linux and why they laugh uncontrollably when someone attempts to promote winblows or mac os for servers.
Tiger
WayneHill 03-29-2006, 12:35 PM NC Cams,
Herding cats is possible if they are hungry and you have a can of tuna fish. The goal will be something that everyone wants. Open source CNC. Where to start?
All the people posting here might try reading a recent copy of the "Economist", I forget which date, that has an extensive article about Open Source software, business practices, etc. It has a good explanation why Open Source endeavours often falter, get diverted into mainstream 'for profit' businesses or wither on the vine of unrealistic, overly idealistic expectations. The reality is nothing provides long term motivation and pays the bills like a reliable pay check. Anyone who takes on the responsibility of investing in and running a business so it makes money and can write the pay checks as an ongoing endeavour also insists on controlling things via IP protection so they can extract future benefit from current efforts.
WhiteTiger 03-29-2006, 01:02 PM Imagine that... an economics trade mag taking the stance that cash flow is going to govern... who'da thunk? ;)
(couldn't resist that one)
Tiger
ger21 03-29-2006, 01:14 PM ...but I have to wonder if there isn't enough with that back ground who cruise these sites and might get interested. That is the purpose of this excercise..to find out.
http://www.cnczone.com/forums/showthread.php?t=12138&page=1
Imagine that... an economics trade mag taking the stance that cash flow is going to govern... who'da thunk? ;)
(couldn't resist that one)
Tiger
The funny thing is that if you want to have a viable operation and stay in business over the long term cash flow has to govern. I have not yet come across a landlord who will let me occupy premises for free or people who will work for nothing.
WhiteTiger 03-29-2006, 02:12 PM This site is full of people who work for nothing, monetarily speaking. All the assorted free plans and how-tos didn't come from nowhere. They are the product of people who do things for *other* than cash motivations.
Interestingly enough, I see there are some who are (gasp!) utilizing the free products in various levels of commercial enterprises. Again, who'da thunk? ;)
Tiger
This site is full of people who work for nothing, monetarily speaking.Tiger
Nonsense. What they do on this site they may do for reasons not related to cash rewards but this is not their "work" in the sense of paid employment. I have read numerous posts in which people mention their employment activities such as medical doctors, financial advisors, machinists, purchasing agents and others; this site is their recreation or hobby. Go and find the Economist article and read it; I used the word 'often' because not all opensource ventures fail, however, the ones that do succeed such as Linux often seem to do so because some aspect of the venture tranforms into a mechanism whereby a level of discipline is set in place so it does not bog down in endless feature creep and where some income can be generated to provide customer service to people who want to use the product but do not have the knowledge or desire to become all involved in figuring out arcane instructions.
WhiteTiger 03-29-2006, 02:44 PM Time, effort and resources expended in the production of a desired outcome. This is work. Employment is a separate word, with a distinct meaning.
I stand by my assertion that many of those here *work* at least in part and on occasion for reasons other than monetary gain, and that the fruits of those labors are then in turn applied by others in at least hopeful pursuit of cash.
The parallels to the open source discussion seem obvious to me. King dollar isn't all there is :)
Tiger
NC Cams 03-29-2006, 04:52 PM I worked at an engineering job to pay the bills while I learned the trade and how to pound on valvetrains to within an inch of their lives for many years.
I used the money from that job to buy the tools needed to do cam designs and analysis and ultimately a cam grinder as a HOBBY with hopes of turning it into a business.
Having wore out my welcome at any number of well paying jobs, I 'm now using my HOBBY to eek out a living as a business- and coudn't be happier in the process.
My inital cam designs did wonders for the ego. They helped teams win and win BIG to the tune of nice budgets and nicer bonuses. I got a "thanks" and then they cut off my business the next year due to a free parts deal - "you got to understand, its just business".
However, the realities are that the house payment and taxes and utilities still NEEDED to be paid. I also do not have health insurance and a recent trip to the doctor resulted in a prompt call from the finance dept wanting to know how they will be paid. Forget the Hypocratic oath - the ******** want money your money.... too bad there isn't open source health care....
Yes, hobby use is great for open source stuff but if you're in business, you can't wait for some hobbyist or a message board to solve your issues. You're in business and things need to get done - and NOW.
I suspect the guys who did linux already made their fortunes in computers and can afford to be more "contributive" to the dissemination of infformation via open source. Sadly, I can't
Thus, the rest of us have to pay our way using commercial software as we don't have the skill or time to wait for open source whatever to catch up/satisfy our needs. Compare Mach 2/3 to AjaxCNC or Anilam and you'll get the gist of what I'm implying.
Don't get me wrong, Mach is great for many peoples needs. Sadly, it doesn't satisfy mine which is why I have to buy commercial. Haven't seen any open source system that satisfies my needs/supports my capabilities and I've looked at many in many non cad/non Cnc technical disciplines.
Linux is supposedly used for the following reasons -
1. it doesn' involve Bill Gates and/or Steve Jobs (that alone is admirable) and
2. Linux is supposedly impervious to virus attack (better reason yet) and.
3. It was created and supposedly abandoned as useless (no/insufficient profit potenail by the creator) and then developed a life of its own once it got out into the public domain (heresay but it wouldn't surprise me).
pminmo 03-29-2006, 05:48 PM One of my users has started a thread on my site and made available the source:
http://www.pminmo.com/phpBB/viewtopic.php?t=63&start=0&postdays=0&postorder=asc&highlight=
It's older technology, written in Qbasic, but hopes to use it as a match.
WayneHill 03-30-2006, 09:50 PM Linux is supposedly used for the following reasons -
1. it doesn' involve Bill Gates and/or Steve Jobs (that alone is admirable) and
2. Linux is supposedly impervious to virus attack (better reason yet) and.
3. It was created and supposedly abandoned as useless (no/insufficient profit potenail by the creator) and then developed a life of its own once it got out into the public domain (heresay but it wouldn't surprise me).
1. Build a better operating system and the world will be at your doorstep.
2. Linux is as vulnerable to attacks as other OS's. Windows is a bigger target to shoot at.
3. See #1.
WayneHill 03-30-2006, 09:55 PM Stepster is another open source DOS program for running CNC's
http://www.metalworking.com/shareware.html
NC Cams 03-31-2006, 11:06 AM WayneHill: I agree whole heartedly with the "better O/S" comment.
However, DOS is just fine for some applications. Works, doesn't crash and doesn't need much in the way of CPU to run.
Word for Win 3.11 will write just as good a letter as Word for XP.
Yet, you can't run the NASCAR simulator on anything less than a lightspeed fast XP system with umpteen gigawatts of speed and/or memory.
Clear case of "right guy for right job".
The trouble is that the folks at Wintel and Apple are all hell bent on creating a new O/S that has features that clearly are NOT needed when it comes to doing CNC. Once you develop it, how do you keep in business once you reach market saturation???
It is amazing how people make a darn good living selling repair parts for 1955-57 Chevies and/or the "muscle year" GM A body cars. Yet, GM today is near bankruptcy trying to sell their latest offerings. Don't see why "legacy" software couldn't be liscensed to create a similar sort of market in the CNC arena...
That could be the case if someone took a proven O/S that has a legacy, reverse engineered it and offered a "new" one that did it open source. Firm, stable platform, proven software, cheap and affordable. Something you wouldn't have to throw out all your pc's and buy new ones to be able to run.
yes, I'm sort of talking out of both sides of my mouth but I contend you shouldn't need to throw out the legacy stuff an invest anew to stay in business - especially when it comes to controlling a machine that is only trying to move a cutter from point A to B.....
WayneHill 03-31-2006, 01:42 PM DOS can have the look and feel of windows without the overhead.
What OS and language would you like?
I am a fan of BASIC or Delphi on a Windows or DOS environment.
SVG is something to take a look at.
( I had shoulder surgery (RC) on Monday and having trouble typing one handed. The pain..the pain.. Where's my meds?)
Carel 03-31-2006, 02:00 PM In the embedded world there is a general consencus that the intel PC-processors (Pentium, Celeron etc.) are not suitable for real time applications. For driving a CNC machine and then especially a stepper driven, a dedicated G-Code interpreter, without OS, would be the right choice. A Wintel PC is very suitable for supervising this, as you have the Graphical User Interface. I have such a system running, with the PC for programming, jog and DRO and the embedded processor digesting the G-Code and driving the steppers.
Carel
NC Cams 03-31-2006, 02:19 PM The F.O.C. (free of charge) "dosshell" found in dos 5 and above seems to be nice and stable - psuedo GUI and quite adequate for point and shoot work.
The point about real time use of DOS is a good idea - I'd stay clear of Windows as you don't need it grabbing hold of processor when IT feels like it. Besides, it (dos/dosshell) is darn near free. I doubt even the tight fisted money grubbing folks at M/S would harp TOO much if it had a resurrection. There are so many copies out there and it is stable, why not???
I'm told that a certain name brand "proprietary" CNC system is nothing more than DOS with imbedded proprietary code to handle machine control. They do 3-4-5 axis work which means it should be adequate for 99% of most DIY CNC coding.
You got to figure that some folks will used serial control, some will use parallel and some stuff will use either ISA or PCI slot interface boards.
My Bridgeport has a DOS based "Eztrak" system and it runs just fine and the screen is plenty fancy enough for even discriminating users. The BMDC (imbedded processor/machine interface)card ran in an ISA slot with a 486 - interestingly, it run/should run many G and M and S codes.
It theoretically could have run 4 axis plus motor speed plus coolant - and it was designed in 1995 but never fully developed due to concious and perhaps bad decisions at the defunct original Bridgeport Machine (now Hardinge who's now using Anilam I'm told) NOT to make too good of a system.
Imagine what the program could do if FULLY developed on a fast machine today. Simple, reliable, CHEAP and using a legacy O/S that costs peanuts that doesn't crash (mine hasn't anyway). Too bad nobody has hacked the Extrak system and done a properly reverse engineered yet copyright respecting/skirting knock off...
Hmmm, shades of the 55-57 Chevy idea floated previously, no???
Carel 03-31-2006, 02:39 PM NCCams, so consider your BMDC as your machine operator with or without a light proprietary OS, while you operate this card with your DOS OS. The processor activities are spread at where they at their best. Hard realtime at the card, soft at the operator side, communicating over the ISA bus. Using the same protocol, you can expect the same performance from WinXP. XP would perhaps break at drip feed.
Carel
NC Cams 03-31-2006, 03:21 PM Carel: agree and understood BUT:
1. BMDC was designed for ISA slot M/B's, these don't exist anymore.
2. BMDC was NOT open source even though the system was elegantly simple/adequate for most machine/CNC operations. Even an engineer like my self could learn to use it easily.
3. Hardinge gives undue grief to anyone who triesto hack or use or improve the old code, no matter how well intended the effort is/was. They don't support it and you can't have it and they won't license/sell it off. Intellectual property protection via harrassment even when the softare is considered obsolete.
4. BMDC won't work on any m/b faster than 133 mhz. So much for using with newer/faster M/B's and/or taking full use of the design intent.
5. DOS is all but abandoned with regard to new product development. Whether it is need, wanted or not, XP is being FORCED upon us...
6. Many DOS programs are not/will not ever be ported over to run on XP based systems - DOS is "obsolete" because other stuff "works better" - not for what this thing does/could do but that's irrelevant.
7. There are DOS backplane CNC programs/O'S's out there BUT they're well hidden under proprietary "management" programs that run proprietary interface cards. So much for open source...
8. I don't know of any "generic" interface cards with the necessary G, M, S code interpreters that are sold for "simple"/legacy system use. The commercial stuff is lemming like driven to work with XP or some other Wintel beast - see item 5 above.
Carel 03-31-2006, 03:50 PM NCCams, in my examples I point to the dividing lines in software. A PC with a video card and a graphical user interface is fantastic for everything but the driving of the machine. A separate driven embedded processor whether driven by ISA, PCI, USB or Com or whatever makes it easier. I would'nt consider reverse engineering, problaby you can't even buy the parts in commercial quantities. I found the G-Code interpreter easy to program, it's easy to specify and test. No, then 3D-CAD programs, I would like to be qualified as "starter, knows 1% of what's possible".
Carel
NC Cams 03-31-2006, 05:30 PM IMO, the technology exists/existed to do open source whatever. Even the BMDC card used standard chips (PROM's, RISC chips, etc). It was the imbedded software that did the "magic".
I know of a "clean room" reverse engineer'd system that could be offered BUT the folks who did it are simply afraid of the hassles involved when the ambulance chasers start on their war paths - whether they have a case or not.
The point is that there is a lot of well intended and doable things that can be done with imbedded code, RISC chips, micro circuits, etc. Who has the time and finances to invest into doing something that labor and code intensive just so it can be "open sourced"??? I don't see how it can/will differ from a "do it for free and give it away" scenario.
Basic, quick basic and god knows how many other languages fell by the wayside as they were replaced by more powerful, capable ones - even when they were free and psuedo "open source" they didn't survive. Ditto that with hard and software.
Ultimately VERY few software code developers give up the source code - heck, I know of situations where they won't even SELL their intellectual property at a "name your price" basis. They won't support it and won't sell it. Talk about "computerized crack cocaine", that's it if there ever was it...
Human nature the way it is will only support/tolerate open source SO FAR. At some point, business sense sets in and it basically has to go commercial to survive/grow/prosper. Free stuff ultimately ends up being worth the price one has to pay for it.... Me thinks that to think otherwise is a pipe dream....
pminmo 03-31-2006, 09:00 PM Interesting discussion, I doubt that the debate over open source will end. it will be one of those look backwards in time and say yes or no to. Personally I didn't think it would last this long, but I would say it's gaining ground. I would argue that the same two that people hate MS/Intel are the foundation that have allowed it to grow. How many people are writing free code for OS2?
Defacto standards promote growth. IBM was clueless when the original PC was put out there, but look at what grew, ISA slots, DOS, Windows, AMD/INTEL and the momentum just keeps growing. Actually I fault MS for making windows too flexable. The should have defined a dozen hardware interfaces, and only expanded those when a technological leap could be made. It would have been less bug prone. Users dont care if the cpu connects to a hard drive via IDE/firewire/USB....the just want to get data to and from, the faster the better.
I keep wondering what you could do with all the horsepower of cpu's and memory that have gone to the landfill. I mean a 60M pentium would run a CNC machine with a nice grapical interface if that was all that was needed. But in reality, people want to be network connected, share files..........look and feel like their desktop pc, so they don't have to learn more stuff.
EMC has been reasonably successfull.
Ultimately if a project were to gain ground, it really needs to be object oriented, and not care what the object is developed in. I could care less what code runs Firefox or IE. But I want to be able to interface tools/objects to it.
NC Cams 04-01-2006, 09:15 AM I can recall when the ONLY computers that existed was a main frame in an A/C'd sealed off secure office. Then came the Apple II and then the PC. The computer staff had fits because they lost control as being the sole source for information.
Then the computers had to "talk" to one another.
Enter networks, protocols, e-mail and god knows what else. As the network had to have an administrator/gate keeper, re-enter the computer staff (now masquerading as IS Dept). They finally regained control of what they'd lost as the conspiracy finally evolved to its "logical and proper" inevitability. My, how the worm turns.
I don't have the latest in equipment in my shop and much of it still runs (just fine, thanx) on DOS. Yet, it still makes state of the art parts. I have some software the won't run on anything above 98SE. Yes, I can spend big bucks going to an XP compatibly system but it still won't design a cam profile ANY better.
It would me nice to have a link so that I can down/upload from my DOS machines to a central server but, in spite of a "yes it will talk to a DOS machine", we still are relegated to transport by floppy because the "experts" can't make it work (though it should) for god knows what reason. Yes, I won't buy an XP system because it won't work with my machines due to backwards incompatible speed issues.
Why not use CDROM??? Haven't found a rom burner that works with DOS and some programs are getting too big for floppy's.
My peeve is that legacy systems are/were simply abandoned. I suspect DOS code isn't even taught in computer science anymore. Yet, there is/are plenty of machines being scrapped (CNC, PC, whatever) or people are being horribly gouged for orphan technology just because "sorry but ISA m/b's are obsolete..." or you can't buy a motherboard anymore with ISA slots.
What do you think would happen if the power company changed from 120vac to 180 vac and you had to buy all new appliances every so often??? Probably hourly shootings. Growth and advancement with PC's is inevitable. HOwever, when a business (especially a small one) has to spend hard earned capital to buy an all new computer because the new software update isn't backwards compatible to a lesser powered one, SOMEBODY missed the boat and money is being spent unnecessarily on things that don't provide suitable value....
Isn't it amazing that a 2 wire phone system can transmit ungodly amounts of data between your home and a central terminal, even at 28.8 or 53K??? Imagine, 2 simple wires. Yes it isn't DSL or cable speed but its still pretty darn fast all things considered. And I'll bet that they still can do even MORE as technolgy evolves with the same 2 measly wires....
I think the computer guys need to reconsider their strategy and then watch the "Apollo 13" movie again on their laptop DVD strangely enough instead of on a VHS system (more obsolete technology) .
Especially the part where they dumped a bunch of stuff (effectively bailing wire and twine) on the table in front of the engineers and said, effectively, "this is all you have to work with, now figure out how to keep them (the astronaughts) alive with it....".
There's too much stuff going to landfills that still works but "just ain't fast enough any more". I dunno about you but if I screw up an input on a spreadsheet, the screen still updates faster with my 233mhz Pentium after I hit ENTER than I can say "Oh s**t".
At that rate, why do I need one that screws up even faster (asside from being able to run NASCAR simulator which is NOT something that needs to be loaded on computers at work or in my office)???
ger21 04-01-2006, 11:58 AM It would me nice to have a link so that I can down/upload from my DOS machines to a central server but, in spite of a "yes it will talk to a DOS machine", we still are relegated to transport by floppy because the "experts" can't make it work (though it should) for god knows what reason.
Our router at work uses a DOS control, and we can pull files from a windows machine. Not exactly sure, but it uses some Microsoft DOS networkinh stuff to map a shared folder to a drive that it can see. No machines on the network can see the DOS machine, but it can pull files from the others.
NC Cams 04-01-2006, 02:26 PM Ger21: we got a couple of network cards and have Win ME on the main PC and a DOS machine with Win 3.11 on the other.
Although both launch the software, neither can find each other and they are the only p/c's wired to each other and I don't have time to screw with the "its as easy as pie" software that nobody seems to be able to figure out.
Typical computer software - the instructions make NO sense whatsoever if you don't know how to use the program but perfect sense afterwards once you do.....
WayneHill 04-01-2006, 03:48 PM we got a couple of network cards and have Win ME on the main PC and a DOS machine with Win 3.11 on the other.
Although both launch the software, neither can find each other and they are the only p/c's wired to each other and I don't have time to screw with the "its as easy as pie" software that nobody seems to be able to figure out.
Typical computer software - the instructions make NO sense whatsoever if you don't know how to use the program but perfect sense afterwards once you do.....
The "Sharing" is turned off on the network setup by default. They have to be setup on the same network workgroup or domain.
Are you using a crossover cable or a hub/switch ? - Move this thread to the Network forum,
Another thought. Why go backward compatiable? DOS can talk to NTFS and USB with third party drivers. Have not looked for a DOS CD-ROM burner.
weimedog 04-01-2006, 05:32 PM So what is the next step?
To have enough folks decide that if something like this was to happen..its a good thing!
Then to get a list of those who can and would be willing to focus on a project. We have to define a goal....then ignore the static. Fact is any project like this is possible if there is desire and focus. We can talk around the clock on particulars of other non related but might be similar topics and miss the entire point....maybe thats the goal of some.
I would like to know from those who would like to move on something like this is Cascade is the best choise out there...right now I think its the best I've seen to date.
Then is it something everyone can get their hands on?
Would it be a better thing to re-create something like that from scratch? (My opinion is get some instant gratification first...then tackle something like that)
I wish there was something close to Cascade in true "open source" instead of a quasi open source with hooks type of deal.
If there is another environment out there that is better than Cascade...WHY is it better for a development environment? What does it have that makes it better for building a foundation for CAM software develpment? One thing any prospect would absolutly need is a way to extend the entity types to include a toolpath. As I said before my preference is a "linked list of objects" style of entity. What do you folks think?
WayneHill 04-02-2006, 12:59 AM What is "Cascade"?
Did a Google and found nothing... Not a good start ;)
lwill 04-02-2006, 01:18 AM http://www.opencascade.org/
WayneHill 04-03-2006, 11:10 AM Thank you Iwill.
Wow, 'OpenCascade' is one hugh complex program.
I think we need to start with something basic and go from there.
What is the goal here? To create a CAD to CAM interface to generate G-code?
Or a control software the CNC will use to move the machine using G-Code?
pstockley 04-03-2006, 11:18 AM That's kind of the point I was making earlier. To do anything useful regarding a CAM/CAM package requires a hugely complicated program. From what I remember when I worked in CAD, the basic package was around 2.5 million lines of code. That was before you started adding all the add-ons. The first version of the package took 3 years with more than 15 full time programmers working 60 to 70 hour weeks. And to be honest it kind of sucked, probably needed another 3 years of development to get it to be a slick product.
Dennis Bohlke 04-07-2006, 04:53 PM Why Not Open Source.
I am one of the few that actually can create a machine tool operating system from scratch. I know this because I have had clients using my software to run machines for almost a decade now.
From my research I have concluded there are probably less than ten(10) people that are capable of such a feat.
It is a daunting task to combine machine, motors, electronics, computer interface and software program into a system that will readily perform tasks that are useful and profitable.
I got the idea to do just that in 1989 and pretty much have been in hot pursuit of it since then. I figure I have about 48,000 hours invested in SuperCam and SuperCamXp.
Pigs will fly to the moon before I ever release my sources to the public domain or for that matter contribute to an open source software project. That’s because my machine tool operating system programs are my sole source of income.
I got the idea of combining a graphical AutoCad like user interface directly to the attached machine. Moving the machine carriage around is as easy as pointing and clicking with the mouse to the graphics area of my CAD part of the program. You can draw lines, circles, points and text and cause the machine to follow the centerlines of the graphic items. DXF and HPGL files can be imported and edited by rotating, scale, move, copy, erase. There are commands for swapping ends, changing order and moving to the front of the tool path list. And you can edit the nodes in complex polyline.
My latest efforts have been to create a USB to Parallel port adopter to make create a XP version of my original SuperCam program. I have considered publishing the protocol so that other manufactures can create products compatible with SuperCamXp but then why should a privateer give away his booty?
We live in truly revolutionary times. You may not have notice the significance of what has happened in our lifetimes. We are the first generation of humans that get to play with smart rocks. We are laying down the first sparkly layer in the geological sedimentation of the earth. We are the first generation that has found it is more profitable to make custom rocks than it is to work on the farm.
History is being created. One of the huge advances for mankind has been the use of tools. We now can easily create computerized machine tools for less than the cost of a used car. Personal robotics is what this whole thing is about. It’s just that the robotics is not looking quite like what the science fiction writers would have thought they would look like. A computerized wood router is a real joy to watch especially when it is making something for your personal profit. In someway it is like gathering the crops from the fields. What better way to use a robot than to make money with them, I can get my own beer from the frig.
What we need is a new way to think about machine tools and their movements. The conventional method of creating g and m code files is not the only way that a machine tool can be controlled and used. I do not feel like I am creating CNC machines, I make computerized tools.
Computer software programs are like magician tricks. Once the audience knows the trick they find it foolish to pay the ticket to attend the show. The magician soon finds himself selling soda’s at the concession when his tricks have been found out.
So I think there are compelling reasons why open source projects are domed to failure or snarled tangles of second rate code. But then I maybe wrong, but if I am, we would all be speaking Russian by now. The concept of a collective open source project smacks of Marxism at least to me. If you succeed we will hang.
The demo version of SuperCamXp, my three-axis machine tool operating system is at:
http://www.super-tech.com/root/grp.asp?p1=SuperCamXp-Demo
It will export 2K of G and M codes to a file. The command on the right sidebar bottom is EXPRTCNC. With it you can pick graphic items and cause G and M codes to be imported into a text box that can be used for editing and saving files. The release version has no limitations on exporting G and M code files.
The motion control part of SuperCamXp only works with my CamPod's. For using SuperCamXp with out a machine there is a Similation mode that can be entered by clicking on the Simulation panel in the top status bar, then the program thinks there is a CamPod attached.
I work for profit. I am a profiteer. And that’s what colors my thinking. If I were an old fuddy-dudy living off retirement I might think differently, there is a spiritual quality to endeavors that can be used by generations to come.
Dennis Bohlke
http://www.super-tech.com
me_cnc 04-07-2006, 11:05 PM :rolleyes: In reading the thread, I don't see where anyone asked anybody to give anything away. It was simply a perspective on starting an open source project. People work for a living, creating income based on work is the way the world works. Some people just want to come together and make something sharing their collective talents, i.e. open source. When you said there were only 10 people capable I thought you must have something really special, and then you called your app an operating system, I got a completely different perspective.
You must have been drinking lots of cool-aid while writing your post. :rolleyes:
Dan Falck 04-08-2006, 12:54 PM There are people who just want to take code, use it, and not give anything back. But there are also a lot of people who want to contribute and create. I think that a lot of people here like to tinker and create things. It seems that machinists/woodworkers/robotics people need a creative outlet in the software too. Open source software collaboration helps with understanding and learning.
I have been studying python for a while and am starting to understand things a bit. It's nice to be able to read other people's code and start to see what's going on. I have yet to write an application, but can do simple things like create functions for doing bolt circle calculations in python.
Dan
weimedog 04-11-2006, 11:54 AM Bingo. Last two posts hit the nail on the head.
I thought about the "Ten People" comment for a bit. Maybe Maybe not.
I can't get the last thirty years out of my mind when I saw the transition from APT and COMPAC II to the high end systems of the eighties...than watched the machine tool control folks build those first intereactive graphics controls...OKUMA with their OSP5000 series and those first generation Mazak's.....then was exposed to the DARPA funded NGC project. Watched the "operating system" concept appied to ACIS and all those companies that were building code around that environment....and now those CAM systems that evolved from the ninties that fill this bulletin board.....Man you must have been around! There was also a European counterpart to NGC out of Germany with some really smart folks trying to build functions to evaluate more complex geometry than points lines and arcs on controlers..where did they all go? Thats before we consider Fanuc and all those other control builders.
I would say maybe ten people are FOCUSED on the concept of an NC Operating system. Thats possible. But only ten people CAPABLE? Thats a stretch. Lots of very smart folks out there.
Death Adder 04-19-2006, 09:50 PM I don't have the latest in equipment in my shop and much of it still runs (just fine, thanx) on DOS. Yet, it still makes state of the art parts. I have some software the won't run on anything above 98SE. Yes, I can spend big bucks going to an XP compatibly system but it still won't design a cam profile ANY better.
My mill runs under DOS but the control software just uses DOS to boot. It completely takes over after that. And, yes, it works just fine without windows.
It would me nice to have a link so that I can down/upload from my DOS machines to a central server but, in spite of a "yes it will talk to a DOS machine", we still are relegated to transport by floppy because the "experts" can't make it work (though it should) for god knows what reason. Yes, I won't buy an XP system because it won't work with my machines due to backwards incompatible speed issues.
Well, microsoft did make networking software for DOS that allowed it to use file and printer sharing with windows machines. I've done it and it does work but you have to use the correct (and now ancient) equipment.
Why not use CDROM??? Haven't found a rom burner that works with DOS and some programs are getting too big for floppy's.
I have that problem with my mill. It's SUPPOSED to have networking but that is broke for some stupid reason (I believe it's hardware failure.) What I did was cut a hole into the controller's enclosure and put a parallel port ZIP drive into the hole. There's DOS drivers for zip drives so now I can send 100MB to the mill on a single disk.
My peeve is that legacy systems are/were simply abandoned. I suspect DOS code isn't even taught in computer science anymore. Yet, there is/are plenty of machines being scrapped (CNC, PC, whatever) or people are being horribly gouged for orphan technology just because "sorry but ISA m/b's are obsolete..." or you can't buy a motherboard anymore with ISA slots.
Well, it's supply and demand. You don't make money by selling the same thing for twenty years when your competitors are going bigger/faster/better. It's life. The computer world moves at a fast rate and it's too expensive to support legacy and/or just plain ancient hardware. And, so, the supply of older hardware dries up eventually.
What do you think would happen if the power company changed from 120vac to 180 vac and you had to buy all new appliances every so often??? Probably hourly shootings. Growth and advancement with PC's is inevitable. HOwever, when a business (especially a small one) has to spend hard earned capital to buy an all new computer because the new software update isn't backwards compatible to a lesser powered one, SOMEBODY missed the boat and money is being spent unnecessarily on things that don't provide suitable value....
It's true what you say. However, it's also life. Unfortunately it's nearly impossible to stay afloat without adding features and adding features leads to bloat. Bloat leads to slowness, slowness leads to the dark side. The only fix is to rewrite software from the ground up every so often but that will never happen. I too wish that bloat didn't make a simple text editor suddenly take a 2Ghz machine to even run properly. It's stupid but it's not surprising.
Isn't it amazing that a 2 wire phone system can transmit ungodly amounts of data between your home and a central terminal, even at 28.8 or 53K??? Imagine, 2 simple wires. Yes it isn't DSL or cable speed but its still pretty darn fast all things considered. And I'll bet that they still can do even MORE as technolgy evolves with the same 2 measly wires....
I'll bet a lot of people don't know this but DSL uses just 2 wires just like a normal phone line. So two wires can transmit around 6 megabits per second with DSL.
There's too much stuff going to landfills that still works but "just ain't fast enough any more". I dunno about you but if I screw up an input on a spreadsheet, the screen still updates faster with my 233mhz Pentium after I hit ENTER than I can say "Oh s**t".
Yeah but I also remember what CAD and CAM software was like on 100Mhz machines and it SUCKED. There's nothing like waiting all night for one toolpath to generate only to find out that you did it wrong. I wouldn't trade my 2.54Ghz machine to go back to that.
At that rate, why do I need one that screws up even faster (asside from being able to run NASCAR simulator which is NOT something that needs to be loaded on computers at work or in my office)???
Well, maybe so that you can have realtime 3D view of the CAD file you are working on, or maybe so that toolpaths generate in 20 seconds instead of 2 hours? Maybe so that your machine can run 2000ipm instead of 200? There's all sorts of reasons. Fast machines aren't evil, they do have plenty of legit uses.
I do agree however that a lot of time the system requirements for newer software are just plain sick.
Death Adder 04-19-2006, 11:01 PM Just a note,
I still am interested in fiddling w/ open source CAD/CAM stuff. As for what Dennis was saying... Well, you cannot begrudge someone for making money off of software. It's their right, it's their livelihood. But also, I do believe that it's possible for open source programs to also be good. Linux is aguably better than Windows. Granted, most really good open source apps (linux included) got that way because of massive corporate backing. That's the problem, even OpenCascade flowed out of a corporate backed program being open sourced. It may not be realistic for a bunch of volunteers to be able to beat Surfware or Gibbs but people can have fun trying. That's probably what most people understand. They ask: Why would you do it for free? And the answer is 1. to scratch an itch 2. because we like it.
And the quote about 10 people being able to do it? Hah... There's more than 10 people capable of doing ANYTHING on this planet. Whether it's programming a CNC system or doing quantum manipulation.
WayneHill 04-20-2006, 09:41 AM I have contributed code and debugging to another open source project a few years ago. It was an editor called SED for the PowerBasic language. They used common software programs in public domain and combined them to produce a kick ass program. The project was headed by one person!
http://com.it-berater.org/sed.htm
I would like to see an open source project started for CAD/CAM.
As far as only 10 people able to write a CAD/CAM - CNC O/S program - Dennis needs to get outside the shop more and meet new people.
epineh 06-04-2006, 07:59 AM but if I had a bit more gigaflops of widgit glom, I could do existential morphing of dirigibles if I use the fidoodle port like this
I couldn't hide a smile when I read that post, I'm sure most of us need more gagaflops of widgit glom every now and then...
IMO a step back is in order, firstly would an open source project be useful?
I don't think a free cnc software package would necessarily put any one out of a job (Software developers/companies) there is always choice, this would just mean one more choice.
The next thing is if the project is decided (by who... us?) to be useful and worth the effort, is there the knowledge base to carry out such a task.
Again in my opinion only, this forum last time I checked has over 31000 members, and very active ones at that, if the knowledge isnt here, it aint anywhere!
Now comes the fun stuff... what should the program/package do? The one constant that I have noticed is that there is no constant, there are more uses of cnc machines than you can poke a stick at, everyone has their own agenda. My thoughts would be a plugin based setup, where you specify down to the last minute detail what it is exactly you want to do, then the installer sets up the software to suit. Of course standards need to be adhered to, and different levels of use need to be taken into consideration - users may want to design in a program they are used to etc.
Of course it isnt as simple as writing a bit of code and handing it out, but one advantage here is that the field is VERY focused, using computers to control machinery, end of story. No other considerations need apply. Machines will have their own dedicated PC, the 3D modelling may be done on faster PC's, but as we see with NC Cams situation, older machines work just fine at the business end of the process. Software that runs on DOS is just so stable, it just isn't pretty to look at.
Now I am not the one to give a sermon on the pro's and con's of what the software should and shouldn't do, I am just another Noob putting together his first 3 axis router, but if there is enough interest in the first step - would an open source collaboration be useful? Well? If there is enough interest then what are you waiting for? If you do not think you agree with the concept or are not willing to divulge any hard earned coding trade secrets then dont get on board...I cannot imagine anybody begrudging any attempt to do such a thing on the basis they wouldn't do it, but if you have something to give...
What next? well I for one am tired and have to get up early for work so I am signing off :)
How would something like this start, polls, more threads on the subject?
BTW NC Cams, I cut my teeth on DOS based systems many years ago, we used to network our 486's with nothing more than ne1000 network cards, some rg58 and connections, and LOTS of beer for the sole purpose of gaming (Doom1!) we also HAD to be able to file transfer for various reasons, and as times progressed we did the same over the later versions of windows (at the time - win98 ) to DOS based machines, it can be done fairly easily, if you want to get those beasts networked I MAY be able to help... all those beers at the time didn't help the long term memory very much, hehe.
Russell.
lwill 06-04-2006, 11:54 PM Only 10 people?
Just remember - If you are "one in a million" then there are 11 people just like you in China!
Only 10 people?
Just remember - If you are "one in a million" then there are 11 people just like you in China!
You are missing a few zeroes.
lwill 06-05-2006, 01:13 AM Sorry, it was a badly remembered quote I heard years ago, but you get the idea.
(and I misread the chart, http://www.paulnoll.com/China/Population/population-total.html)
I have been an open source proponent for many years, and have been an active contributor in many open source projects. I have found that to make a living, I need to restrict contribution.
I have been in meetings where a core contributor for a major open source package was struggling to pay his rent and eat, while a techo from a company who has 'packaged' the product in their solution was trying to decide what colour porsche to buy.
This kind of encounter tends to sour things for you, especially when you have contributed a lot to open source.
I for one will no longer let anybody sell my intellectual capital without my profiting from it.
Agro.
Death Adder 06-21-2006, 08:50 PM Agro,
I agree. I am a big open source advocate but anyone who wants to contribute to open source should ask themselves: 'Will this take away a good source of money for me?' If the answer is yes then maybe you shouldn't do it. As you said, open source doesn't pay well. If you could make a bunch of money by selling the program instead then maybe you should.
However if you are doing it as a hobby, for the fun or challenge of it, or for your own reasons then all is good. Also, plenty of commercial companies support open source where it benefits them. For instance, IBM does a lot of open source work. It isn't out of the goodness of their hearts. That open source helps to sell servers and also kicks Microsoft in the balls (IBM and Microsoft are not too good of friends.) The bottom line is that open source has it's good sides and it's reasons for existing but a person should be careful to not give away the keys to their castle.
In my case, I've contributed to a variety of open source projects. Mostly, it has been operating systems and games. Chances are I'll never develop my own OS and sell it so contributing to one is not really hurtful to my income. The same goes for games. I don't have the time to try to make my own commercial quality game but I can spare the time to occassionally work on an open source game. And so we come to the third area: CAD/CAM apps. Yes, I want to make an open source one. But also I plan to spend time on developing one that ISNT free. Guess which one I'll have to pick most of the time? That's life and it's the reality of where a person's priorities SHOULD lie. For the curious, no one knows where the open source one will go, we haven't decided yet. But I'm strongly thinking of developing some software to aid in creating robot paths for 6-axis robots. That will be enough work to where I'd be stupid to not try to capitalize on all the hard work.
Well, I guess that's my two cents worth...
ViperTX 06-22-2006, 12:21 AM Well selecting IBM as a proponent of 'open source'......geesch that hurts......IBM has been forced by it's clients to be a proponent.....now it is struggling to make a living by providing solutions that 'tout open source, while providing a service that you pay for'!
miljnor 06-22-2006, 12:24 AM I agree you need to make money, but as far as contribuiting or not is more of a business approach than anything else.
I have been in meetings where a core contributor for a major open source package was struggling to pay his rent and eat, while a techo from a company who has 'packaged' the product in their solution was trying to decide what colour porsche to buy.
This companies aproach obviously made money from your contribuition. If you aren't capabable of this kind of action or business, then finding one that is, would probably be a win-win for you. Then you could be part of an open source and still make money.
No one said open source isn't allowed to make money, it just has an open source.
Of course making money in open source can be quite difficult and you have to be really creative to pull that off.
andy55 06-27-2006, 11:35 AM I have taken a look at some of the latest programming tools and found Python (1). It has wxPython (2) for GUI building and pyOpengl (3) for graphics. All of this is open source, object oriented, and runs on the most common platforms (Windows, Linux, MacX).
There's also something called Boa Constructor (4) for building GUI interfaces.
anyone else interested in opensource CAD/CAM think that these tools could be the basis for a collaborative project ?
I would be mostly interested in the CAM part (creating toolpaths from geometry created somewhere else), but possibly also a relational-geometry (5) /parametric CAD thingy.
The first thing to do would be to learn how to read common geometry files. I guess this means DXF, IGES and maybe STL.
Comments ? :cheers:
1. http://www.python.org/
2. http://wxpython.org
3. http://pyopengl.sourceforge.net/
4. http://boa-constructor.sourceforge.net/
5. something close to MultiSurf, see http://www.aerohydro.com
Death Adder 06-27-2006, 04:35 PM I'm not too familiar with Python and as such my gut reaction is to shy away from it. However, you can't always trust your gut. I've heard decent things about Python as far as programming goes but I'm not so sure about it's speed. CAD/CAM apps tend to need to be quick. As such, coding a front end gui in Python would be a good idea but coding an IGES reader and CAM output backend might not be a good idea.
As long as we're staying open source there's no reason not to use QT. It beats the tar out of anything else out there and the only compelling reason not to use it is that it costs an arm, a leg, three kidneys (borrow one from someone), and a truck load of cash to purchase the licensing. But there's no cost to use it on Open source projects. There's a Python binding for it too. (www.trolltech.com)
Why did you include the reference to MultiSurf in your post? It's not free. Do you want to make something like it?
andy55 06-27-2006, 05:20 PM I'm not that worried about speed yet... if it get's too slow then it shouldn't be that hard to translate into something faster.
I'm not familiar with QT, could you give some links to examples/tutorials/manuals.
Multisurf: I'm mostly interested in CAM functionality at the moment, but a working CAM program will surely include most of the infrastructure needed for a CAD program and the relational geometry used in multisurf seems to be a logical way to do it.
If anyone is good at Python data structures, OO program design, etc. let me know and we could collaborate.
Death Adder 06-27-2006, 09:30 PM It isn't too hard to find examples and documentation and such on Trolltech's website. (www.trolltech.com)
The QT downloads should also come with examples and docs packaged with them.
Dan Falck 06-28-2006, 12:07 AM This guy has written some G-code related software in python:
http://timeguy.com/cradek/
Chris and Jeff also wrote this front end for EMC :
http://axis.unpy.net/index.cgi/
It's also written in python. I think that with the gui in python and all the guts of the program in C, it seems to run very fast on my linux box.
I was told that python is great for prototyping programs quickly. Later, slow sections of code can be optimized or converted to C.
I know just a bit about it. Python is fun and it's cross platform compatible.
Dan
andy55 06-28-2006, 05:28 AM This guy has written some G-code related software in python:
http://timeguy.com/cradek/
Chris and Jeff also wrote this front end for EMC :
http://axis.unpy.net/index.cgi/
It's also written in python. I think that with the gui in python and all the guts of the program in C, it seems to run very fast on my linux box.
I was told that python is great for prototyping programs quickly. Later, slow sections of code can be optimized or converted to C.
I know just a bit about it. Python is fun and it's cross platform compatible.
Dan
Hi Dan,
I know about EMC and Axis, the Axis backplot/preview is really great !
What little I have learned about Python confirms your oppinion i.e. that it is quite rapid to prototype and fun. The more I think about it the more important the architectural design questions seem. Need to read about design patterns and maybe do some UML modeling ?
For example I think the idea of extendability/plugins expressed in the very first thread in this post is a good one. We thus need to define clearly the interfaces between plugins/components and how the object hierarchy works.
Plugins/components could be importers (i.e. import dxf geometry from file), exporters (write geometry to file in some format), geometry objects (draw a line/circle etc.), toolpath generators (given a geometry and a tool specification as input, generate a toolpath), post-processors (given a toolpath, generate G-code or other output), etc.
If an opensource cam program is going to be successful I think these interfaces need to be well designed so that the program can be extended later on. They also need to be clear and logical so that it doesn't take forever to learn how to develop the program.
I already found Python efforts to read and write DXF files, so whenever I am done with my GUI experiments and get OpenGL working I will try to simply read a DXF file and display it on screen.
Xerxes 06-28-2006, 06:15 AM Open CAM sounds an interesting project, I would definitely participate on it.
A quite long time ago I was planning to make own CAM using a brute force approach. It would just convert DFX to a huge bitmap (say 0.01 mm/pixel) and then find suitable toolpaths just by "eating" away the bitmap by moving tool inside painted areas. It would be also possible to make 2.5D or 3D engravings by representing carve depth by bitmap pixel color value.
I have exprerience on Qt and I have found it very handy and easy. I have some doubts about Python since most python programs I have tried didn't work. In many cases they just print lots of mystical error messages and quit. However some python apps have worked very well.
Dan Falck 06-28-2006, 10:37 PM andy,
I am starting by looking at editors. To me, the g-code is where the rubber hits the road. That being said, an editor with some conversational routines built in is what I am looking at. I have been able to write a small graphical routine using tkinter for the gui that outputs bolt circle locations and outputs x,y locations. So now, I am looking at some editors that are written in python and have inserted my bolt circle routine into one of them (pyword is the editor). I'm fooling around with trying to make my boltcircle thing send it's output to the editor (and having to work it out, but I will get it). After that, I will try to work out a few more conversational type ops, like rectangular array drilling, simple rectangular pocketing etc...
Later on, I will get into the graphical routines and most likely look at a program like pythoncad or cadvas for inspiration. There might be parts that can be used, but most likely, I will have to learn the hard way how to select geometry and send it's data to the editor for conversion to g-code.
Will it get me a Mastercam look alike? No. But I am trying to learn as I go and it is turning out to be useful for other things in my life.
It's fun to tinker.
Thanks,
Dan
andy55 06-29-2006, 01:25 AM would it be a good idea to start a wiki for hosting OpenCAM related ideas, links, and code ? Any ideas where that could be done ?
Xerxes 06-29-2006, 03:29 AM Would it be wise to implement CAM on QCad? QCad is very well done GPL'd CAD using Qt library:
http://www.ribbonsoft.com/qcad.html
There is some commerical add-on called CAM Expert for QCad but it doesn't seem to have too much features (only contouring?).
andy55 06-29-2006, 04:00 AM I couldn't help myself so I started a little something on:
http://www.editthis.info/opencam/Main_Page
please contribute your thoughts and ideas !
Death Adder 06-30-2006, 10:45 PM Cool, a wiki is a good place to start. At the very least it provides a good place to pool the documentation and other resources that everyone would need to be able to contribute. It seems like you've already got a lot of information on there.
Dan Falck 07-01-2006, 12:25 AM Ok, I added a bunch of links to the wiki. Look at the CAD and CAM sections.
Thanks,
Dan
mpictor 07-11-2006, 02:27 AM I've been wanting to do a CAM program for a long time, and started digging into it a little deeper recently. I like OpenCASCADE, but I don't understand c++. OCC can be downloaded freely, and can import STEP, IGES, BRep, STL, CSFDB, etc. I have not used AutoCAD in a long time, but it can export either IGES or STL, or both - so something based on OCC would be autocad-compatible.
I think that once you have code that can generate toolpaths for a freeform surface that the rest (roughing passes, optimize, etc) will be pretty easy.
Mark
andy55 07-11-2006, 03:09 AM I've taken a quick look at opencascade, and the documentation seems to be a bit dissapointing... well I guess that is what OpenCascade.com makes their money with!
Other 3D frameworks/libraries that might be used are:
Coin http://www.coin3d.org/
OpenSceneGraph http://www.openscenegraph.org/
I've also been reading the 'red book', i.e. an OpenGL book, which makes it pretty clear how to draw things in 3D.
I think it would be important to agree on an overall architecture in the beginning so that parts can be added/interchanged/improved/ported etc. as the project goes on. If anyone has bright ideas, please contribute them to the wiki page at
http://www.editthis.info/opencam/
Xerxes 07-13-2006, 06:16 AM I don't know whether this link has been there: http://www.tech-edv.co.at/lunix/CADlinks.html
It lists many CADs for Linux and many of them are open source.
I think it would be wisest to start with 2.5D cam because it fulfills the most of machining needs (nearly 100% for me). Not many hobbyists have 5 axis machining centre to do 3D models anyway.
andy55 07-13-2006, 09:49 AM Xerxes, thanks for the link, I added it to the wiki page.
2.5D vs. 3D: Actually I don't think that the toolpath generation algorithms will be a major difficulty. There are a number of papers that outline how the toolpaths are generated for 3D finishing etc.
The biggest hurdle is getting all the "infrastructure" in place, i.e. 3D viewer/GUI, geometry object definitions/hierarchy, etc. etc.
I have played around with a 3D view coded in Python using PyOpenGL. It is fairly easy to do rotation, translation, zooming, shading, lighting etc.
Next I think I would need to clearly define some kind of Model/View/Controller architecture that can be extended as the program grows.
Xerxes 07-13-2006, 11:06 AM Like you said, infrastructure is the problem. Getting 3d solid models in right format for processing alone is a huge difficulty. Some long developed 3d CADs still have problems with IGES/STEP import. Rendering 3D stuff with OpenGL is magnitudes easier than processing of 3D data.
I think 2D algorithms work best for 2.5D jobs since 2D lines can be followed exactly without any error margins. 2.5D CAM would be a good place to start. If you aim too high you never get it finished.
Dan Falck 07-15-2006, 06:35 PM andy55,
I can't get into your wiki. It seems that I need to login. It's not apparent where to apply for a username and password.
I did copy the source to the page a couple days ago for reference.
Thanks,
Dan
andy55 07-16-2006, 12:25 PM wiki: (http://www.editthis.info/opencam/)
I sometimes get an error message at the top of the page related to headers or something. when that happens editing of the page does not work. Try reloading or closing the browser and then reloading again.
It seems there are a number of 3D toolkits which could be used:
*OpenCascade http://www.opencascade.org/
*OpenSceneGraph http://www.openscenegraph.org/
*Coin3D http://www.coin3d.org/
*VTK http://www.vtk.org/
*OpenSG www.opensg.org
all exept openscenegraph (?license?) and opensg (LGPL) seem to somehow non-free (not released under the GPL). Should that matter ?
Then there's the question of programming language/GUI toolkit/platform... QT has been suggested but it's also non-free. I use mostly winXP and Ubuntu but it would be nice to be able to support MacX also....
Dan Falck 07-16-2006, 12:55 PM Ok. It's the wiki is working for me today. I'm glad.
On the subject of licenses, I don't know enough to make an intelligent comment. The only one that I have looked at, and not in depth, is Opencascade. To me, it looks like you can develop using Opencascade, as long as you send back a copy of your work to them. I might be all wrong about this.
I use Mac OS X and Ubuntu Breezy Badger (the one that is recommended for setting up EMC2) most of the time. I have a bunch of Redhat and Debian boxes out in my garage (emc boxes). But, Ubuntu is my favorite.
It is a lot of fun. I have tons of cool applications set up on it. Now, if I can just learn how to use Blender, BRLCAD, FreeCAD, Opencascade, Varkon....
Thanks,
Dan
Xerxes 07-17-2006, 08:57 AM I think writing OpenGL code is quite trivial after you have all data imported for processing. However this caught my attention: http://doc.coin3d.org/Coin/classSoClipPlaneManip.html
That kind of manipulator feature might ease toolpath generation(?).
I have done some small programs with Qt and wxWidgets and Qt feels more flexible to me. It's been made by a company but it has GPL license so I don't see a reason to avoid it. I think you have to buy Qt license only if you develop non-GPL software with it.
all exept openscenegraph (?license?) and opensg (LGPL) seem to somehow non-free (not released under the GPL). Should that matter ?
LGPL can be considered even more free than GPL.
PsyKotyk 08-10-2006, 02:03 PM Cool... Sign me up. Like many of you, I'm also a software developer by trade.
My question is this: Is the goal a CAD program with a CAM processor, or just a CAM program?
Might it be better to logically separate the two? There are a lot of quite good CAD programs available already .. often commercial, but some are quite reasonably priced. It seems to me that 90% of the work is for CAD, and the other 10% to write the CAM side of things.
Having been on quite a few projects and releasing a few OSS projects, I can say with confidence that you need to start small, release *something usable* immediately, and than build project momentum off the success of the first release.
If you start too big, never release anything usable, or never release at all, than your project becomes a death march for you alone to try and finish.. and most people don't.
andy55 08-10-2006, 02:42 PM My question is this: Is the goal a CAD program with a CAM processor, or just a CAM program?
I think it makes sense to concentrate on CAM at first. This does mean that it must be possible to import CAD geometry from the start.
Specifically, I think most people are interested in toolpath generation for 3-axis vertical mills ?
A lathe without live-tooling is not so different so a lathe mode could also be supported.
Having been on quite a few projects and releasing a few OSS projects, I can say with confidence that you need to start small, release *something usable* immediately, and than build project momentum off the success of the first release.
If you start too big, never release anything usable, or never release at all, than your project becomes a death march for you alone to try and finish.. and most people don't.
That's probably very true. Being a non-professional programmer I took a look at some of the graphics toolkits (VTK, OpenCascade) and they strike me as 'too big' just like you write. It will take longer to familiarize oneself with the API than to code from scratch the needed functions ?
What would the minimal requirements for a 0.1 version be ?
1. load/save simple (2D) part geometry in some format (DXF?)
2. a couple os simple 2D toolpath generators
3. a working gui/model viewer than can display part geometry and toolpaths
I'm mostly interested in the toolpath generation algorithms and would be happy to work on them. I played around with something 2D in matlab already, based on the cutter location ideas form freesteel.co.uk
AW
daedalus 08-10-2006, 06:18 PM If i were you i would not rush out the door with something you cobbled together yourself if there are already large feature-rich libraries that you can use. Yes it will take time to learn to use the libraries, but its time well spent.
Ultimately any features you need that are in a library like opencascade will cost you time to write and debug, and will be more code for *you* to have to maintain. If you use libraries where appropriate, then you benefit from someone else developing their library.
There is a hell of a lot of work involved in writing an efficent 2d and 3d renderer, and ultimately you want to be writing cnc software, not reinventing the graphics.
Another thing you might consider is that there are some pretty well developed math, physics and fem libraries out there, and its worth shopping round for 3rd party code you can reuse before rushing into writing something. Another option would be to look at things like eclipse, which provide lots of the ide related functionality, which would take quite a lot of time to redo yourselves.
mpictor 08-11-2006, 01:42 AM I've been messing around with OpenCascade, creating a program that will take (x,y,z) coordinates from EMC and create a solid model of the part to be machined. It is not complete, but so far it's pretty trivial, even though I don't know much about C++. (My formal education in programming languages consists of one class in BASIC, and one class in C.)
What's left to do is to get the program to read data points from a file or stdin, and to work on the GUI. Right now the points it creates are hardcoded. For the GUI I am using one of OCC's sample apps. It handles the display, materials, translucency, etc. Things like tool diameter and type are hardcoded because the generic UI doesn't know about them. The UI is next on my list of things to do.
Extending this to CAM shouldn't be difficult. Create a series of planes, calculate the intersection of each plane with the model (or a face of the model). Take the result (one or more curves per plane) and calculate points along it. String these points together as G1 moves.
Feature recognition (recognize a hole and use the proper size bit, recognize a slot and use the right bit) will be more difficult but I dont think *that* bad.
andy55 mentions that OCC is not GPL. It's license is very similar to the LGPL. The only additional restriction, IIRC, is that if you make improvements/bugfixes to OpenCascade itself, you must provide OpenCascade SA with a copy of the code. (Note that this is my interpretation, but I AM NOT A LAWYER!!! :-) )
Mark
lleroy 08-11-2006, 05:36 AM Anyone considered BRL-CAD?
it's a solid Opensource CAD program...
and on their mailing list there was an inquiry about adding CAM functionality
https://sourceforge.net/tracker/?func=detail&atid=640805&aid=1191316&group_id=105292
Xerxes 08-11-2006, 09:32 AM Feature recognition (recognize a hole and use the proper size bit, recognize a slot and use the right bit) will be more difficult but I dont think *that* bad.
It is *that* bad. Fully automatic feature recognition and toolpath generation has been researched for years or maybe decades and it's still not working very well.
Death Adder 08-11-2006, 09:47 AM It is *that* bad. Fully automatic feature recognition and toolpath generation has been researched for years or maybe decades and it's still not working very well.
I'm going to have to kinda back you up on that. I have SurfCAM which is mega bucks and it still has little quirks. It may be true that there are plenty of papers on toolpath generation but writing about it and doing it are two seperate things. It's not as easy as people try to make it out to be. At least not if you want to do it properly. Anybody can write a raster path generator but writing an efficient one that never gouges is another story.
mpictor 08-12-2006, 04:13 AM It is *that* bad. Fully automatic feature recognition and toolpath generation has been researched for years or maybe decades and it's still not working very well.
OK, guess I should clarify. I meant having the user click on lines and arcs, then the program could figure out a diameter of tool and a toolpath or you could enter it. I didn't say fully automatic. This is more of a gatling gun you crank by hand, reload, crank, reload, crank, burn your hand... :p
As far as gouging, I'm thinking that the program I have mostly written could compare a solid model (the one that went into the CAM program) with one created from data output by the controller, EMC. OCC can calculate the volume of a shape, so the volumeteric difference between the two models could be computed. You could also subtract one from the other to show the user the differences.
There would still be difficulty getting the models to match though. Off the top of my head, size of the solid block and position relative to the cut(s). Also if the initial model contained features that weren't machined.
For gouging/collision detection, you could create a point or points within the model of the tool. For a ballnose mill, one point located at the center of the half-sphere that makes up the tip. Every n distance along the toolpath, compute the distance from this point to the surface. This distance should always be equal to, or greater than, the tool's radius. If less, you are gouging. n should be a fraction of the radius, say r/5.
For non-spherical tools, other methods would be used. For endmills, use a circle, turn it into a surface and then compute:
GeomAPI_ExtremaSurfaceSurface ESS(aSurf1,aSurf2);
dist = ESS.LowerDistance();
Circle would be slightly smaller than the bit, positioned slightly above the tip. If tooltip is at 0,0,0 and tool radius is 5, circle would be centered at 0,0,x with radius (5-x). Any time dist < x, you have gouging. x would be small, and yes, the edge could still gouge slightly (maximum x*sqrt(2)-x at 45 degrees). If you're only roughing with an endmill then it's not much of a worry. Using a circle like this will show you are gouging, except in certain cases when you are gouging deeper than 2*x. That could only happen if you did not test for gouging often enough. (Yes, I know that's a blanket statement :)
All these gouging calculations assume the part has no overhangs. If it does, @$%@#$%$@.
Mark
weimedog 08-26-2006, 09:08 PM WOW!
Been away for a while...and will have to stay away until the HAY is in and the FIRE WOOD is in for the winter. Its like an Arctic Zone around here!
Looks like there is some real interest in this concept.
There is a small chance...but a REAL chance I can get my hands on some really interesting code that might spice this up a bit. Machining Code design to evaluate Solid Models and return toolpath entities. Would need a place (A database ) to store the toolpath entities and solid models to evaluate. Any interest in playing in this type of environment? (Please understand Its entirely possible I can't come thru on this....but I will try if there is interest)
I notice the discussion relative to Cascade...My first comment is an old saying:
If your a hammer everything looks like a nail!!!
Those brought up writing code for the PC into Windows generation see Cascade as a huge kluge....those brought up in the days of really functional and high end CAD systems see Cascade as a true accellerator is my guess.
If I remember correctly, ACIS and Matra developed environments SO similar that the two companies were almost developing in parallel solid modeling capabilities....why is this of interest?
Look back a few years and see who Dasault went around and snapped up before they got too independent. Matra was the big looser in that flurry of activity...bet they wouldn't mind the opportunity to regain a little ground.
And Cascade has conceptually similar roots (and functionally similar roots) AND is available for very little as compared to what it would cost to re-invent the wheel.
Not pushing Cascade..just remembering a bit of history as I breeze by ...now I have to get to work around this farm again. Later. Probably after October before I can actually sit and focus on the SW world.
Dan Falck 08-26-2006, 11:40 PM posted by weimedog:
"There is a small chance...but a REAL chance I can get my hands on some really interesting code that might spice this up a bit. Machining Code design to evaluate Solid Models and return toolpath entities. Would need a place (A database ) to store the toolpath entities and solid models to evaluate. Any interest in playing in this type of environment? (Please understand Its entirely possible I can't come thru on this....but I will try if there is interest)"
Yes we would be interested!
Dan
lleroy 09-18-2006, 07:20 AM these are some programs for constructing of 3D files for POV-Ray that may be of interest as CAD program...
http://www.povray.org/resources/links/3D_Programs/Modelling_Programs/
mpictor 11-02-2006, 03:23 AM Teaching oneself C++, QT, and OCC all at one time is makes for a steep learning curve! I had several false starts getting a working AIS display within a qt app. There is still a lot to do, and g-code output is disabled right now. If anyone wants to look at it, it's here: http://cam.occ.googlepages.com/home
Mark
Death Adder 11-02-2006, 12:04 PM That's pretty cool! It's always good to see some actual progress. A little progress on a project is worth more than a whole lot of talk. Raster paths are definately the place to startand it looks like you've got pretty decent paths there. Does OCC help with that or did you have to code up raster path code yourself?
mpictor 11-03-2006, 04:28 AM That's pretty cool! It's always good to see some actual progress. A little progress on a project is worth more than a whole lot of talk. Raster paths are definately the place to startand it looks like you've got pretty decent paths there. Does OCC help with that or did you have to code up raster path code yourself?
OCC does the heavy lifting on the raster paths. I've tried doing it two ways, trying to escape a bug which I don't understand.
Either way, the first step is to calculate the size of the face (or faces) to put the raster lines on, using a bounding box.
A) Next create a line segment the width of this bounding box. Project it onto one or more faces; the result is a TopoDS_Wire, which contains one or more TopoDS_Edge. Repeat to create more raster paths, adjusting the position of the line segment.
B) Create a plane parallel to XZ or YZ that intersects the face(s). Compute the intersection; the result is a TopoDS_Wire. Repeat, adjusting position of the plane.
For some reason, some vertical faces do not always have raster paths over them...! It seems to have to do with the order in which I select the faces.
Rasters was fairly easy, but I'm not sure where to start on getting them offset so the cutter doesn't gouge. OCC provides at least one function to do this, but I would still have to figure out if the result is on the correct side of the initial line - in the air - or on the wrong side, in the material. Also I must trim the result to remove loops, and I don't know how to do it in OCC yet.
Mark
Death Adder 11-03-2006, 08:43 AM OCC does the heavy lifting on the raster paths. I've tried doing it two ways, trying to escape a bug which I don't understand.
Either way, the first step is to calculate the size of the face (or faces) to put the raster lines on, using a bounding box.
A) Next create a line segment the width of this bounding box. Project it onto one or more faces; the result is a TopoDS_Wire, which contains one or more TopoDS_Edge. Repeat to create more raster paths, adjusting the position of the line segment.
B) Create a plane parallel to XZ or YZ that intersects the face(s). Compute the intersection; the result is a TopoDS_Wire. Repeat, adjusting position of the plane.
Yeah, either method should really be just as good as the other. It's just basically two ways of looking at the same thing.
For some reason, some vertical faces do not always have raster paths over them...! It seems to have to do with the order in which I select the faces.
Well, if the surfaces are truly vertical than it should be just a matter of connecting the dots. The only real thing needed is to detect gaps and connect across them.
Rasters was fairly easy, but I'm not sure where to start on getting them offset so the cutter doesn't gouge. OCC provides at least one function to do this, but I would still have to figure out if the result is on the correct side of the initial line - in the air - or on the wrong side, in the material. Also I must trim the result to remove loops, and I don't know how to do it in OCC yet.
MarkYeah both of those problems are what make things difficult. More or less you want to offset the raster path by the tool radius and in the direction of the surface normal. The catch is that you'll notice that software such as surfcam will still offset on the correct side even if some of the surfaces have reversed normals. So it's not trusting the surface normals. When you get into things like this where it's complicated it's nice to draw up a diagram. Say, draw a shape like this:
*Diagram removed because the forum software BLOWS and won't render it right... Imagine a U shape with a line to either side of the top.*
Now, obviously you want your raster paths to offset so |