Lee Mac Posted May 22, 2009 Share Posted May 22, 2009 I was hoping to broaden my knowledge in the programming side of things and have a go at trying to learn another programming language. However, I have no clue which language to move into, or the required facilities with which to learn it. I have found this link, but I am lost as to what I need to download in order to get me started. I have not quite mastered LISP and Visual LISP to its full capacity, however, I hope that broadening my knowledge with another language will aid my understanding of programming as a whole. Any advice, tips, links are welcomed and appreciated. Thanks for you time, enjoy your weekend. Lee Quote Link to comment Share on other sites More sharing options...
JohnM Posted May 23, 2009 Share Posted May 23, 2009 If you want to program for AutoCAD the best bet is C++. With C++ you can create ARX file to access the AutoCAD database much deeper than lisp or visual lisp. Object oriented programming is what is called. With C++ / arx you can create you own objects and control them as you see fit you also can have more control over AutoCAD’s objects. This is a much more powerful program language that lisp, vlisp or visual basic. Some of the drawbacks are: A lot more coding, and having to re-compile for each version change AutoCAD makes. Depending on what version of C++ the AutoCAD version is in you have to compile for it. You will also have to download the ARX developer’s files for each version you want to compile in form AutoCAD. This means you really have to be organized to use this method. But in the long run you will be a better programmer. I would suggest starting with the plain-jane C++ for dummies and just write a few simple stand-alone programs so you get the feel of what is basically going on. Then move to the C++dot net stuff and start looking into ARX for autocad. There are a lot of helpful sites on the internet and a few good books avalibel go guide you. Good luck Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 23, 2009 Author Share Posted May 23, 2009 Many thanks for the information John, I had thought about C++, but it seemed quite daunting with all the "extras" needed to program with it. I shall have a browse and see what I can find. Many thanks for your time and advice, Lee Quote Link to comment Share on other sites More sharing options...
Freerefill Posted May 23, 2009 Share Posted May 23, 2009 From what I've heard, all the Visual languages aren't that great, and that they aren't very flexible. C and C++ however are very powerful and portable, and yes, daunting. I picked up a "Learn C in 21 days" book and it looks very easy to read, the problem is, it's harder for me to do something like that because I always get distracted by other things, and the fact that you learn a lot of very basic data manipulation functions before you learn what use they are, whereas with LISP you can draw a line and see your code work before your very eyes. I'm going to try learning C again, AutoLISP is nice but it only works with AutoCAD. LISP is nice, but it's a scripting language, so it would be good to tie in with more versatile programs but not good to write one from scratch (no GUI in LISP). C will let me make executibles that I can send to people and whatnot.. people who don't have AutoCAD. Let me know if you find any forums similar to this for C, I'd be eager to join them. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 23, 2009 Author Share Posted May 23, 2009 From what I've heard, all the Visual languages aren't that great, and that they aren't very flexible. C and C++ however are very powerful and portable, and yes, daunting. I picked up a "Learn C in 21 days" book and it looks very easy to read, the problem is, it's harder for me to do something like that because I always get distracted by other things, and the fact that you learn a lot of very basic data manipulation functions before you learn what use they are, whereas with LISP you can draw a line and see your code work before your very eyes. I'm going to try learning C again, AutoLISP is nice but it only works with AutoCAD. LISP is nice, but it's a scripting language, so it would be good to tie in with more versatile programs but not good to write one from scratch (no GUI in LISP). C will let me make executibles that I can send to people and whatnot.. people who don't have AutoCAD. Let me know if you find any forums similar to this for C, I'd be eager to join them. Yes, C, C++, C# all sound "the business", but learning them and being proficient in them is most probably a steep upward climb... As for forums, I believe there is a section on TheSwamp.org for C, C++ etc.. Some great minds on that site.. I feel like a complete amateur. Quote Link to comment Share on other sites More sharing options...
Freerefill Posted May 23, 2009 Share Posted May 23, 2009 Yes, C, C++, C# all sound "the business", but learning them and being proficient in them is most probably a steep upward climb... As for forums, I believe there is a section on TheSwamp.org for C, C++ etc.. Some great minds on that site.. I feel like a complete amateur. People who don't know LISP would say the same thing about your knowledge, Lee. The mountain is always tallest when you're standing at the bottom. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 23, 2009 Author Share Posted May 23, 2009 People who don't know LISP would say the same thing about your knowledge, Lee. The mountain is always tallest when you're standing at the bottom. Cheers mate ~ I suppose we all have to start somewhere Quote Link to comment Share on other sites More sharing options...
SEANT Posted May 23, 2009 Share Posted May 23, 2009 As for forums, I believe there is a section on TheSwamp.org for C, C++ etc.. Some great minds on that site.. I feel like a complete amateur. I agree. The best of the best AutoCAD programmers reside at the Swamp. Even Kean Walmsley (of Through the Interface fame) and Tony Tanzillo (of “supreme AutoCAD developer but brutally frank critic” fame) will routinely stop by. If anyone is planning on customizing AutoCAD then http://www.theswamp.org should definitely be one of their bookmarks. As a matter of fact, it may be one of only a couple resources if using C++. As a side note (made because of the swamp as a notable exception): Has anyone else observed the trend that the further one gets to the “application grade” languages, the less likely it is to find useful answers or examples? The Autodesk’s own ObjectARX forum has about a third of the post sitting there without response. Granted, the more complex the language, the fewer actual coders . . . .but is it more than that? At that “professional” level, programming is a means (perhaps only) of income. Is the willingness to help smothered by the desire to keep the market small? Quote Link to comment Share on other sites More sharing options...
SEANT Posted May 23, 2009 Share Posted May 23, 2009 Yes, C, C++, C# all sound "the business", but learning them and being proficient in them is most probably a steep upward climb... Given you current skills with lisp and math, and general sense of order and cohesion, the “upward climb” will not be so daunting. You’re taking a run at the summit from a base camp already in the rarefied atmosphere. In my estimation, a solid foundation really is the most important part. It’s why I get very uneasy when I hear high school students bemoaning the requirements of higher level math and science. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 23, 2009 Author Share Posted May 23, 2009 At that “professional” level, programming is a means (perhaps only) of income. Is the willingness to help smothered by the desire to keep the market small? I've got to admit, I have seen very few examples of programming for AutoCAD in the more advanced programming languages, so that may well be the case. But, in listening to all that has been said, I am a little confused at this point, and it could well be my naivity in this case. I was in conversation with David Bethel (I think it was him!) a while back, talking about "high level" programming languages, and he mentioned that most people do not realise that LISP is actually a high level programming language. Maybe I am misunderstanding something, but I immediately became under the impression that, the higher the level of programming language, the more powerful that language would be. So, where do languages such as C, C# fit in all this - are they "ultra-high" programming languages? Where actually is LISP and Visual LISP in the pecking order? Given you current skills with lisp and math, and general sense of order and cohesion, the “upward climb” will not be so daunting. You’re taking a run at the summit from a base camp already in the rarefied atmosphere. Thanks Sean, I'm glad that you believe that I am capable of achieving such things - I am not quite sure of the complexity of these more powerful programming languages, and so was wondering if I was ready to even take on the challenge of learning one... In my estimation, a solid foundation really is the most important part. It’s why I get very uneasy when I hear high school students bemoaning the requirements of higher level math and science. This annoys me too. The amount of times I have heard my fellow students through sixth-form, (and even at uni would you believe), say that they "hated maths and science, and couldn't wait to drop it"... but I find that I use a multitude of my maths skills in everyday life (not just because I am doing a maths degree), but in working out my expenses... (obviously our politicians didn't do maths), and in many other things that you would never have thought of... I don't think I could cope without it. Thanks for your insight, and time. Cheers, Lee Quote Link to comment Share on other sites More sharing options...
SEANT Posted May 23, 2009 Share Posted May 23, 2009 To offer a bit more information upon which to base a programming language choice: all the “C”s, i.e., C, C++, C# as well as Java use similar syntax. Conceivably, learning one makes the process much easier when moving to the next. I’ve heard that C, the granddaddy, is a bit outdated (not Object Oriented) but still has a lot to offer for the really low level* stuff. C++ appears to be the language of choise for the pros as it offers the most potential for optimization, as well as a good foundation for Object Oriented coding methodology. Both Java and C# are similar in how they require a two step compilation process before becoming compatible for any particualr machine. Java is currently multi-platform, but I tend to think C# and the other .NETs will have access to a multi-platform “Virtual Machine” before too long. It sounds like Java C# should be quite easy. * With regard to the term “High level” or “Low Level”: It is ambiguous. For instance, C++ could be considered low level because the level of access is at the very bowels (ugh!) of an OS. Those proficient at C++ could be considered high level in that the code could be extremely complex and highly optimized. It does sound like Lisp somehow straddles the fence. Some flavors do allow for standalone code, though I’m not sure to what level of OS access it would have. AutoLisp, I believe, was initially geared towards macro style programming. It’s level of efficiency, and general popularity, was so great that multiple factions continue to do the C++ programming required to provide additional functions not natively exposed. If I had to guess, you’ll be one of those factions before too long. Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 23, 2009 Author Share Posted May 23, 2009 Thanks for the clarification, that is very interesting. So, you think that C++ is the way forward then? - if so, what route should I take to learn it? Quote Link to comment Share on other sites More sharing options...
Freerefill Posted May 24, 2009 Share Posted May 24, 2009 If it were me, I'd say, start at the bottom and work your way up. I modified entities using (subst)(entmod)(entupd) for a very long time before I graduated to (vla-put-property). For me, I'm going to crack open my 2-inch tome of C and give it another go. C++ seems like the next step, once I'm comfortable with C and once I re-learn what Object-Oriented programming is. >.>' Quote Link to comment Share on other sites More sharing options...
Shawndoe Posted May 24, 2009 Share Posted May 24, 2009 Hi, I made the determination a while ago to learn C++ and I've been swamped in the 6 months since. C++ doesn't just allow you to program for windows, but for any microprocessor you have a compiler for. It's a good hardware control language. That said, my focus in learning C++ lately has been for Acad. I have dabbled in it, started acquiring info and software, but no coding yet. So here is what I propose, lets start a series of threads and from the beginning tackle the things needed to code in C++ for AutoCAD. In the first thread, we would focus on what we need to install in the way of compilers, editors, and other utilities, and how to use them. All questions relating to this topic would be here Next I think we need to learn basics like creating functions, setting variables, and basics Next we would need to learn classes, this is where we would start interfacing with ACAD. I‘m sure several people out there know far more then me about C++ and maybe they could help us plan a syllabus. 6 months from now we’ll all wonder why we waited so long. I’m in and will help in any way I can, as much as time allows. Here to new knowledge and good coding. Shawndoe Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 24, 2009 Author Share Posted May 24, 2009 Hi, I made the determination a while ago to learn C++ and I've been swamped in the 6 months since. C++ doesn't just allow you to program for windows, but for any microprocessor you have a compiler for. It's a good hardware control language. That said, my focus in learning C++ lately has been for Acad. I have dabbled in it, started acquiring info and software, but no coding yet. So here is what I propose, lets start a series of threads and from the beginning tackle the things needed to code in C++ for AutoCAD. In the first thread, we would focus on what we need to install in the way of compilers, editors, and other utilities, and how to use them. All questions relating to this topic would be here Next I think we need to learn basics like creating functions, setting variables, and basics Next we would need to learn classes, this is where we would start interfacing with ACAD. I‘m sure several people out there know far more then me about C++ and maybe they could help us plan a syllabus. 6 months from now we’ll all wonder why we waited so long. I’m in and will help in any way I can, as much as time allows. Here to new knowledge and good coding. Shawndoe Sounds like a plan Shawn Quote Link to comment Share on other sites More sharing options...
BIGAL Posted May 26, 2009 Share Posted May 26, 2009 Serach for LISP2C good starting point Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 26, 2009 Author Share Posted May 26, 2009 Serach for LISP2C good starting point Thanks Al, I'll investigate that Quote Link to comment Share on other sites More sharing options...
Se7en Posted May 26, 2009 Share Posted May 26, 2009 Learn Scheme; It is another high level language like Lisp, but with this book you will start to understand the basics. Once you grasp the basic programing concepts you can move on to a lower level language like C++ where you have more control. [ http://mitpress.mit.edu/sicp/full-text/book/book.html ] Quote Link to comment Share on other sites More sharing options...
Lee Mac Posted May 26, 2009 Author Share Posted May 26, 2009 I have seen that link before actually John, but have never really had the time to properly look through it. But thanks for the recommendation - I shall see if I can take a look at it some time. Quote Link to comment Share on other sites More sharing options...
Freerefill Posted May 26, 2009 Share Posted May 26, 2009 Learn Scheme; It is another high level language like Lisp, but with this book you will start to understand the basics. Once you grasp the basic programing concepts you can move on to a lower level language like C++ where you have more control. [ http://mitpress.mit.edu/sicp/full-text/book/book.html ] O.O ... very nice. I'm going to have my nose glued to my monitor for a week. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.