Wow, where did the year go! Looking back, the last article I wrote was for the changes in the AutoCAD 2016 APIs and Developer Documentation... I will try to be more active this year. I have been trying to blog more, but often find myself spending time working on the developer documentation or preparing for AU sessions.
There have been many small and large changes to the AutoCAD application programming interfaces (APIs) in the latest release along with many improvements to the developer documentation. While I cannot cover them all in depth here, I will highlight the changes that were introduced.
The developer related documentation can be found at:
http://help.autodesk.com/view/ACD/2017/ENU/?home=homepage_dev
The following outlines the changes that were made to the AutoCAD APIs:
General Updates
- The CAD Management and Developer Home Page has been reorganized to provide a better flow. General compatibility information for the AutoLISP, ActiveX, Managed .NET, and ObjectARX APIs are not accessible from this page.
- BMP images used in CUIx files no longer support the color 192,192,192 as a workaround for transparency. If custom images need to support transparency, they must be converted to PNG files and assigned the transparent color. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-94A0EA14-5165-4D84-A2F1-F44D33F80BCC)
AutoLISP
- No new or changed functions this release.
- The
ssget
function topic has been updated to include the:L
,_:V
, and#
selection modes. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-0F37CC5E-1559-4011-B8CF-A3BA0973B2C3) - Historical list of changes from AutoCAD 2009 through AutoCAD 2017 can be used to identify potential problems in existing programs. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-037BF4D4-755E-4A5C-8136-80E85CCEDF3E)
DCL
- No new or changed functions/tiles this release.
ActiveX/COM
- No new classes were added, but the following here changed:
AcadAcCmColor
AcadApplication
AcadLayerStateManager
AcadSecurityParams
- The
IAcadShadowDisplay
class is now obsolete as a result of Mental Ray support being removed. - Four new constants were added to the
AcInsertUnits
enum. - The Transmittal Object Library documentation can be found in the product documentation and includes code samples. Change was made late in the AutoCAD 2016 release, so many people didn't know the change was made. (http://help.autodesk.com/cloudhelp/2017/ENU/AutoCAD-ActiveX/files/GUID-667D1179-3A76-437E-BBB7-12ADF3E614F7.htm)
- The CAD Standards Plug-in documentation is now part of the product documentation and includes code samples. Change was made late in the AutoCAD 2016 release, so many people didn't know the change was made. (http://help.autodesk.com/cloudhelp/2017/ENU/AutoCAD-ActiveX/files/GUID-F126AABA-FE9E-4E26-B51D-88D3E54512B5.htm)
- Documentation continues to be available online through the product help and offline as CHM files in the %ProgramFiles%\Common Files\Autodesk Shared\en-US\ directory. The files are named acad_aag.chm and acadauto.chm.
Managed .NET
- Updates were made to the Reference Guide to include the new classes, interfaces, and functions introduced for this release.
- Palette themes were expanded.
- DwgFiler and DxfFiler class now supports a minor version.
- Refer to the Managed Class Reference Guide (part of the ObjectARX SDK) and the What's New topic for a list of changes made to the API.
- API and documentation can be downloaded from the ADN or ObjectARX websites (http://www.objectarx.com/).
- Reference documentation is accessible via a CHM file in the ObjectARX SDK or as part of a Visual Studio integration installer (http://images.autodesk.com/adsk/files/objectarx_2017_documentation_vs2015.zip).
- Reference documentation can now be accessed using the Intellisense feature of the Visual Studio code editor window and the Object Browser. You must download either the NuGet packages for AutoCAD 2017, or the posted XML files and copy the files to the location of the DLL files that represent the Managed .NET API (http://images.autodesk.com/adsk/files/xml_intellisense_autocad_managed_dotnet_api_2017.zip).
- Managed .NET Developer's Guide was previously only available via the product help system, but is now also available in a CHM file that can be integrated in the ObjectARX SDK. To download the CHM file, go to http://images.autodesk.com/adsk/files/managed_dotnet_dev_guide_2017.zip. Install the ObjectARX SDK, and then copy the two CHM files from the ZIP file into the Docs folder of the ObjectARX SDK installation location.
- Topic about the
ResultBuffer
has been added to the Developer's Guide. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-A43BA3F1-513E-42E5-A21F-633FAF97B5C9) - Topic was created that covers using keywords for prompts asking for a selection set. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-94A4E3DE-0066-4D6A-8558-0252BE8CB85E)
- Topic added that covers Application Initialization and Load-Time Optimization. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-FA3B4125-F7BD-4E89-969F-9DCC90AC6977)
- Documentation related to working with the CUI library was moved from the ObjectARX Developer's Guide to the Managed .NET Developer's Guide. (http://help.autodesk.com/view/ACD/2017/ENU/?guid=GUID-71554E76-8FD5-4853-82CD-3587764CBCAC)
ObjectARX
- Updates were made to include the new classes, interfaces, and functions introduced for this release. The following provides an overview of the main changes to the API
- Graphics system was modified and existing programs will need to be updated.
- Class that provides information about the language and country name.
- String class was expanded to include additional operators and functions.
- Refer to the ObjectARX Reference Guide and the What's New topic for a list of changes made to the API.
- API and documentation can be downloaded from the ADN or ObjectARX websites (http://www.objectarx.com/).
- Reference documentation is accessible via a CHM file in the ObjectARX SDK or as part of a Visual Studio integration installer (http://images.autodesk.com/adsk/files/objectarx_2017_documentation_vs2015.zip).
JavaScript
- No new or changed functions this release. V3 remains the latest version of the API. (https://df-prod.autocad360.com/jsapi/v3/docs/index.html)
- Getting Started Guide can be used to learn the basics of the JavaScript API. (https://df-prod.autocad360.com/jsapi/v3/GettingStart/index.html)
In future blog postings, I hope to cover some of the various developer documentation components that can be used to become more efficient with the AutoCAD APIs.
Sincerely,
Lee
Hi Lee,
Great work on all of this; my question is:
Has the same work on Visual Studio Intellisense been carried out for both the Inventor and Vault APIs?
And who would I have to ask to see if it can be completed in future if not?
Thanks,
Alex.
Posted by: AlexFielder | Tuesday, March 22, 2016 at 06:44 AM
Hello Alex,
I am not aware of any other efforts involving Intellisense for Autodesk desktop APIs other than the work I have done for the AutoCAD Managed .NET libraries. This work and research has only been done within the last few months, so there hasn't been much time to discuss the process I am using to generate the XML files with other groups yet.
I do plan on sharing the process with the other teams inside Autodesk, but how the content is currently stored and published is the hurdle along with resources. I will pass the request along to the Inventor/Vault tech pub teams for them to support Intellisense in the future.
Sincerely,
Lee
Posted by: Lee Ambrosius | Tuesday, March 22, 2016 at 08:17 AM
Hi Lee,
Is there anything new in ObjectARX to control point clouds ?
Working with point clouds using C# or VB.NET would be very useful.
Thanks,
Guillaume
Posted by: GuillaumePlax | Wednesday, March 23, 2016 at 03:09 AM
Hello Guillaume,
I am not aware of any changes to the APIs related to point clouds in AutoCAD 2017, only the general graphic system changes which should improve the performance of point clouds.
Thanks,
Lee
Posted by: Lee Ambrosius | Wednesday, March 23, 2016 at 09:28 AM
Hi Lee,
I downloaded AutoCAD 2017 and I already have VS community 2015 installed on my system , so I also downloaded the ObjectARX for AutoCAD 2017.
I opened one of my simple programs in VS and start the program and of course after setting the Start external program to Cad 2017, so AutoCAD 2017 started as if I running the codes on Autocad 2015 and it did not run in VS environment.
Is there any settings I need to change to have autoCAD running in VS as you have mentioned into your precious article in this page?
Thank you.
Tharwat
Posted by: Tharwat | Friday, March 25, 2016 at 02:25 PM
Hello Tharwat,
Are you referring to debugging an application in AutoCAD or accessing the developer documentation/XML documentation from inside Visual Studio?
Thanks,
Lee
Posted by: Lee Ambrosius | Friday, March 25, 2016 at 03:16 PM
Hi,
I am referring to debugging an application in AutoCAD and it didn't run AutoCAD 2017 in VS by default nor after debugging.
Steps;
Hit start in VS to debug then CAD2017 starts/runs then call NETLOAD to select the .dll file then invoke the command name of the program.
Thanks.
Posted by: Tharwat | Saturday, March 26, 2016 at 03:50 AM
Do you have Update 1 installed for Visual Studio 2015? I do know that we don't support Update 1, but think it is simply related to VC++ though. I will look and see if I can identify the problem, but things should work just like they did when debugging an application in VS2012 for AutoCAD 2016.
Thanks,
Lee
Posted by: Lee Ambrosius | Monday, March 28, 2016 at 09:31 AM
I was able to compile and debug a .NET application without any problems using VS2015 Pro and AutoCAD 2017. The command paused at the breakpoint as expected while the command was executing. So I am not sure what problem you might be encountering, can you share your project settings with me? I am assuming the project compiled fine for an earlier release, if so what release were you targeting before.
Posted by: Lee Ambrosius | Monday, March 28, 2016 at 11:04 AM
A few people are experiencing problems porting their project from VS2013/ACAD2016 to VS2015/ACAD2017.
See .NET forum:
https://forums.autodesk.com/t5/net/first-steps-with-autocad-2017-and-vs2015/td-p/6232024
@Lee, it'd be interesting to see your settings if you say you had no problems. Have you turned on 'Managed Compatibility Mode'?
Were you still able to use Edit&Continue?
Can you join us at that forum argument and share?
Thank you
Posted by: MASSIMO CICOGNANI | Tuesday, March 29, 2016 at 11:22 AM
I debug my projects without Edit & Continue, mainly because much of what I do is across multiple releases of AutoCAD and versions of VS. I do have the same problem with Edit & Continue though and have reached out to the SWD team.
This problem seems to be similar to what was happening with VS2013 and earlier releases of AutoCAD:
http://through-the-interface.typepad.com/through_the_interface/2013/11/debugging-autocad-using-visual-studio-2013.html
I will post an update when I get any information to share.
Posted by: Lee Ambrosius | Tuesday, March 29, 2016 at 04:14 PM
There is a known issue that is currently being looked into that was fixed in a previous release and has since resurfaced in AutoCAD 2017. There are two known workarounds at the moment to allow debugging with Visual Studio:
•Tools > Options > Debug-General > Use Managed Compatibility Mode
•Project > Properties > Debug Enable native code debugging
Both these options do result in the disabling of Edit & Continue.
Posted by: Lee Ambrosius | Tuesday, March 29, 2016 at 05:01 PM
Hi Lee
can you tell me, where I will find the objectarx wizard 2017?
Posted by: Hussein | Tuesday, April 05, 2016 at 03:53 AM
I inquired about the ObjectARX 2017 Wizard 3-4 weeks ago and there was some talk in updating it, but a technical problem was encountered to my understanding and that is why there was a new version created for Managed .NET and not ObjectARX. The code for the ObjectARX Wizard is on GitHub (https://github.com/Developer-Autodesk/ObjectARX-Wizards) if you want to try and make the changes yourself. I am sure once the new one has been built though, it will be posted with the others at http://www.autodesk.com/developautocad.
I will do some following up on the wizard if the new one hasn't been posted by the time I get back from sabbatical.
Posted by: Lee Ambrosius | Tuesday, April 05, 2016 at 02:33 PM
Hi Lee,
Do you know when Autodesk will release the Map ObjectARX 2017 libraries as they still not available: http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=868205
We need these to compile our code...
Posted by: Gareth | Monday, April 11, 2016 at 07:09 PM
I am not aware as to why the AutoCAD Map 2017 Object SDK hasn't been posted yet to the site. I did send an email about this issue, but will not hear much other than maybe a reply as to why I am sending emails during my sabbatical. :) If I hear anything, I will add a new comment.
Posted by: Lee Ambrosius | Tuesday, April 12, 2016 at 01:36 AM
Hello Gareth,
The AutoCAD Map 2017 ObjectARX SDK has been posted to the URL you mentioned; my understanding is only 64-bit is supported even though the page lists both 32- and 64-bit. I might be wrong as I was parsing the email rather quickly.
Thanks for bringing this to my attention, even though it wasn't doc, I am always happy to communicate issues onto others when I can.
Sincerely,
Lee
Posted by: Lee Ambrosius | Wednesday, April 13, 2016 at 10:59 PM