Monthly Archives: December 2018

Merry Christmas, everyone!

Or choose whatever you prefer as your greeting:

Geseënde Kersfees
Joyeux Noël
Glædelig Jul
Feliz Natal
Crăciun Fericit
සුබ නත්තලක් වේවා
Puthuvalsara Aashamsakal
Wesołych Świąt
Nollick Ghennal
Alassë a Hristomerendë
Feliĉan Kristnaskon
Среќен Божик
Selamat Natal
Joyeux Noël
Christmas inte mangalaashamsakal
Veselé Vánoce
Suk sarn warn Christmas
Vrolijk Kerstfeest
メリークリスマス
Cualli netlācatilizpan
Meri Kirihimete
Kirîsmes u ser sala we pîroz be
Счастливого рождества!
Христос се роди
शुभ क्रिसमस
عيد ميلاد مجيد
Hyvää joulua
toDwI’ma’ qoS yItIvqu’
Καλά Χριστούγεννα
聖誕快樂
Mutlu Noeller
Izilokotho Ezihle Zamaholdeni
Feliz Navidad
חג מולד שמח
Sretan Božić
God Jul
Schöni Wiehnachte
메리 크리스마스
Gledelig Jul
መልካም ገና!
Frohe Weihnachten
Веселого Різдва
Vesel Božič
Nollaig Shona Dhuit
Happy holidays
Iselogbe
圣诞快乐
Zalig Kerstfeest
Krismasasya shubhkaamnaa
ਕਰਿਸਮ ਤੇ ਨਵਾੰ ਸਾਲ ਖੁਸ਼ਿਯਾੰਵਾਲਾ ਹੋਵੇ
کرسمس
djoyeus Noyé
Priecïgus Ziemassvºtkus
Kellemes karácsonyi ünnepeket
Nadolig Llawen
Frohe Weihnachten
Nollaig Chridheil
Felicem Diem Nativitatis
क्रस्मसको शुभकामना
Chuć Mưǹg Giańg Sinh
Gozhqq Keshmish
کرسمس مبارک
გილოცავ შობა-ახალ წელს
Buon Natale
শুভ বড়দিন

I wish you all a happy, safe and prosperous holiday season and new year.

Addendum – Why every AutoCAD CAD Manager should have a copy of BricsCAD – part 1, fixing drawings

This post is an addendum to a post from June, Why every AutoCAD CAD Manager should have a copy of BricsCAD – part 1, fixing drawings. This post provides new information about useful functionality added in V19 of BricsCAD that is useful for any CAD Manager or power user who ever has problem DWG files to deal with. Yes, even if your site is still purely AutoCAD-based.

In this post I’ll describe the (inspector) LISP function. This was added in the V18 cycle but was significantly enhanced in V19. It’s probably the most useful LISP function you’ve never heard of.

Although it’s LISP, that doesn’t mean you have to be a programmer to benefit from it. If you’re a non-programming CAD Manager or power user, you can use it to work out what’s going on within any DWG you’re having problems with. You can use it to discover information about objects in the drawing; not just conventional entities, but also blocks, tables, dictionaries and so on. It even works with custom data.

I gave a brief demonstration of (inspector) in the last BricsCAD Unplugged episode about BLADE. However, you don’t need to use BLADE; just enter (inspector) at the command prompt, select an object and you’ll be presented with a dialog like this:

These dialogs are modeless, and you can have as many displayed as you like; you’re not limited to one. This dialog displays the same data in three different ways. At the top, it’s shown in traditional LISP assoc form, and by playing with the Expand controls you can vary the way in which this is pretty-printed. The bottom left pane shows the data in DXF form, which is probably easiest to read if you’re a non-programmer. If you’re more of an ActiveX person or you prefer to see the properties described with words rather than numbers, you’ll prefer the display on the bottom right, which shows the COM properties for the object.

If you want to select another object to inspect without calling (inspector) again, just use the [ > > ] button.

The grayed-out lines indicate data that is considered read-only. It’s important to note that this doesn’t mean it’s impossible to change the data, merely that the ways in which that data can be changed within a program is restricted. Generally, it means you can’t change the ActiveX properties directly, but there are various other means that can be employed in many cases.

The lists are somewhat interactive; double-click on an entity name and you’ll be given another inspector window for that entity. You can burrow down through the drawing database in this way, looking for the source of your mystery DWG problem. If you’re using it while programming, you can use it to work out what set of circumstances is causing your code to trip up in certain drawings.

The (inspector) function has an optional argument, and what it will accept is very flexible. If you pass an entity name to it, you will get the data for that entity displayed. The same principle applies for various ActiveX objects: pass it a layer table object and the appropriate data will be displayed.

Direct access is provided to various useful things from within BLADE using the pull-down menu Lisp+DCL > Browse DWG Database:

If you pick Browse Text Styles, you’ll see something like this:

Double-click on one of the text style items in the left pane and you will get this:

As you can see, this is very handy for tracking down issues both while programming and when diagnosing DWG problems.

Finally, I should note that there is potential for the inspector to provide even more power in future. Bricsys LISP guru Torsten Moses is investigating the possibility of allowing the inspector to modify data, not just inspect it. There’s potential danger there, but if Torsten can make that work safely then that would be another invaluable tool for any DWG-based CAD Manager.

As I stated in my original post, it’s definitely worth a CAD Manager’s while to do the quick download and install of an evaluation BricsCAD. My experience in dealing with Bricsys is that requests for extensions for evaluation purposes are usually accepted, so you probably won’t have to give up your valuable tool as soon as your 30 days are up.

Video – who is that masked man?

Last night I made another guest appearance on the BricsCAD Unplugged webcast series. This time I was discussing the LISP development environment, BLADE. Here’s the video:

Bonus points will be awarded for identifying three items of interest in the background. No, not counting my dog Sunday asleep at lower left.

Despite going way over time, there was still nowhere near enough opportunity to describe the full LISPy awesomeness that BLADE represents. I am therefore scheduled to return for another two or three episodes beginning in February. In those, I’ll be doing more of a step-by-step demonstration rather than the overview and V19 new feature description I did in this episode. If you have any particular requests for what you want covered, please comment on this post.

I also showed how the tools in BLADE (e.g. the (inspector) function) are still worth having for any DWG-based CAD Manager or power user, even if you’re not a full-on LISP programmer. If you have to work out what’s going on with dodgy DWG files, you’ll want to have (inspector) in your set of tools.

The BricsCAD Unplugged webcast broadcasts run on the Bricsys Facebook page and are then quickly transferred to YouTube. This was the last episode for 2018 because of Christmas and New Year.

Wielding BLADE on BricsCAD Unplugged

In September I was the special guest on the BricsCAD Unplugged episode BricsCAD Unplugged – Steve Johnson 5 surprises moving to BricsCAD. Next Wednesday I will return, this time to wield BLADE, the best thing to happen to CAD LISP in nearly 20 years. I’ll be introducing it and demonstrating a few things, including the new features that came with V19.

These live broadcasts are run on the Bricsys Facebook page and are then quickly transferred to YouTube. This broadcast will start at UTC 15:00 (3 PM) on Wednesday, 19 December 2018. Here’s that time in a few handy time zones:

Location Zone Time
San Francisco PST 07:00
Minneapolis CST 09:00
New York EST 10:00
London GMT 15:00
Brussels CET 16:00
Moscow MSK 18:00
Mumbai IST 20:30
Perth AWST 23:00

BricsCAD V19 promo pricing ends 15 December

I’ve previously explained the changes to BricsCAD pricing that came in with V19, and showed how the prices for new purchases would rise when the promotional period ends.

Upgrading now requires All-In. Problem?

One change I failed to point out, but which was mentioned by a commenter, was that for customers not already on the All-In Maintenance program, they needed to sign up for one year’s All-In in addition to paying the upgrade fee. This meant the upgrade fee was significantly greater than in previous years because customers were effectively paying for two upgrades (e.g. V18 to V19 as an upgrade, plus V19 to V20 covered by All-In).

Although this still represented good value compared with the competition and recent BricsCAD upgrades have proven to be well worth the money, there was still a ‘sticker shock’ effect associated with this double payment, and people who budgeted for upgrades based on previous pricing found themselves in a bind. There were complaints from customers and partners. For Bricsys, accustomed to being the good guys in terms of CAD pricing and licensing fairness, this was an unusual situation.

Fixing the problem

On 16 November, Bricsys responded to this feedback by introducing significantly reduced prices in this scenario, and committing to making good with those customers who already paid the higher prices. How significantly reduced? About half. To give you an idea, an upgrade of BricsCAD Pro V18 to V19 (and later to V20 thanks to All-In) is about US$425 or €400.

I don’t see much to complain about there. It’s great to see a company that actually listens to its customers and acts accordingly, even when doing so costs real money.

However, it’s important to note that this lower upgrade pricing only applies during the promotional period that had already been announced for new license pricing. That period ends on 15 December (i.e. prices go up from 16 December). To make things very plain, at the time of writing:

BricsCAD promotional pricing for both upgrades and new purchases will end in two days.

This only affects on-demand upgraders

None of the above has any effect on customers who were already on the All-In program. That program has always represented the best value way of keeping BricsCAD up to date; I recommend getting on it and staying on it. You can of course hop off it in the future if Bricsys one day fails to keep you happy with its upgrades. Although you’re effectively paying for upgrades in advance it’s still a perpetual license system, which gives you the ability to keep playing even when you stop paying.

There is also the option of the rarely-used subscription (rental) pricing for those cases where licenses are not needed long-term or need to be assigned to a specific project. Regular readers of this blog will be familiar with my thoughts on that licensing model. If you need it, fine. If you don’t, you shouldn’t be strong-armed into adopting it.

Perspective

Bear in mind that with all this talk of rising prices, a little perspective is useful. Based on currently-available pricing, the 3-year cost of BricsCAD Pro including All-In in the USA is $1615, compared with $4605 for AutoCAD on subscription. At the end of the 3 years, you will have a perpetual license of the then-current version of BricsCAD Pro, or you will have nothing at all if you had spent 2.85 times as much to rent AutoCAD.

If you look beyond 3 years (and some customers of mine have AutoCAD licenses ten times that age) then the difference in the value proposition between the products becomes even more dramatic. You’re all smart people with calculators and spreadsheets, so I invite you to do your own comparisons.

Reminder: if you want to get the absolute best value for money from a BricsCAD purchase, remember to do it on or before 15 December. If you do decide to buy, and also want to support this blog, then please use this link to do so:

Bricsys Store

Disclosure: this is a sponsored link. If you buy a Bricsys product using this link, I get part of the proceeds. However, this will not have any effect on the editorial content of this blog. I don’t expect to be able to retire on the proceeds from this link (if any) and I will continue to write what I honestly think about the CAD products and policies of all companies, as I see fit.

DOSLib goes open source

What’s DOSLib?

DOSLib is a free library of LISP functions that adds a lot of functionality to AutoLISP/Visual LISP/BricsCAD LISP. It makes a lot of programming tasks a lot easier, because instead of writing a bunch of code to do tricky stuff, you can just load the library and call a ready-made (dos_xxx) function. There are hundreds of functions that cover the following areas (taken from the McNeel Wiki):

  • Drives – Check for drives, change between drives, and check available disk space.
  • Paths – Manipulate path specifications.
  • Folders – Create, rename, remove, select, and change folders. Return special operating system folders.
  • Files – Copy, delete, move, rename, and select files; get directory listings, search and find multiple instances of files, and change file attributes.
  • Print – Get and set default printers, and spool print files.
  • Configuration – Manipulate Windows-style initialization (INI) files, and access the Windows Registry.
  • Processes – Run operating system commands or other programs.
  • Interface – Get strings, integers, reals, and lists from the user. Display Windows message boxes, progress meters, and splash screens.
  • Strings – Tokenize strings, extract characters, find characters, insert, remove, and replace characters, and trim characters.
  • Math – Trigonometric calculations, vector manipulation, statistical analysis, and more.
  • CAD – Save all and close all open files. Preview drawings and list xrefs.
  • System – Get system information, sort lists, change the system date and time, manipulate the keyboard, and play sounds.

Why would a CAD LISP programmer use it?

There are many DOSLib functions that would be difficult to write purely in LISP and quite a few that would be impossible. So for those people who want to code for AutoCAD and BricsCAD without the bother of learning ARX/BRX and dealing with the associated compiler requirements, DOSLib has been a godsend. It’s worth noting that some of the DOSLib functions have been added to BricsCAD’s LISP engine, so depending on the function you use, you may not even need to load the DOSLib library.

Do impressive-looking stuff without writing much code. You might call it being lazy. I call it being efficient.

A history of dependability

DOSLib has been around for many years. It is currently supported on AutoCAD 2013 and later and BricsCAD Pro V13 and later, but earlier versions have supported AutoCAD releases dating back to 1992! Dale Fugier at Robert McNeel and Associates has been providing outstanding service in developing DOSLib and keeping it up to date. For nothing!

So developers have been able to take advantage of the DOSLib functionality all that time, and Dale has always come up with the goods in terms of updates to work on new releases of AutoCAD and BricsCAD. However, you may have had a nagging doubt about writing code that relies on a third party, or as a CAD Manager relying on such code, no matter how rock-solid reliable that party has proven in the past.

That nagging doubt can now be put to bed, because Dale has announced that DOSLib has been made open source under the very open and simple MIT license. The GitHub DOSLib page has the source, with compilation and other relevant information.

All good news

Dale has also stated that he intends to continue to provide compiled binaries for the foreseeable future, so don’t worry about having to mess with compilers. Even if a meteor happens to land on McNeel headquarters, it’s a pretty safe bet that somebody in the AutoCAD/BricsCAD development community will, after a suitable period of mourning, step forward to compile the code for new AutoCAD/BricsCAD releases when required.

The availability of the source code also opens the door for DWG-based applications (other than BricsCAD) to attempt to provide a higher level of LISP compatibility, to the extent of supporting (dos_xxx) function calls. That means you, the CAD LISP programmer, will have a wider potential audience for any code you write that uses DOSLib functions.

Finally, if you’re an ARX/BRX developer who wants to do something similar to something in a DOSLib function, you now have some handy sample code.

So this is all good news, and yet another example of Dale and McNeel doing the right thing by the CAD community.

Normal service will be resumed as soon as possible

You may have noticed things being a little quiet around here lately. Don’t worry, things are going to ramp up again soon. I have had about a dozen things on the go and for various reasons, some to do with travelling and some technical, I haven’t quite finished any of them. But you should see a flurry of activity before too long.

Here’s some of what I’ve was doing while I was travelling and hoping in vain to get some work done:

Australian and Oceania Veteran Sabre Final 2018

Bling haul from 2018 Australian and Oceania Championships – retained my 50+ Australian and Oceania sabre titles

Competing in the Commonwealth Veteran Sabre Team event

Commonwealth Veteran Sabre Team podium

Commonwealth bling – Retained my Championships in Veteran Sabre (50+) and Veteran Sabre Teams

Also, my daughter Emma capped off a great fencing year by competing for Australia for the first time, finishing with a bronze medal in the Commonwealth Women’s Sabre Team Championship. She’s now ranked 1 in Australia in both Under 17 and Under 20 categories and won three more Western Australian Championships this year, taking her total up to 22.