Jump to content

Reassurance


wannabe

Recommended Posts

I recently started out using VBA with the help in AutoCAD and from help on this site. The reason was that I wanted to be able to program CAD to do many things that interact with other software and create new drawings etc.

 

However, I just want to be assured that even though VBA will not be supported its still worth learning as a precursor to VB.Net training etc.

 

Also, what about c++, and others?

 

does my current plan of first getting to grips with ACAD VBA make sense and worthwile spending small amounts of money to get up to speed on?

Link to comment
Share on other sites

The situation has so many facets that making a “hard” recommendation is almost irresponsible. I do agree with the notion that any programming experience gives a leg up on learning additional languages, even those of higher complexity (i.e., C++ or the .NETs).

 

That being said, learning either AutoLISP or VBA is sensible due to the wealth of examples and peer assistance available. Another benefit is that neither requires additional software. The choice between those two, and the ramifications of a particular choice, has been discussed numerous times on this and other forums.

 

Now the situation becomes more complex if one accepts the notion that neither has the wide and/or long-term applicability of the .NETs or C++. But, given that VB.NET/C#.NET and C++ require about 2 and 3 years, respectively, to achieve a good level of proficiency, and that VBA (in particular) may not be around for that long . . . .

 

And, lest any conclusion be inferred from that last segment, I’m in the process of learning C#.NET, and find it fairly straightforward, though portions of it are a bit of a handful. I do, however, have the benefit of 8+ years of VB/VBA experience. I think it would really test the resolve of a new - “would be”- programmer to dive directly into .NET (never mind C++). Certainly, structured training would greatly help the matter.

 

As cloudy as this response may be, the situation may be incapable of further clarity.

Link to comment
Share on other sites

The situation has so many facets that making a “hard” recommendation is almost irresponsible. I do agree with the notion that any programming experience gives a leg up on learning additional languages, even those of higher complexity (i.e., C++ or the .NETs).

 

That being said, learning either AutoLISP or VBA is sensible due to the wealth of examples and peer assistance available. Another benefit is that neither requires additional software. The choice between those two, and the ramifications of a particular choice, has been discussed numerous times on this and other forums.

 

Now the situation becomes more complex if one accepts the notion that neither has the wide and/or long-term applicability of the .NETs or C++. But, given that VB.NET/C#.NET and C++ require about 2 and 3 years, respectively, to achieve a good level of proficiency, and that VBA (in particular) may not be around for that long . . . .

 

And, lest any conclusion be inferred from that last segment, I’m in the process of learning C#.NET, and find it fairly straightforward, though portions of it are a bit of a handful. I do, however, have the benefit of 8+ years of VB/VBA experience. I think it would really test the resolve of a new - “would be”- programmer to dive directly into .NET (never mind C++). Certainly, structured training would greatly help the matter.

 

As cloudy as this response may be, the situation may be incapable of further clarity.

 

So, if it were yourself, just starting out wanting to be able to customise the AutoCAD on top of 4 years working experience, what would you do? Or be thinking?

 

Also, do you think it would be possible to progress from VBA to another language without any classroom education?

Link to comment
Share on other sites

Time frame seems to be the key here.

 

I don’t know of anyone that has learned AutoCAD customization via classroom. I assume most of us picked it up in a similar fashion; a few years of AutoCAD compelled us to explore programming on our own, through one or two books perhaps, and forums like this one. Exactly as you’re doing.

 

If it were even just a couple of years earlier, I’d suggest maintaining your prescribed course – it is the same one that served me well. The problem is that the time used to progress through a VBA introduction may not leave enough time to adopt .NET, say, without VBA disappearing in the interim.

 

I also think it is possible to learn .NET directly (and presumably C++) but the “ramp up” time to even produce simple routines is so much longer, and more complex, that it could be very discouraging.

 

AutoLisp is probably the most sensible introduction. It’s relatively easy, even easier than VBA, to generate useful routines. And there is nothing like a self generated, time saving routine to encourage the commitment.

 

The biggest factor to endorsing Lisp whole heartedly would be the industry in which the person looking for advice was employed. I think the Architectural (and perhaps civil) sectors are the most likely to benefit from a solid Lisp background as AutoCAD has a much more solid foothold.

 

The sector geared more towards mechanical and manufacturing tend to encourage the VBA choice. AutoCAD is not so dominant in those sectors, and none of the other typical packages, even Autodesk’s own Inventor, have a lisp oriented API. I know both Inventor and SolidWorks host VBA as a customization tool – at least for the time being.

 

Notice how I still skipped around giving a direct recommendation. :)

Link to comment
Share on other sites

Yes I noticed it quite well :).

 

It's my decision to make and I suppose I will have to try and take as much as I can from VBA whilst its available and the support is affordable.

 

The one advantage that continuing with VBA will have is the interaction with other software packages which is the kind of automation process I have seen save a lot more time than any LISP routine, when a macro could create multiple drawings with viewports of a long stretch of land, turning a weeks worth of work into less than an hours.

 

If I can demonstrate the capability to produce the above myself then employers may be keen to help me further my programming ability by arranging for professional education and qualifications.

 

Also, the worst that can happen is nothing really.

Link to comment
Share on other sites

the short answer is learn them all.

 

that being said, let me quantify- Learn enough of each to make your job easier and faster. LISP is a great place to start, allows rapid developement of programs that give instant useability, and can do most things in a pure autocad situation. I started with lisp in 92, and still use it today. In about 2002, I decided to see what the VBA hype was all about, and so I started learning that. It too has proven useful, and about 95% of my customization is done in VBA today. Does that mean I abandoned LISP, no, I just use VBA now. Well what about .Net you ask.

 

Now that is a tougher question to answer. Will you have to learn it eventually? Yes! Does it have to be right now, well no. What we do know is VBA will "go away" at some point in the future. What we dont know is if it will be completely removed or just moved outside of the process in memory. If its the former, we are all going to be scrambling to update our code before we upgrade to that next release of Autocad. The latter is more probable, and is not the end of the world. If its outside the Autocad memory process, it will just be slow. How slow? Dont know, dont care. I am not trying to be flippant, but slow and working is better than "dead in the water" so to speak. At that point, we all will be updating to .Net.

 

Now the really tough question, the one which most affects your future. Which .Net language to learn? VB.Net vs C# vs C++ or any other language. The short answer is it doesn't matter. The longer more thought provocint question is which language will be the easiest to learn, given the resources available, in the shortest amount of time. C++ is going to be the hardest b/c you have to do everything. Yes I mean everything, manage the memory, etc.

 

OK, so that leaves VB vs C#. IMHO it would be better at this point to learn C#. Not because VB cant do what you want, but because the resources for learning it are more plentifull. Consider that the Autodesk .Net website is "mostly" written in C#. Other forums like this one are more C# driven. I am not bashing VB! Its just that there are more examples of how to do .Net/Autocad using C#. (There is 1 book out on .Net and Autocad, which is a good place to start, but has many things that need to be considered before accepting it as gospel.)

 

You are at a very interesting point in your coding knowledge of not knowing enough, that you would have to un-learn all the bad habits that you could have picked up over the last 10 years or so. If it were me, I would go pick up a C# book, and download the express edition of C# 2008, and start learning that. Then add in Autocad and start making all your new apps. PM me if you have any questions

Link to comment
Share on other sites

the short answer is learn them all.

 

that being said, let me quantify- Learn enough of each to make your job easier and faster. LISP is a great place to start, allows rapid developement of programs that give instant useability, and can do most things in a pure autocad situation. I started with lisp in 92, and still use it today. In about 2002, I decided to see what the VBA hype was all about, and so I started learning that. It too has proven useful, and about 95% of my customization is done in VBA today. Does that mean I abandoned LISP, no, I just use VBA now. Well what about .Net you ask.

 

Now that is a tougher question to answer. Will you have to learn it eventually? Yes! Does it have to be right now, well no. What we do know is VBA will "go away" at some point in the future. What we dont know is if it will be completely removed or just moved outside of the process in memory. If its the former, we are all going to be scrambling to update our code before we upgrade to that next release of Autocad. The latter is more probable, and is not the end of the world. If its outside the Autocad memory process, it will just be slow. How slow? Dont know, dont care. I am not trying to be flippant, but slow and working is better than "dead in the water" so to speak. At that point, we all will be updating to .Net.

 

Now the really tough question, the one which most affects your future. Which .Net language to learn? VB.Net vs C# vs C++ or any other language. The short answer is it doesn't matter. The longer more thought provocint question is which language will be the easiest to learn, given the resources available, in the shortest amount of time. C++ is going to be the hardest b/c you have to do everything. Yes I mean everything, manage the memory, etc.

 

OK, so that leaves VB vs C#. IMHO it would be better at this point to learn C#. Not because VB cant do what you want, but because the resources for learning it are more plentifull. Consider that the Autodesk .Net website is "mostly" written in C#. Other forums like this one are more C# driven. I am not bashing VB! Its just that there are more examples of how to do .Net/Autocad using C#. (There is 1 book out on .Net and Autocad, which is a good place to start, but has many things that need to be considered before accepting it as gospel.)

 

You are at a very interesting point in your coding knowledge of not knowing enough, that you would have to un-learn all the bad habits that you could have picked up over the last 10 years or so. If it were me, I would go pick up a C# book, and download the express edition of C# 2008, and start learning that. Then add in Autocad and start making all your new apps. PM me if you have any questions

 

Well, I did download the express version of .net and had planned to start looking into this coming weekend. But, using the logic provided, I think I will start with the C# language instead.

 

Thanks for the reply, it actually does reassure me a little that cusotmisation for CAD is not going to become more enclosed than it currently is.

 

I have been worrying that if I cant progress to a CAD developer, then do I really want to be a CAD technician all my life?. You seem to have put those worries aside for me and its just going to be down to effort and how smart I am about my learning that counts.

 

 

:)

Link to comment
Share on other sites

i got to thinking about where you are, and where you want to go. If you have specific tasks that you want to automate while you are learning a new language, go ahead and ask. we might be able to give you a solution in VBA that will apply to some degree as you learn C#. For instance, in VBA, if you want to declare a variable, and use it to count,

Dim i as integer
For i=1 to X

will apply in C#, just done differently

int i;
For i=1 to x;

Link to comment
Share on other sites

As yet I have no specific tasks I want to automate. My goal is to enhance my career and and to be equipped, in 3 or 4 years to think about starting a company the specialise in CAD customisation and possible outsourcing and potentially training.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...