<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss1full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><channel rdf:about="http://hyperpics.blogs.com/beyond_the_ui/"><title>HyperPics: Beyond the UI</title><link>http://hyperpics.blogs.com/beyond_the_ui/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rdf+xml" href="http://feeds.feedburner.com/BeyondTheUi" /><description>Taking a look at software Beyond the UI (User Interface)</description><dc:language>en</dc:language><dc:date>2013-05-10T09:25:22-07:00</dc:date><admin:generatorAgent xmlns:admin="http://webns.net/mvcb/" rdf:resource="http://www.typepad.com/" /><feedburner:info uri="beyondtheui" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><items><rdf:Seq><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef019101fd97f7970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef01901b67f092970b" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017d415a46ab970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017d411f122a970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017ee57a6d07970d" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017d3bde4747970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017616b22180970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017616649ab2970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef017616583dcd970c" /><rdf:li rdf:resource="tag:typepad.com,2003:post-6a00d83420642b53ef01676832ce6f970b" /></rdf:Seq></items><geo:lat>44.42042</geo:lat><geo:long>-88.078962</geo:long></channel><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef019101fd97f7970c"><title>CAD Management Documentation</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/Z3uwHehRyCY/cad-management-documentation.html</link><dc:subject>AutoCAD</dc:subject><dc:subject>AutoCAD based products</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2013-05-10T09:25:22-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>CAD management does not mean the same to everyone, and the role it plays is different from company to company.  The same can be said about the CAD Manager title.  I personally, never held the title but performed many CAD management related tasks over the years.  Where I worked, the CAD Manager was the individual that managed the CAD drafters, but never actually customized, programmed, or installed software.  IT performed the installs and the senior drafters in each CAD department kind of did their own thing when it came to CAD standards.</p>
<p>Sound a bit familiar maybe? Maybe it doesn't.</p>
<p>After many years, two things always stood out around CAD management for me:</p>
<ul>
<li>What is CAD management and what things do I need to consider?</li>
<li>How do I make the transition from my current release to the latest release as smooth as possible?</li>
</ul>
<p>To help answer both questions, a set of documentation was created.  This documentation was added to the AutoCAD 2014 release and it covers:</p>
<ul>
<li>Basics of CAD management</li>
<li>Customization and program compatibility</li>
<li>What is new or changed in the product</li>
<li>Where to find information on installing the product</li>
<li>Much more...</li>
</ul>
<p>The <a href="http://docs.autodesk.com/ACD/2014/ENU/files/GUID-09349362-C480-4C54-B4CC-2120928AB6F3.htm" target="_blank">CAD Management documentation</a> can be accessed from the AutoCAD 2014 help landing page.</p>
<p>If you have any comments on or additions you would like to see added to the CAD Management documentation, please post a comment on this posting.  Comments are not posted automatically on this blog.</p>
<p>Sincerely,<br>  Lee</p></div>]]></content:encoded><description>CAD management does not mean the same to everyone, and the role it plays is different from company to company. The same can be said about the CAD Manager title. I personally, never held the title but performed many CAD...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2013/05/cad-management-documentation.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef01901b67f092970b"><title>AutoCAD 2014 API and Developer Documentation Changes</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/KKIv2ZcZxFI/autocad-2014-developer-documentation-changes.html</link><dc:subject>.NET</dc:subject><dc:subject>ActiveX</dc:subject><dc:subject>AutoCAD</dc:subject><dc:subject>AutoCAD 2014</dc:subject><dc:subject>AutoCAD based products</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:subject>ObjectARX</dc:subject><dc:subject>Programming</dc:subject><dc:subject>VB</dc:subject><dc:subject>Visual Basic/VBA</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2013-04-19T10:00:00-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>By now, there has been lots of information circulating about what is new in AutoCAD 2014 from an end user perspective but what about the API side of things. AutoCAD 2014 offers a number of API changes, updates to the documentation, and a new API.</p>
<p>First and foremost, AutoCAD 2014 is binary compatible with AutoCAD 2013; programs developed for AutoCAD 2013 should run in AutoCAD 2014 without needing to be recompiled.</p>
<p><strong>JavaScript API</strong></p>
<p>This new API is used to provide the core functionality of the DesignFeed and Live Maps features. What can be done with this new API at the moment is limited, but does open up many new possibilities though. For additional information see:</p>
<ul>
<li><a href="http://www.autocadws.com/jsapi/v1/docs/" target="_blank">JavaScript Reference Guide</a></li>
<li><a href="http://through-the-interface.typepad.com/through_the_interface/2013/03/zooming-to-an-autocad-entity-using-javascript.html" target="_blank">Zooming to an AutoCAD entity using JavaScript</a> - Through the Interface (Kean Walmsley)</li>
<li><a href="http://adndevblog.typepad.com/autocad/2013/04/getting-started-with-javascript-api-on-autocad-2014.html" target="_blank">Getting Started with JavaScript API on AutoCAD 2014</a> - AutoCAD DevBlog (Philippe Leefsma)</li>
<li><a href="http://adndevblog.typepad.com/autocad/2013/03/enabling-autocad-2014-javascript-debugging.html" target="_blank">Enabling AutoCAD 2014 JavaScript Debugging</a> - AutoCAD DevBlog (Fenton Webb)</li>
</ul>
<p><strong>Trusted File Paths</strong></p>
<p>Not just an API change but a security change to which files are automatically loaded and from where they can be loaded from. This change impacts all program file types. There are a few API level changes that you should be aware of, but if your programs are not trusted they do not matter much. So the first things you need to be aware of are the <a href="http://docs.autodesk.com/ACD/2014/ENU/files/GUID-541566C6-2738-49DD-87C3-C1490E924A02.htm" target="_blank">SECURELOAD</a> system variable and the <a href="http://docs.autodesk.com/ACD/2014/ENU/files/GUID-F95EE827-7567-44EA-9D69-E9D0D37EE13F.htm" target="_blank">Trusted Locations node on the Files tab of the Options dialog box</a>. For additional information see:</p>
<ul>
<li><a href="http://adndevblog.typepad.com/autocad/2013/03/autocad-2014-and-security.html" target="_blank">AutoCAD 2014 and Security</a> - AutoCAD DevBlog (Gopinath Taget)</li>
<li><a href="http://through-the-interface.typepad.com/through_the_interface/2013/03/autocad-2014-for-developers.html" target="_blank">AutoCAD 2014 for developers</a> - Through the Interface (Kean Walmsley)</li>
</ul>
<p><strong>VBA 7.1</strong></p>
<p>Microsoft has recently given new life to the once deprecated VBA technology. VBA 6.3 was the last supported release, which was still being used in AutoCAD 2013 as long as you downloaded the separate installer. VBA 6.3 was 32-bit only and is why there was performance issues when using it with AutoCAD 64-bit. VBA 7.1 resolves this issue by supporting both 32-bit and 64-bit platforms. If you have VBA programs from AutoCAD 2013 or earlier, and you are using Windows 64-bit you might encounter issues if you are using third-party libraries or form controls that do not support 64-bit.  Check with the third-party vendor and see if they offer a 64-bit version for you to use, if not you will need to rework your code and/or forms.</p>
<p>The ActiveX/VBA document has also been updated as well and can be found installed on your local drive at:</p>
<ul>
<li>%ProgramFiles%\Common Files\Autodesk Shared\acad_aag.chm - Developer's Guide</li>
<li>%ProgramFiles%\Common Files\Autodesk Shared\acadauto.chm - Reference Guide</li>
</ul>
<p><strong>AutoLISP</strong></p>
<p>There were no real notable changes to the API this release or the Visual LISP IDE, with the exception of two new functions.</p>
<ul>
<li><em>showHTMLModalWindow</em> - Displays a modal window with a HTML document; use in conjunction with the new JavaScript API.</li>
<li><em>findtrustedfile</em> - Searches the AutoCAD trusted file paths for the specified file.</li>
</ul>
<p><strong>ObjectARX</strong></p>
<p>Changes to the ObjectARX API are limited to new classes and functions.</p>
<ul>
<li>AcDb
<ul>
<li>AcDbExtents2d - New class</li>
</ul>
<ul>
<li>AcDbGeoDataReactor - New class</li>
</ul>
<ul>
<li>AcDbModelDocViewStyle - New methods added; existing class</li>
</ul>
<ul>
<li>AcDbXrecord - New method added; existing class</li>
</ul>
<ul>
<li>AcDbXrecordIterator - New methods added; existing class</li>
</ul>
</li>
<li>AcAp
<ul>
<li>AcApDocument - New method added; existing class</li>
</ul>
</li>
<li>Global functions
<ul>
<li>acedAddHTMLPalette - New </li>
</ul>
<ul>
<li>acedFindTrustedFile - New</li>
</ul>
<ul>
<li>acedLoadJSScript - New</li>
</ul>
<ul>
<li>acedShowHTMLModalWindow - New</li>
</ul>
<ul>
<li>acedShowHTMLModelessWindow - New</li>
</ul>
</li>
<li>Miscellaneous class
<ul>
<li>IPointCloudFilter2 - New</li>
</ul>
</li>
</ul>
<p><strong>Managed .NET</strong></p>
<p>Changes to the Managed .NET API are limited to new classes and functions.</p>
<ul>
<li>Autodesk.AutoCAD.ApplicationServices
<ul>
<li>Application.ShowModalWindow Method</li>
<li>Application.ShowModelessWindow Method</li>
<li>Document.IsNamedDrawing Property</li>
</ul>
</li>
<li>Autodesk.AutoCAD.DatabaseServices
<ul>
<li>MLeader.Scale Property</li>
<li>Region.AreaProperties Method</li>
<li>RegionAreaProperties Structure </li>
<li>RegionAreaProperties.Area Property</li>
<li>RegionAreaProperties.Centroid Property</li>
<li>RegionAreaProperties.Extents Property</li>
<li>RegionAreaProperties.MomentsOfInertia Property</li>
<li>RegionAreaProperties.Perimeter Property</li>
<li>RegionAreaProperties.PrincipalMoments Property</li>
<li>RegionAreaProperties.ProductOfInertia Property</li>
<li>RegionAreaProperties.RadiiOfGyration Property</li>
<li>Xrecord.Append Method</li>
<li>XrecordEnumerator.Current Property</li>
<li>XrecordEnumerator.InsertAtCurrent Method</li>
<li>XrecordEnumerator.RemoveCurrent Method</li>
</ul>
</li>
<li>Autodesk.AutoCAD.EditorInput
<ul>
<li>Editor.ApplyCurDwgLayerTableChanges Method</li>
<li>Editor.PostCommandPrompt Method</li>
</ul>
</li>
<li>Autodesk.AutoCAD.GraphicsInterface
<ul>
<li>TextStyle.FromTextStyleTableRecord Method</li>
<li>TextStyle.ToTextStyleTableRecord Method</li>
</ul>
</li>
<li>Autodesk.AutoCAD.Windows
<ul>
<li>Window.Focus Method</li>
</ul>
</li>
<li>Autodesk.AutoCAD.ApplicationServices.Core
<ul>
<li>Application.LoadJSScript Method</li>
</ul>
</li>
</ul>
<p>The Developer's Guide was updated in the following areas were changed:</p>
<ul>
<li>Viewports and layouts</li>
<li>Plotting and publishing</li>
<li>Document events</li>
<li>Disposal of objects</li>
<li>Plot styles</li>
<li>Visual styles and render presets</li>
<li>Raster images and xrefs</li>
<li>Clipping blocks, xrefs, and raster images</li>
<li>Defining and inserting blocks, and working with attributes</li>
</ul>
<p>The <a href="http://docs.autodesk.com/ACD/2014/ENU/" target="_blank">.NET Developer's Guide</a> is part of the product help.</p>
<p>Hope this helps give you an understanding of the changes that you might or might not need to make with your custom programs.</p>
<p>Sincerely,<br>  Lee</p></div>]]></content:encoded><description>By now, there has been lots of information circulating about what is new in AutoCAD 2014 from an end user perspective but what about the API side of things. AutoCAD 2014 offers a number of API changes, updates to the...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2013/04/autocad-2014-developer-documentation-changes.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017d415a46ab970c"><title>AutoCAD Developer Documentation Survey</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/mgWoG8DFOPY/autocad-developer-documentation-survey.html</link><dc:subject>ActiveX</dc:subject><dc:subject>AutoCAD</dc:subject><dc:subject>Autodesk</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:subject>C++</dc:subject><dc:subject>ObjectARX</dc:subject><dc:subject>Programming</dc:subject><dc:subject>VB</dc:subject><dc:subject>Visual Basic/VBA</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2013-02-28T09:28:23-08:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>Do you create AutoLISP, VBA, .NET, or ObjectARX applications to automate tasks for your company or to solve problems for a client?  If so, chances are you might have used the AutoCAD developer documentation. The Learning Experience team would like some input on the developer documentation via the AutoCAD Developer Documentation Survey. The survey will take 5-10 minutes of your time.</p>
<p>Here is the link to the survey - <br><a href="https://www.surveymonkey.com/s/H72RWJC">https://www.surveymonkey.com/s/H72RWJC</a></p>
<p>Sincerely,<br>  Lee</p></div>]]></content:encoded><description>Do you create AutoLISP, VBA, .NET, or ObjectARX applications to automate tasks for your company or to solve problems for a client? If so, chances are you might have used the AutoCAD developer documentation. The Learning Experience team would like...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2013/02/autocad-developer-documentation-survey.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017d411f122a970c"><title>My Time with Microsoft's Surface RT</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/qpNsbdnN0hw/microsoft-surface-rt-and-surface-pro-part-1.html</link><dc:subject>Apple</dc:subject><dc:subject>Hardware</dc:subject><dc:subject>Microsoft</dc:subject><dc:subject>Web/Tech</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2013-02-17T17:23:44-08:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>I purchased a Microsoft Surface RT back on Day One, pre-ordered actually before the Oct. 26th release, and have enjoyed it ever since. For the most part, my Surface RT has replaced my iPad except for one app and that is for the use of RSA SecurID which I can now access from my Windows Phone. Things I have done with the Surface RT can be done with an iPad, but in many cases tasks that require lots of typing are much easier on the Surface with the use of the touch cover.</p>
<p>My iPad 3 64GB version cost $699 without a cover and no external keyboard or stand. If you want a keyboard, you can buy covers that have a keyboard in them starting at aboput $89 which typically do not have a trackpad area. No MicroSD card support.</p>
<p>My Surface RT 64GB version cost $699 with a touch cover that has a trackpad area and has a built in stand. The Surface RT 64GB without a cover is $599. Support for MicroSD cards up to 64GB.</p>
<p>With my Surface RT, I have</p>
<ul>
<li>Started writing a book that is being authored in MS Word</li>
<li>Played a number of Xbox Live games (Taptiles and Where's My Water can be addicting at times)</li>
<li>Listened to my music collection as well as free streaming of music via Xbox Music for hours</li>
<li>Watched hours of TV shows and movies from the Netflix and Hulu Plus apps while on my treadmill</li>
<li>Experienced full Flash websites such as Webkinz just to see how well those sites worked</li>
</ul>
<p>When it was first announced and even to this day, many have balked at the Surface RT as simply another device and did not take the time to understand exactly what Microsoft was attempting to do. Out of the gate, it did not have the apps that devices running Android or iOS had so many gave it little to no chance at all but those devices did not have stellar libraries of apps near the start of their life either. Anyways, Microsoft was not just releasing another device, but a device that was part of an ecosystem that they were beginning to lay the ground work for.</p>
<p>In my honest opinion, Microsoft has failed to explain what the difference is between their Surface products and the versions of Windows to their customers. They have not tried enough to show how they align against Apple's product family, nor what their devices can do. Singing and dancing is eye catching, but it does not focus on the things people need to use a computer or mobile device for. Here is how I see things as they align with Apple's products:</p>
<p>Apple's product compared to Microsoft's product</p>
<ul>
<li>iPad (runs iOS) = Surface RT (runs Windows 8 RT)</li>
<li>AirBook (runs Mac OS X) = Surface Pro (runs Windows 8 Professional) </li>
</ul>
<p>Microsoft Windows RT is similar to Apple iOS, which both are designed for mobile devices. The devices that run these operating systems are often used to read books, compose emails, take notes while in a meeting, watch videos, listen to music, and play games. A mobile device commonly does not replace the functionality of a desktop or laptop because of their processing limitations and lack of business software, one can of course argue this fact with cloud computing but not everyone can stay connected 24/7 yet.</p>
<p>Many in the industry have unfairly compared the Surface RT to what it is not, and that is a laptop such as an AirBook or MacBook. Windows RT runs a mobile OS, in which the AirBook and MacBooks run a desktop OS. To be fair, you have to really compare the Surface RT to an iPad which cannot run applications designed for a desktop OS, thereby you cannot run legacy applications such as Adobe Photoshop or AutoCAD on your iPad. Sure there are apps on the iPad that give you some of the functionality of legacy applications such as AutoCAD WS, Pages, Adobe Photoshop Express, but you cannot simply pull out your install DVDs and install the software you might have invested hundreds or thousands of dollars in.</p>
<p>At the end of the day, consumers are confused as to what Microsoft is trying to do by offer two different Windows platforms and what advantage each offers over the other. This was evident by a trip last week to my local Best Buy when I was on the search for a Windows Surface Pro with 128GB of RAM. Employees almost seemed overwhelmed by the number of people interested in the devices and not really sure how to explain things to the customer.</p>
<p>Here are points of interest based on my experience with the Surface RT:</p>
<ul>
<li>Battery life is around 8 hours or more based on what you are doing.</li>
<li>If you are primarily using it as a tablet, you will not need the type or touch cover but they are excellent accessories if you plan to use the MS Office applications though.</li>
<li>Comes with an installed version of MS Office that is designed for Windows RT which contains Word, Excel, PowerPoint, and OneNote. This version does support most of the functionality that you will find in the full MS Office suite with the exception of Outlook, Access, and creating VBA macros.</li>
<li>Does have a Desktop mode so you can manage your files just like in Windows 8.</li>
<li>Does not support DRM for videos because it does not have Windows Media Player, which I feel is a mistake on Microsoft's part. However, I can display play my MP4 video files without any problem.</li>
<li>Offers a USB port which you can use to plug-in an external DVD player or hard drive/thumb drive to transfer data files, plu in a full size keyboard or mouse, or even an Xbox controller for games that support it, and other USB devices.</li>
<li>MicroSD card slot allows you to expand the amount of storage available.</li>
<li>Utilizes your Windows single login, so your settings move from desktop to Surface and so on.</li>
<li>SkyDrive is an integral part of the Surface experience as it is installed by default and helps you extend the available drive space.</li>
<li>Snapped states do make it possible to have two applications open at a time.</li>
<li>16x9 screen is nice for watching your videos, Netflix, and Hulu Plus.</li>
<li>Does support video out using a dedicated port, you can buy a HDMI or VGA connector for your Surface. I have used both and they seem to work just fine based on the limited video resolution options that are available. Netflix on my 42" HDTV from the Surface seemed to worked well for what I think was non-HD source to begin with. I have also used the VGA with my 27" computer monitor and had no problems.</li>
<li>While the size is a plus for watching videos and playing games, it does take a bit of getting used to though for reading eBooks. Holding the device in portrait mode seems a bit awkward because of its size, but horizontal works just fine. The Kindle app does allow you to compress the margins so you are not reading across the whole screen which is very nice.</li>
<li>Browsing the Internet can be done via Internet Explorer from the Start Screen which seems to have some compatibility issues with older websites, but the desktop Internet Explorer seems to have much better support for older sites and sites that require Adobe Flash. So unlike iOS, Windows RT can display Flash content which is a huge plus for sites that still rely on that technology.</li>
<li>Wireless printing is supported, my HP Printer that was connected to the WiFi was found and installed will little to no effort at all.</li>
<li>Connects to your Xbox via the Surface application so you can navigate your Xbox dashboard and play media.</li>
</ul>
<p>As I have used the device and others saw it in action, I began to form an opinion as to who might be the best user for a Surface RT. Here is what I came up with:</p>
<ul>
<li>High school and college students that need to access the Internet and write term papers, but also want something smaller and have a longer battery life than a laptop.</li>
<li>Users who already have a desktop or laptop, and want something smaller when traveling or commuting from home to the office. It is also great as a secondary machine for the family since the IE browser is compatible with sites that have Flash unlike an iPad, and it offers most of the functionality in MS Office that many will use.</li>
<li>Gamers that want to increase their Gamerscore on the go can play Xbox Live games from the Windows Store and enhance their experience with the Surface integration with their Xbox.</li>
</ul>
<p>The Surface RT is not ideal for those that</p>
<ul>
<li>Are looking to replace their current desktop or laptop.</li>
<li>Need to run legacy applications such as AutoCAD or Adobe Photoshop.</li>
</ul>
<p>In the end, you need to choose what device is best for you and your family's needs. If you are in the market for a new and fresh experience, be sure to check out the Microsoft Surface. Very early on, it was available only through Microsoft's online and retail stores. This was an excellent way to bring it to the market, but not to the masses. Recently, Microsoft has partnered up with <a href="http://www.bestbuy.com/site/Computing-Promotions/Surface-with-Windows-RT/pcmcat290500050018.c?id=pcmcat290500050018&amp;WT.mc_id=USHH" target="_blank" title="Best Buy">Best Buy</a> and <a href="http://www.staples.com/Microsoft-Surface/cat_CL168873?WT.mc_id=USHH" target="_blank" title="Staples">Staples</a> to get the products in the hands of more potential buyers.</p>
<p>I hope this article was of interest to you.</p>
<p>Sincerely,<br>  Lee </p></div>]]></content:encoded><description>I purchased a Microsoft Surface RT back on Day One, pre-ordered actually before the Oct. 26th release, and have enjoyed it ever since. For the most part, my Surface RT has replaced my iPad except for one app and that...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2013/02/microsoft-surface-rt-and-surface-pro-part-1.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017ee57a6d07970d"><title>Tis Be the Season of Gadgets - Microsoft</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/jRKQje26JlM/tis-be-the-season-of-gadgets-microsoft.html</link><dc:subject>Web/Tech</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2012-11-21T08:20:28-08:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>You can always tell when Fall in the US has arrived; the leaves begin to fall, the smell of pumpkin pie fills the air, and the beeps and flashing of new gadgets come to life in the stores. This year is no different with huge releases by Microsoft, Apple, Amazon, Barnes &amp; Nobles, Nokia, Nintendo, and a number of other manufacturers.  In years past, the holiday season never seemed to be so packed full of gadgets trying to fight for your attention and more importantly your dollars.</p>
<p>
<a class="asset-img-link" href="http://hyperpics.blogs.com/.a/6a00d83420642b53ef017d3e05786b970c-pi" style="display: inline;"><img alt="C1c7a427-da77-4702-b0f3-0fb3621743a4_4" border="0" class="asset  asset-image at-xid-6a00d83420642b53ef017d3e05786b970c" src="http://hyperpics.blogs.com/.a/6a00d83420642b53ef017d3e05786b970c-800wi" title="C1c7a427-da77-4702-b0f3-0fb3621743a4_4"></img></a><br>Microsoft has been very busy this Fall with releasing a number of different products: from software to new hardware.  While Microsoft is typically known for their software, they have been slowly investing in a complete ecosystem that stretches from the office to the home; prodictivity and entertainment.  You most likely utilize Windows and Office at the work and even at home, but that is not where the stretch of Microsoft ends.</p>
<p>Over the years, Microsoft has been working on expanding its ecosystem to go beyond just productivity and that means focusing on entertainment. While it has not always spelled success for Microsoft, it has laid the foundation for improvements to Windows and even the introduction of the Xbox over 10 years ago.</p>
<p>
<a class="asset-img-link" href="http://hyperpics.blogs.com/.a/6a00d83420642b53ef017c33d6f722970b-pi" style="display: inline;"><img alt="Cd5fcc48-93eb-41dc-ad68-060e0d2ef17a" border="0" class="asset  asset-image at-xid-6a00d83420642b53ef017c33d6f722970b image-full" src="http://hyperpics.blogs.com/.a/6a00d83420642b53ef017c33d6f722970b-800wi" title="Cd5fcc48-93eb-41dc-ad68-060e0d2ef17a"></img></a><br>This Fall, Microsoft has rolled out a number of services and new products that expand its portfolio.  While all might not be an instant or as successful as those on the market before, they provide a foundation for what is possible in the future.</p>
<ul>
<li>Windows 8 - Introduces a single platform that allows developers to create cross-platform applications and be able to exchange information seamlessly between devices. Windows 8 runs on desktops utilizing Intel and AMD 32- and 64-bit processors, phones and tablets running 32-bit ARM processors. (<a href="http://www.microsoft.com/office/preview/en/" target="_self">http://windows.microsoft.com/en-US/windows/home</a>)</li>
<li>Microsoft Surface - The first interation of the hardware is designed for Windows RT, which is based on Windows 8 but for ARM processors. The target audience for this device, is those that want a mix of productivity and entertainment, and do not need to worry about running "legacy" software that was designed for x86/x64 processors. Similar to an Apple iPad or Samsung Galaxy, the Surface utilizes a marketplace to purchase and download Windows Store apps. Unlike the iPad and Galaxy though, the same apps can be ran on a laptop or desktop running Windows 8. (<a href="http://windows.microsoft.com/en-US/windows/microsoft-surface" target="_self">http://windows.microsoft.com/en-US/windows/microsoft-surface</a>)</li>
<li>Xbox Music - An application/service that works across the entire Microsoft ecosystem. Buy misic from one device, lets say a desktop and then access it from your Xbox or Surface. The service also allows you to stream music as well in a similar fashion to Spotify. Xbox Music is a standard feature of Windows 8. (<a href="http://www.xbox.com/en-US/entertainment/music" target="_self">http://www.xbox.com/en-US/entertainment/music</a>)</li>
<li>MS Office 2013 - Next version of MS Office and is currently available as a preview. As some might not know, Surface comes with a version of MS Office 2013 that includes Word, Excel, PowerPoint and OneNote. While not a complete version of Office on Surface, it provides most of the creation and editing tools taht you are already familiar with in MS Office 2010. (<a href="http://www.microsoft.com/office/preview/en/" target="_self">http://www.microsoft.com/office/preview/en/</a>)</li>
<li>Visual Studio 2012 - Latest version of Visual Studio that allows you to develop applications that take advantage of .NET Framework 4.5 and create applications for Windows Phone 8 and Windows Store apps. (<a href="http://www.microsoft.com/visualstudio/eng/" target="_self">http://www.microsoft.com/visualstudio/eng/</a>)</li>
<li>Skype - An improved service along with applications that are on virtually every device on the market; from smart/Internet-enabled TVs to phones and computers. (<a href="http://www.skype.com/intl/en-us/home" target="_self">http://www.skype.com/intl/en-us/home</a>)</li>
</ul>
<p>As I get time, I will share more detailed thoughts and comments on some of the products and services that Microsoft has recently released. From what I can tell, Microsoft is focused on creating a connected and complete ecosystem across all its software and hardware platforms. This unifiied platform and all encompassing ecosystem is for the most part a one of a kind, and will be interesting to see if it is what people are looking for or if it is simply ahead of its time.</p>
<p>Let me know what your thoughts are on Microsoft's direction.  It is a bit early to tell since new OSs and ecosystems take time to unfold at times especially when people might want to participate in the ecosystem but cannot because of phone contracts, fear that it will not run on their current hardware, or simply disruptions in daily habits and workflow.</p>
<p>Sincerely,<br>  Lee </p></div>]]></content:encoded><description>You can always tell when Fall in the US has arrived; the leaves begin to fall, the smell of pumpkin pie fills the air, and the beeps and flashing of new gadgets come to life in the stores. This year...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2012/11/tis-be-the-season-of-gadgets-microsoft.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017d3bde4747970c"><title>Updated AutoCAD 2013 ActiveX Developer Documentation</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/JOffaZI5MjU/updated-autocad-2013-activex-developer-documentation.html</link><dc:subject>ActiveX</dc:subject><dc:subject>AutoCAD 2013</dc:subject><dc:subject>AutoCAD based products</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:subject>Visual Basic/VBA</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2012-09-06T08:49:23-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>A new update to the AutoCAD 2013 ActiveX Developer Documentation has recently been made available through the <a href="http://www.autodesk.com/developautocad" target="_self">AutoCAD Developer Center</a>. The updated documentation set can be found at the bottom of the page under the Documentation section.</p>
<p>
<a class="asset-img-link" href="http://hyperpics.blogs.com/.a/6a00d83420642b53ef0177448d5c93970d-pi" style="display: inline;"><img alt="ActiveXDevDocs" class="asset  asset-image at-xid-6a00d83420642b53ef0177448d5c93970d" src="http://hyperpics.blogs.com/.a/6a00d83420642b53ef0177448d5c93970d-320wi" title="ActiveXDevDocs"></img></a><br><br>The updates that were made to the documentation are:</p>
<ul>
<li>Corrections to the existing VBA samples</li>
<li>VBA samples ported to show the use of AutoLISP/Visual LISP</li>
<li>Reference documentation updated to include all the latest and previously missing classes/properties/methods</li>
<li>Full list of changes to the API from AutoCAD 2000 through AutoCAD 2013</li>
<li>Corrections to and the inclusion of the ActiveX Developer's Guide</li>
</ul>
<p>To utilize the documentation with the VBA IDE or Visual LISP IDE, download and extract the contents of the ZIP file to the following location:</p>
<p>C:\Program Files\Common Files\Autodesk Shared</p>
<p>Sincerely,<br>  Lee</p></div>]]></content:encoded><description>A new update to the AutoCAD 2013 ActiveX Developer Documentation has recently been made available through the AutoCAD Developer Center. The updated documentation set can be found at the bottom of the page under the Documentation section. The updates that...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2012/09/updated-autocad-2013-activex-developer-documentation.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017616b22180970c"><title>Hooking Up Custom Help for Your Commands</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/OtjbY-nFZcI/hooking-up-custom-help-for-your-commands.html</link><dc:subject>AutoCAD</dc:subject><dc:subject>AutoCAD based products</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2012-07-25T08:22:48-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>Help is commonly one of the last things that many new developers think about or never think about, but it should be one of the first things you work on as it is your first line of support for your custom utilities.  AutoCAD provides ways for you to call a help topic or file, and hook up F1 support for your custom commands that you define with AutoLISP, .NET, or ObjectARX.</p>
<p>In this article, I focus on calling help and hooking up F1 support for commands defined using AutoLISP.  To accomplish these tasks, you use the <span style="font-family: andale mono,times;">HELP</span> and <span style="font-family: andale mono,times;">SETFUNHELP</span> functions.</p>
<p>Both the <span style="font-family: andale mono,times;">HELP</span> and <span style="font-family: andale mono,times;">SETFUNHELP</span> functions support the use of HyperText Markup Language (HTM/HTML), Microsoft Help (CHM), and WinHelp (HLP) files.  When you make a call to a HTM/HTML file, the file is loaded into the AutoCAD Help browser.  CHM and HLP files are displayed in their respective application windows.</p>
<p>The syntax for the <span style="font-family: andale mono,times;">HELP</span> function is:</p>
<p>(help <em>[help_file [chm_hlp_topic [chm_help_window_command]]]</em>)</p>
<p>The following examples demonstrate how to directly call help from AutoCAD:</p>
<p>;; Displays the topic for the LINE command from the default AutoCAD help<br>(help "" "LINE")</p>
<p>;; Displays a Web page<br>(help "<a href="http://www.hyperpics.com/">http://www.hyperpics.com/</a>")</p>
<p>;; Displays a local HTML file<br>(help "C:\\Program Files\\Autodesk\\AutoCAD 2013 Help\\English\\Help\\index.html")</p>
<p>;; Displays a CHM file<br>(help "acet.chm" "html/BLOCKREPLACE")</p>
<p>Now that you have seen how to call help with the <span style="font-family: andale mono,times;">HELP</span> function, the <span style="font-family: andale mono,times;">SETFUNHELP</span> function is very similar with the exception of needing to provide the name of the function.  The function name must include the 'c:' (command) prefix.</p>
<p>The syntax for the <span style="font-family: andale mono,times;">SETFUNHELP</span> function is:</p>
<p>(setfunhelp c:function_name <em>[help_file [chm_hlp_topic [chm_help_window_command]]]</em>)</p>
<p>The following examples demonstrate how to set up contextual/F1 help for custom commands:</p>
<p>;; Displays the topic for the LINE command from the default AutoCAD help<br>(defun c:CMD1 () (getstring "\nEnter some text: "))<br>(setfunhelp "c:CMD1" "" "LINE")</p>
<p>;; Displays a Web page<br>(defun c:CMD2 () (getstring "\nEnter some text: "))<br>(setfunhelp "c:CMD2" "<a href="http://www.hyperpics.com/">http://www.hyperpics.com/</a>")</p>
<p>;; Displays a local HTML file<br>(defun c:CMD3 () (getstring "\nEnter some text: "))<br>(setfunhelp "c:CMD3" "C:\\Program Files\\Autodesk\\AutoCAD 2013 Help\\English\\Help\\index.html")</p>
<p>;; Displays a CHM file<br>(defun c:CMD4 () (getstring "\nEnter some text: "))<br>(setfunhelp "c:CMD4" "acet.chm" "html/BLOCKREPLACE")</p>
<p>Once the command is defined and the Help topic is associated with the command, you can display the topic by pressing F1 under the following situations:</p>
<ul>
<li>When AutoComplete is enabled and the full name of the command is displayed, but the command is not started yet.</li>
<li>When the command is active.</li>
</ul>
<p>For more information on these two functions, see the following:</p>
<ul>
<li><a href="http://docs.autodesk.com/ACD/2013/ENU/files/GUID-4CB4A951-1507-4F3D-9F7B-93FF3A2C9850.htm" target="_self">help (AutoLISP)</a></li>
<li><a href="http://docs.autodesk.com/ACD/2013/ENU/files/GUID-61B2326A-8DE4-46C4-B9F9-22B8D163A761.htm" target="_self">setfunhelp (AutoLISP)</a></li>
</ul>
<p>Sincerely,<br>  Lee</p></div>]]></content:encoded><description>Help is commonly one of the last things that many new developers think about or never think about, but it should be one of the first things you work on as it is your first line of support for your...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2012/07/hooking-up-custom-help-for-your-commands.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017616649ab2970c"><title>Create a Table and Select a Cell to Change with AutoLISP and ActiveX</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/sHNwzMUmT9c/create-a-table-and-select-a-cell-to-change-with-autolisp-and-activex.html</link><dc:subject>ActiveX</dc:subject><dc:subject>AutoCAD</dc:subject><dc:subject>AutoCAD based products</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2012-07-12T08:03:15-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>Tables are one of the most complex objects, after dimensions, to create and edit through the APIs that AutoCAD offers.  The appearance of a table is controlled by its properties and methods, along with the table style that it is assigned.  Tables are made up of individual cells which can contain text, blocks, and formulas along with additional formatting.</p>
<p>In the previous posting, <a href="http://hyperpics.blogs.com/beyond_the_ui/2012/07/creating-a-table-style-with-autolisp-and-the-activex-api.html" target="_self">Creating a Table Style with AutoLISP and the ActiveX API</a>, I showed an exmple of how to create a custom table style.</p>
<p>In this article, I show for to create a table and then edit the value of a cell by picking a point within a table cell.</p>
<p>(vl-load-com)</p>
<p>;; Example adds a table to model space that is 5 rows by 3 columns<br>;; with a row height of 10 units and column width of 30 units<br>(defun c:AddTable( / acadObj curDoc insPt mSpaceObj tableObj)<br>    (setq acadObj (vlax-get-acad-object))<br>    (setq curDoc (vla-get-ActiveDocument acadObj))</p>
<p>    (setq insPt (vlax-3d-point 0 0 0))</p>
<p>    (setq mSpaceObj (vla-get-ModelSpace curDoc))<br>    (setq tableObj (vla-Addtable mSpaceObj insPt 5 3 10 30))</p>
<p>    (vla-put-StyleName tableObj "MyTableStyle")<br>)</p>
<p>;; Example shows how to pick a single table cell on screen and change its value.<br>;; This example demonstrates the ActiveX properties/methods HitTest,<br>;; GetCellType, GetText and SetText.<br>(defun c:SelectTableCell ( / pick vHeight vWidth lwrLeft uprRight vector<br>                                           SS_TABLES cnt eMax tableObj row col cellValueOrg)<br>  <br>  ;; Ask the user for a point on screen<br>  (if (/= (setq pick (vlax-3d-point (getpoint "\nSelect Cell to edit: "))) nil)<br>    (progn</p>
<p>      ;; Get the corners of the screen display to build our selection set<br>      (setq vHeight (getvar "viewsize"))<br>      (setq vWidth (* (/ (nth 0 (getvar "screensize")) (nth 1 (getvar "screensize"))) vHeight))</p>
<p>      (setq lwrLeft (list (- (nth 0 (getvar "viewctr")) (/ vWidth 2)) (- (nth 1 (getvar "viewctr")) (/ vHeight  2)) 0))<br>      (setq uprRight (list (+ (nth 0 (getvar "viewctr")) (/ vWidth 2)) (+ (nth 1 (getvar "viewctr")) (/ vHeight  2)) 0))</p>
<p>      ;; Get the current display orientation<br>      (setq vector (vlax-make-safearray vlax-vbDouble '(0 . 2)))<br>      (vlax-safearray-fill vector '(1 1 1))<br>      (setq vector (vlax-make-variant vector))<br>      <br>      ;; Select all the table objects visible on screen<br>      (if (setq SS_TABLES (ssget "C" lwrleft uprright (list (cons 0 "ACAD_TABLE"))))<br>        (progn<br>   <br>          (setq cnt 0<br>                eMax (sslength SS_TABLES)<br>          )</p>
<p>          ;; Step through all the items in the selection set<br>          (while (&gt; eMax cnt) <br>            ;; Geta table object from the selection set<br>            (setq tableObj (vlax-ename-&gt;vla-object (ssname SS_TABLES cnt)))<br>  <br>            ;; Return values for what cell was picked in<br>            (setq row 0<br>                  col 0)</p>
<p>            ;; Below is also a sample to see if a valid cell is picked<br>            ;; (vla-select table pick vector vector 5 5 :vlax-false 'row 'col)<br>     <br>            ;; Check to see if a valid cell was picked<br>            (if (= (vla-hittest tableObj pick vector 'row 'col) :vlax-true)<br>              (progn</p>
<p>                ;; Get out of the loop<br>                (setq cnt (1+ eMax))<br>  <br>                ;; Check to see what the Cell Type is (Text or Block)<br>                (if (= (vla-GetCellType tableObj row col) acTextCell)<br>                  (progn<br>                    ;; Let's get the value out<br>                    (setq cellValueOrg (vla-GetText tableObj row col))</p>
<p>                    ;; Change the current value<br>                    (vla-SetText tableObj row col "Revised Text")<br>                    (vla-Update tableObj)<br>                    (alert "Cell text was changed.")<br>          <br>                    ;; Restore the original value<br>                    (vla-SetText tableObj row col cellValueOrg)<br>                    (vla-Update tableObj)<br>                    (alert "Cell text was changed back to the original value.")<br>                    (setq cnt eMax)<br>                  )<br>                )<br>              )<br>            )<br>            (setq cnt (1+ cnt))<br>          )<br>        )<br>      )<br>    )<br>  )<br> (princ)<br>)</p>
<p>Sincerely,<br>  Lee</p></div>]]></content:encoded><description>Tables are one of the most complex objects, after dimensions, to create and edit through the APIs that AutoCAD offers. The appearance of a table is controlled by its properties and methods, along with the table style that it is...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2012/07/create-a-table-and-select-a-cell-to-change-with-autolisp-and-activex.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef017616583dcd970c"><title>Creating a Table Style with AutoLISP and the ActiveX API</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/gWp1wBYUZvE/creating-a-table-style-with-autolisp-and-the-activex-api.html</link><dc:subject>ActiveX</dc:subject><dc:subject>AutoCAD</dc:subject><dc:subject>AutoCAD based products</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2012-07-11T06:57:00-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>Table styles in AutoCAD are primarily created using the Table Style dialog box (TABLESTYLE command) since there is no command line support, which limits the ability of creating a table style using a script or the COMMAND function in AutoLISP.  However, you can leverage the ActiveX API to create or modify table style and cell styles defined in your current drawing.</p>
<p><span style="color: #ff0000;"><strong>NOTE:</strong></span> ActiveX API is not available on AutoCAD for Mac.</p>
<p>To create a table style, you must access the ACAD_TABLESTYLE dictionary in the current drawing.  Once a reference to the ACAD_TABLESTYLE dictionary is obtained, you can then check to see if a table style already exists using the VLA-GETOBJECT function or add a table style using the VLA-ADDOBJECT function.</p>
<p>The following sample code demonstrates how to create a new table style, but does not check to see if the table style already exists first.  If the table style does exist, an error will occur.</p>
<p>(vl-load-com)<br>(defun c:CreateTableStyle()<br>    ;; Get the AutoCAD application and current document<br>    (setq acad (vlax-get-acad-object))<br>    (setq doc (vla-get-ActiveDocument acad))</p>
<p>    ;; Get the Dictionaries collection and the TableStyle dictionary<br>    (setq dicts (vla-get-Dictionaries doc))<br>    (setq dictObj (vla-Item dicts "acad_tablestyle"))<br>    <br>    ;; Create a custom table style<br>    (setq key "MyTableStyle"<br>          class "AcDbTableStyle")<br>    (setq custObj (vla-AddObject dictObj key class))</p>
<p>    ;; Set the name and description for the style<br>    (vla-put-Name custObj "MyTableStyle")<br>    (vla-put-Description custObj "This is my custom table style")</p>
<p>    ;; Sets the bit flag value for the style<br>    (vla-put-BitFlags custObj 1)</p>
<p>    ;; Sets the direction of the table, top to bottom or bottom to top<br>    (vla-put-FlowDirection custObj acTableTopToBottom)</p>
<p>    ;; Sets the supression of the table header<br>    (vla-put-HeaderSuppressed custObj :vlax-false)</p>
<p>    ;; Sets the horizontal margin for the table cells<br>    (vla-put-HorzCellMargin custObj 0.22)</p>
<p>    ;; Sets the supression of the table title<br>    (vla-put-TitleSuppressed custObj :vlax-false)</p>
<p>    ;; Sets the vertical margin for the table cells<br>    (vla-put-VertCellMargin custObj 0.22)</p>
<p>    ;; Set the alignment for the Data, Header, and Title rows<br>    (vla-SetAlignment custObj (+ acDataRow acTitleRow) acMiddleLeft)<br>    (vla-SetAlignment custObj acHeaderRow acMiddleCenter)</p>
<p>    ;; Set the background color for the Header and Title rows<br>    (setq colObj (vlax-create-object "AutoCAD.AcCmColor.19"))<br>    (vla-SetRGB colObj 98 136 213)<br>    (vla-SetBackgroundColor custObj (+ acHeaderRow acTitleRow) colObj)</p>
<p>    ;; Clear the background color for the Data rows<br>    (vla-SetBackgroundColorNone custObj acDataRow :vlax-true)</p>
<p>    ;; Set the bottom grid color for the Title row<br>    (vla-SetRGB colObj 0 0 255)<br>    (vla-SetGridColor custObj acHorzBottom acTitleRow colObj)</p>
<p>    ;; Set the bottom grid lineweight for the Title row<br>    (vla-SetGridLineWeight tableStyle acHorzBottom acTitleRow acLnWt025)</p>
<p>    ;; Set the inside grid lines visible for the data and header rows<br>    (vla-SetGridVisibility custObj acHorzInside  (+ acDataRow acHeaderRow) :vlax-true)</p>
<p>    ;; Set the text height for the Title, Header and Data rows<br>    (vla-SetTextHeight custObj acTitleRow 1.5)<br>    (vla-SetTextHeight custObj (+ acDataRow acHeaderRow) 1.0)</p>
<p>    ;; Set the text height and style for the Title row<br>    (vla-SetTextStyle custObj (+ acDataRow acHeaderRow acTitleRow) "Standard")</p>
<p>    ;; Release the color object<br>    (vlax-release-object colObj)<br>  (princ)<br>)</p>
<p>The following image shows what the table style looks like when applied to a table object.</p>
<p><a class="asset-img-link" href="http://hyperpics.blogs.com/.a/6a00d83420642b53ef0177433e54f8970d-pi" style="display: inline;"><img alt="Createtablestyle" class="asset  asset-image at-xid-6a00d83420642b53ef0177433e54f8970d" src="http://hyperpics.blogs.com/.a/6a00d83420642b53ef0177433e54f8970d-320wi" title="Createtablestyle"></img></a><br>Sincerely,<br>  Lee</p>
<p> </p></div>]]></content:encoded><description>Table styles in AutoCAD are primarily created using the Table Style dialog box (TABLESTYLE command) since there is no command line support, which limits the ability of creating a table style using a script or the COMMAND function in AutoLISP....</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2012/07/creating-a-table-style-with-autolisp-and-the-activex-api.html</feedburner:origLink></item><item rdf:about="tag:typepad.com,2003:post-6a00d83420642b53ef01676832ce6f970b"><title>Listing Defined AutoLISP Variables and Functions</title><link>http://feedproxy.google.com/~r/BeyondTheUi/~3/haN2IHdLNOc/listing-defined-autolisp-variables-and-functions.html</link><dc:subject>AutoCAD</dc:subject><dc:subject>AutoCAD for Mac</dc:subject><dc:subject>AutoLISP/Visual LISP</dc:subject><dc:creator>Lee Ambrosius</dc:creator><dc:date>2012-07-10T16:18:41-07:00</dc:date><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"><p>AutoLISP is one of the oldest and easiest ways of extending AutoCAD, but did you ever wonder what functions are currently defined or which global variables are already set?</p>
<p>The ATOMS-FAMILY (not the Adams Family) function returns a list of all the symbols, global variables, and functions currently defined for use by AutoLISP.  You can also use the function to check to see if a specific symbol, global variable, and/or function is currently defined or set.  This ability to check for the existence of previous definitions is helpful if you want to see which functions are exposed before loading an AutoLISP file.</p>
<p><strong>Syntax:</strong></p>
<p>(atoms-family <em>format</em> [<em>symbol_list</em>])</p>
<p><em>format</em> - Determines how the values in the returned list are formated. Valid values are 0 for Symbols or 1 for Strings.</p>
<p><em>symbol_list</em> - Optional; List of symbols, variables, or functions to search for.</p>
<p><strong>For example:</strong></p>
<p>Entering <strong>(atoms-family 1)</strong> at the Command prompt returns a long list that might look like the following.</p>
<p>("ACTOOLBARDOCKBOTTOM" "ACET-VAR-SETVAR" "ACVIEWPORT4" "AC3IN_1FT" "VLA-ADDBOX"<br>...<br>"VLA-GET-SHOWPLOTSTYLES" "VLA-GET-NUMCELLSTYLES" "AI_RETURN" "C:SAVEALL")</p>
<p>The list returned is useful, but can take a while to sort through as it is not in alphabetical order or an order that will make much sense.</p>
<p>As mentioned previously, you can use the ATOMS-FAMILY function to test for the existence of a symbol, function, or variable by passing in a list of the items you want to see exist.  This check can be helpful if your routines depend on the definition of a function from a previously loaded file.  If the check fails, you can then load the necessary file.</p>
<p><strong>For example:</strong></p>
<p>Entering <strong>(atoms-family 1 '("getpoint" "getpoints" "PI"))</strong> at the Command prompt returns a long list that might look like the following.</p>
<p>("GETPOINT" nil "PI")</p>
<p>The following is some sample code that exports the symbols, functions, global variables, and commands that are defined via AutoLISP or exposted to AutoLISP from .NET/ObjectARX.  The command that is defined creates four lists, and then sorts each before exporting the definitions out.  To determine the type of definition in the list returned by ATOMS-FAMILY, I used the TYPE function and to see if a definition is prefixed with "C:" to determine which functions at like a command at the Command prompt.</p>
<p>After the command is ran, the number of symbols, functions, global variables, and commands is output to the Command Line window, and a file named LspDumpFile.log is created under the root of the C drive.  You can do a comparison AutoLISP definitions by exporting out what is currently defined, renamed the file created, load an AutoLISP file, and then before a second export.  To do the comparison between the files, you can use a utility like WinDiff or UltraEdit or even MS Word.</p>
<p>(defun c:LISPDumpFile ( / afList nSyms nFuncs nCmds nVars<br>                                        lstSyms lstFuncs lstCmds lstVars<br>                                        item fp)<br>    (setq afList (atoms-family 1))<br>    (setq nSyms 0 nFuncs 0 nCmds 0 nVars 0<br>             lstSyms nil lstFuncs nil lstCmds nil lstVars nil)<br>    (foreach item aflist<br>        (progn<br>           (cond<br>               ((= (type (eval (read item))) 'SYM)<br>                    (progn<br>                        (setq nSyms (1+ nSyms))<br>                        (if (/= lstSyms nil)<br>                            (setq lstSyms (append lstSyms (list item)))<br>                            (setq lstSyms (list item))<br>                        )<br>                    )<br>               )<br>               ((and (= (type (eval (read item))) 'SUBR) (/= (substr (strcase item) 1 2) "C:"))<br>                     (progn<br>                          (setq nFuncs (1+ nFuncs))<br>                          (if (/= lstFuncs nil)<br>                              (setq lstFuncs (append lstFuncs (list item)))<br>                              (setq lstFuncs (list item))<br>                          )                 <br>                     )<br>               )<br>               ((and (= (type (eval (read item))) 'SUBR) (= (substr (strcase item) 1 2) "C:"))<br>                     (progn<br>                          (if (/= (strcase item) (strcase "c:LISPDumpFile"))<br>                              (progn<br>                                  (setq nCmds (1+ nCmds))<br>                                  (if (/= lstCmds nil)<br>                                      (setq lstCmds (append lstCmds (list item)))<br>                                      (setq lstCmds (list item))<br>                                  )<br>                              )<br>                          )<br>                     )<br>               )<br>               ((or (= (type (eval (read item))) 'REAL)<br>                    (= (type (eval (read item))) 'INT)<br>                    (= (type (eval (read item))) 'LIST)<br>                    (= (type (eval (read item))) 'PICKSET)<br>                    (= (type (eval (read item))) 'ENAME)<br>                    (= (type (eval (read item))) 'VLA-OBJECT)<br>                    (= (type (eval (read item))) 'FILE)<br>                    (= (type (eval (read item))) 'VARIANT)<br>                    (= (type (eval (read item))) 'STR))<br>                        (progn<br>                            (setq nVars (1+ nVars))<br>                            (if (/= lstVars nil)<br>                                (setq lstVars (append lstVars (list item)))<br>                                (setq lstVars (list item))<br>                            )<br>                        )<br>               )<br>           )<br>        )<br>    )<br>    ;; Output details about defined Symbols and Functions<br>    (prompt (strcat "\nAutoLISP Symbols and Functions count: "<br>                    "\nSymbols - " (itoa nSyms)<br>                    "\nFunctions - " (itoa nFuncs)<br>                    "\nGlobal Variables - " (itoa nVars)<br>                    "\nCommands - " (itoa nCmds))<br>    )<br>    (setq fp (open "c:\\LspDumpFile.log" "w"))<br>    (write-line "Symbols" fp)<br>    (setq lstSyms (acad_strlsort lstSyms))<br>    (foreach item lstSyms<br>        (write-line item fp)<br>    )<br>    (write-line "" fp)<br>    (write-line "Functions" fp)<br>    (setq lstFuncs (acad_strlsort lstFuncs))<br>    (foreach item lstFuncs<br>        (write-line item fp)<br>    )<br>    (write-line "" fp)<br>    (write-line "Global Variables" fp)<br>    (setq lstVars (acad_strlsort lstVars))<br>    (foreach item lstVars<br>        (write-line item fp)<br>    )<br>    (write-line "" fp)<br>    (write-line "Commands" fp)<br>    (setq lstCmds (acad_strlsort lstCmds))<br>    (foreach item lstCmds<br>        (write-line item fp)<br>    )<br>    (close fp)<br>  (princ)<br>)</p>
<p>The following is a sampling of the LOG file that is generated.</p>
<p>Symbols<br>*LAST-VALUE*<br>:AUTOLISP<br>...</p>
<p>Functions<br>-<br>*<br>*ERROR*<br>*MERR*<br>...</p>
<p>Global Variables<br>AC0DEGREES<br>AC1_1<br>AC1_10<br>...</p>
<p>Commands<br>C:-BLOCKREPLACE<br>C:-BLOCKTOXREF<br>C:-CDORDER<br>...</p>
<p>Sincerely,<br>  Lee</p>
<p><strong>External Link of Interest:<br></strong><a href="http://through-the-interface.typepad.com/through_the_interface/2012/03/commands-that-work-in-the-autocad-2013-core-console.html" target="_self">Commands that “work” in the AutoCAD 2013 Core Console - Through the Interface (by Kean Walmsley)</a></p>
<p> </p></div>]]></content:encoded><description>AutoLISP is one of the oldest and easiest ways of extending AutoCAD, but did you ever wonder what functions are currently defined or which global variables are already set? The ATOMS-FAMILY (not the Adams Family) function returns a list of...</description><feedburner:origLink>http://hyperpics.blogs.com/beyond_the_ui/2012/07/listing-defined-autolisp-variables-and-functions.html</feedburner:origLink></item></rdf:RDF>
