tag:blogger.com,1999:blog-104259452024-03-14T18:15:27.873-03:00ObjectARX & DummiesThis site was built to allow users to learn about ObjectARX® and AutoCAD® programming.
ObjectARX® and AutoCAD® are trademarks of Autodesk Inc.Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.comBlogger83125tag:blogger.com,1999:blog-10425945.post-8569564167772810662019-12-06T13:09:00.003-03:002019-12-06T13:11:37.055-03:00My AU2019 class recording is now available in Autodesk University website<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDYRmFMShyunH7KpwhOb02ZTjHBQ7UxbawNQj2meAE-OBzJmKVndbQ2iBZNSlETtagqby7yiuKDHoNU-PixYXj1SentnHw5zSZ-WLSoymvfuNweOTHSrkSZdBazCJEDL2aWh0/s1600/AU2019_Class.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="438" data-original-width="1600" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDYRmFMShyunH7KpwhOb02ZTjHBQ7UxbawNQj2meAE-OBzJmKVndbQ2iBZNSlETtagqby7yiuKDHoNU-PixYXj1SentnHw5zSZ-WLSoymvfuNweOTHSrkSZdBazCJEDL2aWh0/s400/AU2019_Class.jpg" width="400" /></a></div>
<br />
<br />
If you are interested in learning more about Autodesk Forge Design Automation, here is my AU2019 class recording. You can also find its handout and presentation:<br />
<br />
<a href="https://www.autodesk.com/autodesk-university/class/Learning-Lab-Modify-files-using-Design-Automation-API-2019">https://www.autodesk.com/autodesk-university/class/Learning-Lab-Modify-files-using-Design-Automation-API-2019</a><br />
<br />
Hope you enjoy!<br />
<br />
Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com2tag:blogger.com,1999:blog-10425945.post-51880325785299514152019-06-04T09:46:00.001-03:002019-06-04T09:46:08.622-03:00AU 2019 - Las VegasVoting is opened for AU2019 Las Vegas!<br />
Please vote for my class:<br />
<br />
"<b><i><u>Modify files using Design Automation</u></i></b>"<br />
<br />
<div class="class-description ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px; line-height: 1.3em;">
<span style="color: #073763;">AutoCAD, Inventor, Revit and 3dsMax engines are now on the cloud and you can use them to perform batch operations, such as creating, modifying and migrating files or exporting data. This class will cover the basics on how to use app bundles, activities and workitems. Bring your own laptop or use the lab. This class requires basic knowledge on .NET and previous experience creating desktop apps for AutoCAD, Inventor, Revit or 3dsmax.</span></div>
<div class="class-description ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px; line-height: 1.3em;">
<span style="color: #073763;"><br /></span></div>
<div class="class-description ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px; line-height: 1.3em;">
<span style="color: #073763;"><b><u>Key learnings</u></b>:</span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span style="color: #073763;">• Understand the basics of Autodesk Forge</span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span style="color: #073763;">• Create your first app based on Autodesk Forge</span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span style="color: #073763;">• Learn how to define bundle and activity</span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span style="color: #073763;">• Learn how to use prepare files and submit workitem</span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span style="color: #073763;"><br /></span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span class="class-product ng-binding" style="display: block;"><span class="label" style="display: block; margin-top: 14px;"><span style="color: #073763;"><b><u>Products</u></b>:</span></span><span style="color: #073763;">Forge, 3ds Max, Revit, AutoCAD</span></span><span class="class-focus ng-binding" style="display: block;"><span class="label" style="display: block; margin-top: 14px;"><span style="color: #073763;"><b><u>Focus</u></b>:</span></span><span style="color: #073763;">Getting started with new software</span></span><span style="color: #073763;"><span class="class-topics ng-binding"><span class="label" style="display: block; margin-top: 14px;"><b><u>Topics</u></b>:</span>AutoCAD and General Design, Software Development, Building Information Modeling (BIM)</span><span style="background-color: white;"></span><span class="class-industry ng-binding"><span class="label" style="display: block; margin-top: 14px;"><b><u>Industry</u></b>:</span>Software Development</span></span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span class="class-industry ng-binding"><br /></span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span class="class-industry ng-binding">Visit this page:</span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span class="class-industry ng-binding"><a href="https://www.autodesk.com/autodesk-university/conference/las-vegas/call-for-proposals/voting">https://www.autodesk.com/autodesk-university/conference/las-vegas/call-for-proposals/voting</a></span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span class="class-industry ng-binding"><br /></span></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<span class="class-industry ng-binding">...and search for "</span>Modify files using Design Automation"</div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<br /></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
Click "Vote" button to the left.</div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
<br /></div>
<div class="ng-binding" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px;">
Thank you!</div>
<div class="class-learning" id="learnings-0" style="font-family: "Conv_Artifakt Element Regular", sans-serif; font-size: 14px; margin-left: 30px; overflow: hidden;">
<div class="ng-binding">
</div>
<div class="ng-binding">
</div>
<div class="ng-binding">
</div>
<div class="ng-binding">
</div>
</div>
Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-7257192300683210592016-04-19T17:04:00.003-03:002016-04-19T17:04:48.559-03:00I’m going to be speaking at Forge DevCon 2016!<span style="font-family: Verdana, sans-serif; font-size: x-small;">Autodesk has asked me to speak at their first-ever <a href="http://forge.autodesk.com/conference/">Forge Developers Conference</a> (DevCon) to be held June 15-16 in San
Francisco. DevCon is an immersive, high-level gathering
of developers, innovators, and startups in the AEC, product design, and
manufacturing space who are <span style="mso-bidi-font-weight: bold;">building
next generation apps on the cloud.<o:p></o:p></span></span><br />
<span style="mso-bidi-font-weight: bold;"><span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></span>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><b><i style="mso-bidi-font-style: normal;"><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">If you are
building a business leveraging the cloud, you really need to come to this
conference!</span></i></b><span style="mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold; mso-bidi-theme-font: minor-latin;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><span style="mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold; mso-bidi-theme-font: minor-latin;">DevCon is no ordinary conference –
you’ll get hands-on with tools to help you create new service offerings,
solutions and integrations for a cloud-connected product-development ecosystem;
meet face-to-face </span><span style="background: white; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">with the largest community of developers in
design and engineering from around the world; and learn best practices from
industry experts and engineers utilizing and developing the </span><a href="http://forge.autodesk.com/platform/"><span style="background: white; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Forge Platform</span></a><span style="background: white; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">.<o:p></o:p></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="background: white; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="background-color: white;"><span style="font-family: Verdana, sans-serif; font-size: x-small;">If
you’d like to join me at the conference, use this SPEAKER FRIENDS AND FAMILY
CODE (<b>SpkrFriendofcdesk</b>) and receive 30% off of Early Bird & General Admission tickets.</span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="background: yellow; mso-bidi-font-family: Calibri; mso-bidi-font-weight: bold; mso-bidi-theme-font: minor-latin; mso-highlight: yellow;"><span style="font-family: Verdana, sans-serif; font-size: x-small;"><br /></span></span></div>
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="380">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" Priority="0" SemiHidden="true"
UnhideWhenUsed="true" Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Level 9"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:8.0pt;
mso-para-margin-left:0cm;
line-height:107%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:Calibri;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<span style="font-family: Verdana, sans-serif; font-size: x-small;"><span style="line-height: 107%;">For more information about the conference, check out the DevCon </span><span style="line-height: 107%;"><a href="http://forge.autodesk.com/conference/">website</a></span><span style="line-height: 107%;">.</span></span><!--EndFragment-->
Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-59706587820608571032015-08-18T10:13:00.000-03:002015-08-18T18:13:58.215-03:00Find all AcDbLine IntersectionsHello,<br />
<br />
This question came from Sandhya who asked how to find all line intersections into a drawing.<br />
In this case, we will consider only intersections between <b>AcDbLine</b> entities.<br />
<br />
First we need to prepare our <b>CMap</b> structure to be able to handle <b>AcGePoint3d</b> as the map key. The idea is to group all Lines passing through each intersection point.<br />
<br />
<b>CMap</b> does not support <b>AcGePoint3d</b> because it does not know how to Hash it and also how to compare it as a key. To allow that we will need to define both HasKey and CompareElements templates as follows:<br />
<br />
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
// These are template classes to allow AcGePoint3d do be used as a Key do CMap class</div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
const<span style="color: #e3e3e3;"> </span>double<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">_dTol</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #c1d6b7;">0.0001</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">template</span><span style="color: #c1c1c1;"><></span><span style="color: #e3e3e3;"> </span>UINT<span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">AFXAPI</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">HashKey</span><span style="color: #c1c1c1;"><</span>AcGePoint3d<span style="color: #c1c1c1;">></span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>AcGePoint3d<span style="color: #e3e3e3;"> </span><span style="color: #919191;">key</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>CString<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">sPoint</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>sPoint<span style="color: #c1c1c1;">.</span>Format<span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">_T</span><span style="color: #c1c1c1;">(</span><span style="color: #dfad97;">"%f,%f,%f"</span><span style="color: #c1c1c1;">),</span><span style="color: #919191;">key</span><span style="color: #c1c1c1;">.</span><span style="color: #e1e1e1;">x</span><span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #919191;">key</span><span style="color: #c1c1c1;">.</span><span style="color: #e1e1e1;">y</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">,</span><span style="color: #919191;">key</span><span style="color: #c1c1c1;">.</span><span style="color: #e1e1e1;">z</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #5bd1be;">UINT</span><span style="color: #e3e3e3;"> </span>iHash<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">NULL</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">&</span><span style="color: #919191;">key</span><span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">?</span><span style="color: #e3e3e3;"> </span><span style="color: #c1d6b7;">0</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">:</span><span style="color: #e3e3e3;"> </span>HashKey<span style="color: #c1c1c1;">((</span><span style="color: #5bd1be;">LPCSTR</span><span style="color: #c1c1c1;">)</span>sPoint<span style="color: #c1c1c1;">.</span>GetBuffer<span style="color: #c1c1c1;">());</span></div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>return<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">iHash</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">template</span><span style="color: #c1c1c1;"><></span><span style="color: #e3e3e3;"> </span>BOOL<span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">AFXAPI</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">CompareElements</span><span style="color: #c1c1c1;"><</span>AcGePoint3d<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>AcGePoint3d<span style="color: #c1c1c1;">></span><span style="color: #e3e3e3;"> </span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #67adde;">const</span><span style="color: #e3e3e3;"> </span>AcGePoint3d<span style="color: #c1c1c1;">*</span><span style="color: #e3e3e3;"> </span><span style="color: #919191;">pElement1</span><span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #67adde;">const</span><span style="color: #e3e3e3;"> </span>AcGePoint3d<span style="color: #c1c1c1;">*</span><span style="color: #e3e3e3;"> </span><span style="color: #919191;">pElement2</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #919191; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">((</span>pElement1<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">||</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>pElement2<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">))</span></div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>return<span style="color: #e3e3e3;"> </span>false<span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcGeTol<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">gTol</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #d2d2d2;">gTol</span><span style="color: #c1c1c1;">.</span><span style="color: #d2d2d2;">setEqualPoint</span><span style="color: #c1c1c1;">(</span><span style="color: #d2d2d2;">_dTol</span><span style="color: #c1c1c1;">);</span><span style="color: #e3e3e3;"> </span>// Point comparison tolerance</div>
<div style="background-color: #282828; color: #919191; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">return</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>pElement1<span style="color: #c1c1c1;">-></span><span style="color: #d2d2d2;">isEqualTo</span><span style="color: #c1c1c1;">(*</span>pElement2<span style="color: #c1c1c1;">,</span><span style="color: #d2d2d2;">gTol</span><span style="color: #c1c1c1;">));</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<br />
Next, we will collect the <b>AcDbLine</b> entities in <b>ModelSpace</b>:<br />
<br />
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
// Collect lines from ModelSpace</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
Acad<span style="color: #c1c1c1;">::</span>ErrorStatus<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">es</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #5bd1be;">AcDbDatabase</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">*</span>pDb<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span>acdbHostApplicationServices<span style="color: #c1c1c1;">()-></span>workingDatabase<span style="color: #c1c1c1;">();</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #5bd1be;">AcDbBlockTableRecordPointer</span><span style="color: #e3e3e3;"> </span>pBTR<span style="color: #c1c1c1;">(</span>acdbSymUtil<span style="color: #c1c1c1;">()-></span>blockModelSpaceId<span style="color: #c1c1c1;">(</span>pDb<span style="color: #c1c1c1;">),</span><span style="color: #5bd1be;">AcDb</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">kForWrite</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
AcDbBlockTableRecordIterator<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">*</span><span style="color: #d2d2d2;">pIter</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
pBTR<span style="color: #c1c1c1;">-></span>newIterator<span style="color: #c1c1c1;">(</span>pIter<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #67adde;">true</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
AcDbObjectIdArray<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">arrLines</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">while</span><span style="color: #c1c1c1;">(!</span>pIter<span style="color: #c1c1c1;">-></span>done<span style="color: #c1c1c1;">())</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcDbEntity<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">*</span><span style="color: #d2d2d2;">pEnt</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>es<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span>pIter<span style="color: #c1c1c1;">-></span>getEntity<span style="color: #c1c1c1;">(</span>pEnt<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #5bd1be;">AcDb</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">kForRead</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span>(<span style="color: #d2d2d2;">es</span><span style="color: #e3e3e3;"> </span>==<span style="color: #e3e3e3;"> </span><span style="color: #5bd1be;">Acad</span>::<span style="color: #c4ddb2;">eOk</span>)</div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">{</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>pEnt<span style="color: #c1c1c1;">-></span>isKindOf<span style="color: #c1c1c1;">(</span><span style="color: #5bd1be;">AcDbLine</span><span style="color: #c1c1c1;">::</span>desc<span style="color: #c1c1c1;">()))</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>arrLines<span style="color: #c1c1c1;">.</span>append<span style="color: #c1c1c1;">(</span>pEnt<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">());</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>pEnt<span style="color: #c1c1c1;">-></span>close<span style="color: #c1c1c1;">();</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">}</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>pIter<span style="color: #c1c1c1;">-></span>step<span style="color: #c1c1c1;">(</span><span style="color: #67adde;">true</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
delete<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">pIter</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
pIter<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>arrLines<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">()</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #dfad97; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #d2d2d2;">acutPrintf</span><span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">_T</span><span style="color: #c1c1c1;">(</span>"There are no lines in Model Space!\n"<span style="color: #c1c1c1;">));</span></div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>return<span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
else</div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #dfad97; font-family: Consolas; font-size: 13.5px;">
<a href="https://www.blogger.com/blogger.g?blogID=10425945" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #d2d2d2;">acutPrintf</span><span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">_T</span><span style="color: #c1c1c1;">(</span>"We've found %d lines in Model Space!\nChecking intersection with tolerance %f...\n"<span style="color: #c1c1c1;">),</span><span style="color: #e3e3e3;"> </span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>arrLines<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">(),</span><span style="color: #e3e3e3;"> </span>_dTol<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<br />
Ok, with the lines collected we will then build our <b>CMap</b> with the information we need:<br />
<br />
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
// Process lines in pairs</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
CMap<span style="color: #c1c1c1;"><</span>AcGePoint3d<span style="color: #c1c1c1;">,</span>AcGePoint3d<span style="color: #c1c1c1;">,</span>AcDbObjectIdArray<span style="color: #c1c1c1;">,</span>AcDbObjectIdArray<span style="color: #c1c1c1;">&></span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">mapLines</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #cb7dd0; font-family: Consolas; font-size: 13.5px;">
acdbTransactionManager<span style="color: #c1c1c1;">-></span><span style="color: #d2d2d2;">startTransaction</span><span style="color: #c1c1c1;">();</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">for</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #67adde;">int</span><span style="color: #e3e3e3;"> </span>i<span style="color: #c1c1c1;">=</span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">;</span><span style="color: #e3e3e3;"> </span>i<span style="color: #c1c1c1;"><</span>arrLines<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">()-</span><span style="color: #c1d6b7;">1</span><span style="color: #c1c1c1;">;</span><span style="color: #e3e3e3;"> </span>i<span style="color: #c1c1c1;">++)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
AcDbLine<span style="color: #c1c1c1;">*</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">pLineA</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">acdbTransactionManager</span><span style="color: #c1c1c1;">-></span>getObject<span style="color: #c1c1c1;">((</span><span style="color: #5bd1be;">AcDbObject</span><span style="color: #c1c1c1;">*&)</span>pLineA<span style="color: #c1c1c1;">,</span>arrLines<span style="color: #c1c1c1;">[</span>i<span style="color: #c1c1c1;">], </span><span style="color: #5bd1be;">AcDb</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">kForRead</span><span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #5bd1be;">Acad</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">eOk</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">for</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #67adde;">int</span><span style="color: #e3e3e3;"> </span>j<span style="color: #c1c1c1;">=</span>i<span style="color: #c1c1c1;">+</span><span style="color: #c1d6b7;">1</span><span style="color: #c1c1c1;">;</span><span style="color: #e3e3e3;"> </span>j<span style="color: #c1c1c1;"><</span>arrLines<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">();</span><span style="color: #e3e3e3;"> </span>j<span style="color: #c1c1c1;">++)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
AcDbLine<span style="color: #c1c1c1;">*</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">pLineB</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">NULL</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">acdbTransactionManager</span><span style="color: #c1c1c1;">-></span>getObject<span style="color: #c1c1c1;">((</span><span style="color: #5bd1be;">AcDbObject</span><span style="color: #c1c1c1;">*&)</span>pLineB<span style="color: #c1c1c1;">,</span>arrLines<span style="color: #c1c1c1;">[</span>j<span style="color: #c1c1c1;">], </span><span style="color: #5bd1be;">AcDb</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">kForRead</span><span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #5bd1be;">Acad</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">eOk</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
AcGePoint3dArray<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">arrPts</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>pLineA<span style="color: #c1c1c1;">-></span>intersectWith<span style="color: #c1c1c1;">(</span>pLineB<span style="color: #c1c1c1;">,</span><span style="color: #5bd1be;">AcDb</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">kOnBothOperands</span><span style="color: #c1c1c1;">,</span>arrPts<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #5bd1be;">Acad</span><span style="color: #c1c1c1;">::</span><span style="color: #c4ddb2;">eOk</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>arrPts<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">()</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">></span><span style="color: #e3e3e3;"> </span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">for</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #67adde;">int</span><span style="color: #e3e3e3;"> </span>p<span style="color: #c1c1c1;">=</span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">;</span><span style="color: #e3e3e3;"> </span>p<span style="color: #c1c1c1;"><</span>arrPts<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">();</span><span style="color: #e3e3e3;"> </span>p<span style="color: #c1c1c1;">++)</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">{</span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcDbObjectIdArray<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">arrExist</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>mapLines<span style="color: #c1c1c1;">.</span>Lookup<span style="color: #c1c1c1;">(</span>arrPts<span style="color: #c1c1c1;">[</span>p<span style="color: #c1c1c1;">],</span>arrExist<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">TRUE</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">{</span></div>
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// Existing point...</div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>arrExist<span style="color: #c1c1c1;">.</span>contains<span style="color: #c1c1c1;">(</span>pLineA<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">())</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #67adde;">false</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>mapLines<span style="color: #c1c1c1;">[</span>arrPts<span style="color: #c1c1c1;">[</span>p<span style="color: #c1c1c1;">]].</span>append<span style="color: #c1c1c1;">(</span>pLineA<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">());</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">if</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>arrExist<span style="color: #c1c1c1;">.</span>contains<span style="color: #c1c1c1;">(</span>pLineB<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">())</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">==</span><span style="color: #e3e3e3;"> </span><span style="color: #67adde;">false</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>mapLines<span style="color: #c1c1c1;">[</span>arrPts<span style="color: #c1c1c1;">[</span>p<span style="color: #c1c1c1;">]].</span>append<span style="color: #c1c1c1;">(</span>pLineB<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">());</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">}</span></div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>else</div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">{</span></div>
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>// New point...</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcDbObjectIdArray<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">arrNewEnts</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>arrNewEnts<span style="color: #c1c1c1;">.</span>append<span style="color: #c1c1c1;">(</span>pLineA<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">());</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>arrNewEnts<span style="color: #c1c1c1;">.</span>append<span style="color: #c1c1c1;">(</span>pLineB<span style="color: #c1c1c1;">-></span>objectId<span style="color: #c1c1c1;">());</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>mapLines<span style="color: #c1c1c1;">.</span>SetAt<span style="color: #c1c1c1;">(</span>arrPts<span style="color: #c1c1c1;">[</span>p<span style="color: #c1c1c1;">],</span>arrNewEnts<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">}</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">}</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #cb7dd0; font-family: Consolas; font-size: 13.5px;">
acdbTransactionManager<span style="color: #c1c1c1;">-></span><span style="color: #d2d2d2;">endTransaction</span><span style="color: #c1c1c1;">();</span></div>
<br />
To demonstrate the use of this information, we then use our <b>CMap</b> data to create <b>AcDbPoint</b> entities on <b>ModeSpace</b> and also print a small report at the command prompt:<br />
<br />
<div style="background-color: #282828; color: #729a60; font-family: Consolas; font-size: 13.5px;">
// Just as demonstration, walk through points and add an AcDbPoint entity to ModelSpace then print the info</div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #5bd1be;">POSITION</span><span style="color: #e3e3e3;"> </span>pos<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span>mapLines<span style="color: #c1c1c1;">.</span>GetStartPosition<span style="color: #c1c1c1;">();</span></div>
<div style="background-color: #282828; color: #67adde; font-family: Consolas; font-size: 13.5px;">
while<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #d2d2d2;">pos</span><span style="color: #c1c1c1;">)</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
{</div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcGePoint3d<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">ptKey</span><span style="color: #c1c1c1;">(</span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">,</span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">,</span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcDbObjectIdArray<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">arrEnts</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>mapLines<span style="color: #c1c1c1;">.</span>GetNextAssoc<span style="color: #c1c1c1;">(</span>pos<span style="color: #c1c1c1;">,</span>ptKey<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>arrEnts<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcDbPoint<span style="color: #c1c1c1;">*</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">ptEnt</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">=</span><span style="color: #e3e3e3;"> </span><span style="color: #67adde;">new</span><span style="color: #e3e3e3;"> </span>AcDbPoint<span style="color: #c1c1c1;">(</span><span style="color: #d2d2d2;">ptKey</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>AcDbObjectId<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">idPointEnt</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>pBTR<span style="color: #c1c1c1;">-></span>appendAcDbEntity<span style="color: #c1c1c1;">(</span>idPointEnt<span style="color: #c1c1c1;">,</span>ptEnt<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>ptEnt<span style="color: #c1c1c1;">-></span>close<span style="color: #c1c1c1;">();</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>CString<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">sEnts</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #67adde;">for</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span><span style="color: #67adde;">int</span><span style="color: #e3e3e3;"> </span>e<span style="color: #c1c1c1;">=</span><span style="color: #c1d6b7;">0</span><span style="color: #c1c1c1;">;</span><span style="color: #e3e3e3;"> </span>e<span style="color: #c1c1c1;"><</span>arrEnts<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">();</span><span style="color: #e3e3e3;"> </span>e<span style="color: #c1c1c1;">++)</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">{</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #5bd1be;">ACHAR</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">pBuff</span>[<span style="color: #c1d6b7;">255</span>]<span style="color: #e3e3e3;"> </span>=<span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">_T</span>(<span style="color: #dfad97;">""</span>);</div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>arrEnts<span style="color: #c1c1c1;">[</span>e<span style="color: #c1c1c1;">].</span>handle<span style="color: #c1c1c1;">().</span>getIntoAsciiBuffer<span style="color: #c1c1c1;">(</span>pBuff<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #5bd1be; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>CString<span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">sBuff</span><span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>sBuff<span style="color: #c1c1c1;">.</span>Format<span style="color: #c1c1c1;">(</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>e<span style="color: #c1c1c1;">==</span>arrEnts<span style="color: #c1c1c1;">.</span>length<span style="color: #c1c1c1;">()-</span><span style="color: #c1d6b7;">1</span><span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">?</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">_T</span><span style="color: #c1c1c1;">(</span><span style="color: #dfad97;">"%s"</span><span style="color: #c1c1c1;">):</span><span style="color: #e3e3e3;"> </span><span style="color: #cb7dd0;">_T</span><span style="color: #c1c1c1;">(</span><span style="color: #dfad97;">"%s,"</span><span style="color: #c1c1c1;">),</span><span style="color: #e3e3e3;"> </span>pBuff<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>sEnts<span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">+=</span><span style="color: #e3e3e3;"> </span>sBuff<span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px;">
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #c1c1c1;">}</span></div>
<div style="background-color: #282828; color: #e3e3e3; font-family: Consolas; font-size: 13.5px; min-height: 15px;">
<br /></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #5bd1be;">CString</span><span style="color: #e3e3e3;"> </span>sPromptReport<span style="color: #c1c1c1;">;</span></div>
<div style="background-color: #282828; color: #dfad97; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span><span style="color: #d2d2d2;">sPromptReport</span><span style="color: #c1c1c1;">.</span><span style="color: #d2d2d2;">Format</span><span style="color: #c1c1c1;">(</span><span style="color: #cb7dd0;">_T</span><span style="color: #c1c1c1;">(</span>"Point (%.4f, %.4f, %.4f) - Entities [%s]\n"<span style="color: #c1c1c1;">),</span><span style="color: #d2d2d2;">ptKey</span><span style="color: #c1c1c1;">.</span><span style="color: #e1e1e1;">x</span><span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">ptKey</span><span style="color: #c1c1c1;">.</span><span style="color: #e1e1e1;">y</span><span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">ptKey</span><span style="color: #c1c1c1;">.</span><span style="color: #e1e1e1;">z</span><span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span><span style="color: #d2d2d2;">sEnts</span><span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #d2d2d2; font-family: Consolas; font-size: 13.5px;">
<span style="color: #e3e3e3;"><span class="Apple-tab-span" style="white-space: pre;"> </span></span>acutPrintf<span style="color: #c1c1c1;">(</span>sPromptReport<span style="color: #c1c1c1;">);</span></div>
<div style="background-color: #282828; color: #c1c1c1; font-family: Consolas; font-size: 13.5px;">
}</div>
<div>
<br /></div>
This is the sample DWG (remember to adjust the <b>PTYPE</b>):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju1cjumemSMf-HiRi77zKc2995CFyy_boGB12DU43e98Cd-IxHZhdFzJOoT1gzaXaA5qCwvctHazY0zP85sfuZdTXlE-01PxeDIQ5-poZQwh_8IUoliNTSPLYnq90a2eErpDc/s1600/Screen+Shot+2015-08-18+at+10.01.07+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju1cjumemSMf-HiRi77zKc2995CFyy_boGB12DU43e98Cd-IxHZhdFzJOoT1gzaXaA5qCwvctHazY0zP85sfuZdTXlE-01PxeDIQ5-poZQwh_8IUoliNTSPLYnq90a2eErpDc/s400/Screen+Shot+2015-08-18+at+10.01.07+AM.png" width="400" /></a></div>
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
And this is the prompt result:<br />
<br />
<div style="background-color: #282828; color: white; font-family: Consolas; font-size: 13.5px;">
<span style="color: #d2d2d2;">Command</span><span style="color: #c1c1c1;">:</span><span style="color: #e3e3e3;"> </span>LINEINTS</div>
<div style="background-color: #282828; color: #dfad97; font-family: Consolas; font-size: 13.5px;">
We've found 8 lines in Model Space!</div>
<div style="background-color: #282828; color: #dfad97; font-family: Consolas; font-size: 13.5px;">
Checking intersection with tolerance 0.000100...</div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>49.4194<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>7.7097<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1E0<span style="color: #c1c1c1;">,</span>1E1<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>43.8908<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>18.4889<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DF<span style="color: #c1c1c1;">,</span>1E0<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>37.2051<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>11.5104<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DF<span style="color: #c1c1c1;">,</span>1E1<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>32.4059<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>13.0038<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DE<span style="color: #c1c1c1;">,</span>1E1<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>33.7651<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>7.9199<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DE<span style="color: #c1c1c1;">,</span>1DF<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>30.4900<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>20.1703<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DD<span style="color: #c1c1c1;">,</span>1DE<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>20.6648<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>16.6573<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1E1<span style="color: #c1c1c1;">,</span>1E2<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>22.1562<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>13.7469<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DD<span style="color: #c1c1c1;">,</span>1E2<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>24.4172<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>15.4897<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DD<span style="color: #c1c1c1;">,</span>1E1<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>17.0892<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>9.8415<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DC<span style="color: #c1c1c1;">,</span>1DD<span style="color: #c1c1c1;">]</span></div>
<div style="background-color: #282828; color: #c1d6b7; font-family: Consolas; font-size: 13.5px;">
<span style="color: white;">Point</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">(</span>16.3380<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>17.5581<span style="color: #c1c1c1;">,</span><span style="color: #e3e3e3;"> </span>0.0000<span style="color: #c1c1c1;">)</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">-</span><span style="color: #e3e3e3;"> </span><span style="color: white;">Entities</span><span style="color: #e3e3e3;"> </span><span style="color: #c1c1c1;">[</span>1DB<span style="color: #c1c1c1;">,</span>1DC<span style="color: #c1c1c1;">]</span></div>
<br />
Full source code can be downloaded from here:<br />
<br />
<a href="https://drive.google.com/file/d/0By7BVn8vCBxnaFdSblhYcjVBV3M/view?usp=sharing">LineIntersections_VS2012_ARX2015.zip</a><br />
<a href="https://www.blogger.com/blogger.g?blogID=10425945" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br />
Best regards!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com4tag:blogger.com,1999:blog-10425945.post-10061271488531040522015-06-27T14:51:00.001-03:002015-06-27T14:51:25.194-03:00AU2015 Classes<div class="separator" style="clear: both; text-align: center;">
<a href="http://static-wd.autodesk.net/content/dam/au/centers/attend-event/images/banners/au-las-vegas-venetian-banner-2600x340.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://static-wd.autodesk.net/content/dam/au/centers/attend-event/images/banners/au-las-vegas-venetian-banner-2600x340.jpg" height="80" width="580" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
My Autodesk University 2015 classes were accepted.<br />
<br />
<b>SD9661</b>: AutoCAD, JavaScript, and the Cloud<br />
<br />
<b>SD9660</b>: Creating AutoCAD Cross-Platform Plug-ins<br />
<br />
<b>SD9662</b>: Creating Professional Plug-ins for Autodesk Exchange Store<br />
<br />
<b>GEN9663</b>: From AutoCAD I/O to View & Data<br />
<br />
Hope to meet you there!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com33tag:blogger.com,1999:blog-10425945.post-70428270433647097552014-12-25T18:44:00.001-02:002015-01-07T10:23:58.638-02:00Hello,<br />
<br />
Here are my AU 2014 class material posted to Autodesk University website:<br />
<br />
<a href="http://au.autodesk.com/au-online/classes-on-demand/class-catalog/classes/year-2014/autocad/sd4865" style="border-bottom-color: rgb(119, 119, 119); border-bottom-style: dashed; border-width: 0px 0px 1px; color: #777777; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">SD4865 : AutoCAD, JavaScript, and the Cloud</a><br />
<a href="http://au.autodesk.com/au-online/classes-on-demand/class-catalog/classes/year-2014/autocad/sd4861" style="border-bottom-color: rgb(119, 119, 119); border-bottom-style: dashed; border-width: 0px 0px 1px; color: #777777; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">SD4861 : Creating AutoCAD Cross-Platform Plug-ins</a><br />
<a href="http://au.autodesk.com/au-online/classes-on-demand/class-catalog/classes/year-2014/revit-for-architects/sd4871" style="border-bottom-color: rgb(119, 119, 119); border-bottom-style: dashed; border-width: 0px 0px 1px; color: #777777; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;">SD4871 : Creating Professional Plug-ins for Autodesk Exchange Store</a><br />
<div class="au-cs-result media bb3 pb-0-2 mb-0-2" style="border-bottom-color: rgb(218, 218, 218); border-bottom-style: dashed; border-width: 0px 0px 1px; color: #666666; font-family: FrutigerNextW04Regular, Calibri, Arial, sans-serif; font-size: 14px; line-height: 18px; margin: 0px 0px 8px; overflow: hidden; padding: 0px 0px 8px; vertical-align: baseline; zoom: 1;">
<div class="pt-0-2 pr-0-0" style="border: 0px; margin: 0px; padding: 8px 0px 0px; vertical-align: baseline;">
<a href="http://au.autodesk.com/au-online/classes-on-demand/class-catalog/classes/year-2014/revit-for-architects/sd4871" style="border-bottom-color: rgb(119, 119, 119); border-bottom-style: dashed; border-width: 0px 0px 1px; color: #777777; margin: 0px; outline: 0px; padding: 0px; text-decoration: none; vertical-align: baseline;"></a><br />
If you prefer to download the files directly, here is the Google Drive folder URL:<br />
<br />
https://drive.google.com/folderview?id=0By7BVn8vCBxnZDhXRUJObGRxTUk&usp=sharing<br />
<br />
<div>
Hope you enjoy!</div>
<div>
Best regards.</div>
</div>
</div>
Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com5tag:blogger.com,1999:blog-10425945.post-81543506621425605622014-06-27T09:22:00.001-03:002014-06-27T09:22:42.464-03:00Hello!<br />
<br />
My 3 <b>AU2014</b> classes were accepted:<br />
<br />
<span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class ID: SD4861 </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class Title: Creating AutoCAD cross platform Plugins </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class Type: Lecture </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;"> </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class ID: SD4865 </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class Title: AutoCAD, Javascript and the Cloud </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class Type: Lecture </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;"> </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class ID: SD4871 </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class Title: Creating Professional Plugins for Autodesk Exchange Store </span><br style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;" /><span style="color: #666666; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px;">Class Type: Lecture </span><br />
<br />
Meet you in Las Vegas!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-54949299922994383912011-05-16T10:09:00.000-03:002011-05-16T10:09:30.155-03:00Files moved to Google DocsHello,<br />
<br />
I have moved all samples files to a Google Docs folder which can be accessed through the following link:<br />
<br />
<a href="https://docs.google.com/leaf?id=0By7BVn8vCBxnYjZjNWJhZjYtZjE3MC00ZjdiLTlmMjMtNTVhNTNjNjE0YjUy&hl=en">ObjectARX & Dummies Docs</a><br />
<br />
It the above link does not work, copy and paste the following URL at your Browser:<br />
<br />
https://docs.google.com/leaf?id=0By7BVn8vCBxnYjZjNWJhZjYtZjE3MC00ZjdiLTlmMjMtNTVhNTNjNjE0YjUy&hl=en<br />
<br />
Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-66522846542423998172010-09-15T14:37:00.000-03:002010-09-15T14:37:20.195-03:00AutoCAD Mac announced and new Blog about ObjectARX<span style="font-family: Verdana, sans-serif;">Hello,</span><br />
<br />
<span style="font-family: Verdana;">I was really busy lately working behind the scenes with AutoCAD for Mac which was announced last August 31st by Autodesk.</span><br />
<br />
<span style="font-family: Verdana;">I have attended this event and I'm totally excited about this new platform and all technology that it brings into the spot of AutoCAD community.</span><br />
<br />
<span style="font-family: Verdana;">I have just created a new Blog entirely dedicated to this subject and I'm preparing some great material to share with you as soon as the product starts to ship.</span><br />
<br />
<span style="font-family: Verdana;">More information here:</span><br />
<br />
<span style="font-family: Verdana;"><a href="http://arxformac.blogspot.com/">http://arxformac.blogspot.com/</a></span><br />
<br />
<span style="font-family: Verdana;">Cheers!</span>Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-72928889774513931512010-04-29T09:04:00.000-03:002010-04-29T09:04:57.535-03:00Visual Studio 2010Hello,<br />
<br />
I was playing around with the brand new Visual Studio 2010 and have found a really cool new feature. Actually this is something I'm waiting for years.<br />
<br />
<b style="color: blue;">The problem</b>:<br />
<br />
Every new Visual Studio version requires you to create a new project and maintain it along the other versions. I had a situation once that I need to keep VS2005, VS2005 and VS2008 projects. What a pain! As soon as you add a new class to your project you need to replicate that to the other versions. It was chaotic!<br />
<br />
<b style="color: blue;">The new feature</b>:<br />
<br />
VS2010 have introduced a new cool feature called "<i style="color: red;"><b>Platform Toolset</b></i>". It allows you to target your build using specific VS libraries which allow you to build binaries as if you are using previous VS versions. Natively it comes with v100 and v90 platforms (v100 is the default). I did some testing targeting v90 and it really works. The generated DLL (in my case an ARX module) was totally compatible with the Host application (in this case AutoCAD).<br />
<br />
More than that, with the ability to create your custom targets open a totally new world of VS projects management which will save you hours copying thing to keep your source code updated.<br />
<br />
<b style="color: blue;">Further reading</b>:<br />
<br />
<a href="http://blogs.msdn.com/somasegar/archive/2008/11/21/c-enhancements-in-vs-2010.aspx">VS 2010 Enhancements</a><br />
<br />
<a href="http://blogs.msdn.com/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx">VS 2010 native Multi-targeting</a><br />
<br />
<b style="color: blue;">I have used Visual Studio 2010 Professional Trial version to test this and you can download it from here</b>:<br />
<br />
<a href="http://www.microsoft.com/visualstudio/en-us/download">Visual Studio 2010 Trial Download</a><br />
<br />
Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com11tag:blogger.com,1999:blog-10425945.post-63241327992167188872009-05-16T13:53:00.006-03:002012-05-31T11:22:32.842-03:00AU2008 ClassHello,<br />
<br />
Several people have asked me about some advice on creating custom classes inside ObjectARX.<br />
I have made a detailed tutorial and presented it as a Class last year at Autodesk University.<br />
<br />
There is an online video recording, PPT and PDF of this class at AU2008 website:<br />
<a href="http://au.autodesk.com/@script?nd=class&session_id=3019">AU2008</a><br />
<br />
For your convinience, I have also posted a direct link to the PDF:<br />
<a href="https://docs.google.com/open?id=0By7BVn8vCBxnVjFqWEhwYXpTZW0tVlo5QXhSXzljdw">Download</a><br />
<br />
This is the link for related source files:<br />
<a href="https://docs.google.com/open?id=0By7BVn8vCBxnd1VWYzYySFlTNy1mM3FtMGx6Sno3Zw">Projects_Exercise2.zip</a><br />
<br />
This is the link for the Step6 converted to VS2010 SP1, using Toolset V90 and ObjectARX 2012.
You will also need VS2008 SP1 installed to be able to compile it.
<br />
<a href="https://docs.google.com/open?id=0By7BVn8vCBxncmJpc1dZdV9xVTQ">Exercise2_VS2010_ARX2012.zip</a><br />
<br />
Best regards,<br />
Fernando Malard.Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com15tag:blogger.com,1999:blog-10425945.post-21981018033463234882009-02-11T09:56:00.004-02:002009-02-11T10:15:53.413-02:00AutoCAD 2010 announced!Hello,<br /><br />AutoCAD 2010 was announced:<br /><a href="http://finance.yahoo.com/news/Autodesk-Takes-3D-Design-and-prnews-14269988.html">http://finance.yahoo.com/news/Autodesk-Takes-3D-Design-and-prnews-14269988.html</a><br /><br />Very exciting new features and better support for .NET programming for customizing entities (I plan to discuss this further soon).<br /><br />Meanwhile, you may check these new features through a great collection of videos on the following page:<br /><br /><a href="http://heidihewett.blogs.com/files/autocad2010videos.htm">http://heidihewett.blogs.com/files/autocad2010videos.htm</a><br /><br />Regards,<br />Fernando.Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com1tag:blogger.com,1999:blog-10425945.post-18961566255897869722008-04-29T16:39:00.001-03:002008-04-29T16:49:06.975-03:00AU2008 VotingHello,<br /><br />This year, AU (Autodesk University) classes will be rated by vote.<br />I have sent 3 classes under the <strong>Customization & Programming</strong> Power Track.<br />If you plan to attend AU2008 and would like to see one of my classes please take some time to vote through the following link:<br /><br /><a href="https://www.surveymonkey.com/s.aspx?sm=Yy_2fqK2TzVXoIf7d0TuRulw_3d_3d">AU2008 Voting</a><br /><br />My classes are:<br /><br /><strong><em>1) The Power of ObjectARX® - The Lab – AutoCAD – Level: Advanced<br /><br />2) The Power of ObjectARX® - The Class – AutoCAD – Level: Intermediate<br /><br />3) Creating Your Own Vertical Application Through AutoCAD® OEM – AutoCAD – Level: Intermediate</em></strong><br /><br />Hope these classes are approved and I hope you are able to attend this year!<br />Regards,Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com1tag:blogger.com,1999:blog-10425945.post-89337714768851842752008-03-27T09:43:00.000-03:002008-03-27T10:40:26.314-03:00Version ControlHello,<br /><br />Probably you will need or already need some version controlling on your software or on its modules.<br />This is made through the <span style="color:#ff0000;"><strong>VS_VERSION_INFO</strong></span><span style="color:#000000;"> resource inside <strong>C++</strong> projects and through <strong><span style="color:#ff0000;">AssemblyInfo.cs</span></strong> file inside <strong>C#</strong> projects.</span><br /><br />I have found an old but up to date tool (<strong>runs from VS2002 to VS2008</strong>) which allows you to easily manage these version informations. This tool, from <a href="http://www.codeproject.com/script/Membership/Profiles.aspx?mid=820347">Julijan Sribar</a>, is an AddIn which tracks all opened projects and allow you to manage each version information. This tool is provided for free and its source code is also available for download: <a href="http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx">Versioning Controlled Build</a><br /><br />Another issue is how to get this information at runtime to display, for instance, this version at an "<strong><em>About</em></strong>" like dialog inside your product. To do that in VC++ we need to read the VS_VERSION_INFO resource and get what we want. There is also another great article <a href="http://www.codeproject.com/KB/cpp/GetLocalVersionInfos.aspx">Retrieving version information from your local application's resource</a>, from <a href="http://www.codeproject.com/script/Membership/Profiles.aspx?mid=553157">luetz</a>,explaining how to do that.<br /><br />Through C# there is no big deal, you can read the version information from AssemblyInfo as follows:<br /><br /><span style="font-family:courier new;color:#3333ff;">System.Reflection.Assembly oAssembly = System.Reflection.Assembly.GetExecutingAssembly(); </span><br /><span style="font-family:courier new;color:#3333ff;">System.Diagnostics.FileVersionInfo oFileVersionInfo = FileVersionInfo.GetVersionInfo(oAssembly.Location) ;</span><br /><span style="font-family:courier new;color:#3333ff;">MessageBox.Show("Version Info", oFileVersionInfo.ProductVersion);</span><br /><br />Hope this help you to keep your file versions organized and updated!<br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com8tag:blogger.com,1999:blog-10425945.post-87225332489555657892008-03-25T00:06:00.000-03:002008-03-25T00:16:42.444-03:00Blog Classes content updateHello,<br /><br />I have updated and fixed some classes sample code that are not UNICODE aware that will not compile inside VS2005 (ObjectARX 2007, 2008 and 2009).<br /><br />Basically, I have changed:<br /><br />- Add <strong><span style="color:#3333ff;">_T()</span></strong> macro to all strings;<br />- Changed strcpy() to <strong><span style="color:#3333ff;">_tcscpy()</span></strong> which is UNICODE aware;<br />- Changed char* to <strong><span style="color:#3333ff;">TCHAR*</span></strong> or to <strong><span style="color:#3333ff;">ACHAR*</span></strong> pointers;<br /><br /><strong><span style="color:#ff0000;">Important</span></strong>: <em>ACHAR is a typedef present inside "AdAChar.h" ObjectARX header. If you are trying to compile for non-UNICODE ObjectARX versions replace ACHAR* by TCHAR* (or char*) and you should get out of compilation errors.</em><br /><br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com4tag:blogger.com,1999:blog-10425945.post-14591080584771149922008-03-19T00:39:00.000-03:002008-03-19T00:43:09.935-03:00VS2005 SamplesHello,<br /><br />I have updated some VS2002 samples to VS2005.<br />There are two new files, ending with "VC8" which are the VS2005 converted solution/projects.<br /><br />You can download these projects from here:<br /><br /><a href="http://files.ofcdesk.com/ThirdParty/files/ObjectARX/VS2005/">VS2005 Samples</a><br /><br />These should compile fine with ObjectARX 2007, 2008 and 2009.<br />Note that if you plan to be 100% compatible with these 3 releases you will need to use the 2007 version of ObjectARX SDK.<br /><br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com9tag:blogger.com,1999:blog-10425945.post-51234786612938737602008-02-13T08:10:00.000-02:002008-02-13T08:22:01.483-02:00AutoCAD 2009Hello,<br /><br />Yesterday, February 12th, <strong>Autodesk</strong> has officially announced its <strong>2009 product line</strong>.<br />Read more about here:<br /><br /><a href="http://www.worldpressdays08.com/pages/page.cfm?action=products&sub1=1">http://www.worldpressdays08.com/pages/page.cfm?action=products&sub1=1</a><br /><br /><strong>AutoCAD 2009</strong> (codename <strong>Raptor</strong>) will implement several new features like these major ones:<br /><br />- View Cube (easy 3D view);<br />- Steering Wheel (easy 3D navigation);<br />- Office like Ribbon interface;<br />- Menu Browser;<br />- Action recorder;<br />- Geographic location;<br />- Modeless Layer manager (works now like a toolpallete);<br /><br />There are much more and you may find these detailed features soon at Autodesk website.<br /><br />My friend, Shaan Hurley, have a more detailed list at his Blog:<br /><a href="http://autodesk.blogs.com/between_the_lines/2008/02/the-2009-produc.html">http://autodesk.blogs.com/between_the_lines/2008/02/the-2009-produc.html</a><br /><br />Regarding to programming aspects, <strong>AutoCAD 2009</strong> is backward compatible with 2007 and 2008. This way an application compiled with <strong>ObjectARX 2007</strong> will be able to run inside all these 3 versions.<br /><br />Actually, AutoCAD 2009 was built using <strong>VS2005 Service Pack 1</strong> but if you plan to keep your project backward compatible it is recommended to <strong>use VS2005 without Service Pack</strong>.<br /><br />Probably the next version of AutoCAD will break the binary compatibility with 2007,2008 and 2009 and will use <strong>VS2008</strong>. Autodesk seems to be aligned with Microsoft Visual Studio evolution and will try to make only binary compatibility break on every 3 releases.<br /><br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-5178082910388274422008-01-14T23:34:00.000-02:002008-01-14T23:37:04.365-02:00AutoCAD GUI testsHello,<br /><br />I would like to introduce a new Blog this year. It will be about AutoCAD Applications GUI tests. The idea behind this Blog is to discuss methods and tools that could be used to test all types of AutoCAD applications against AutoCAD interface to reach a better test experience approaching the real user environment.<br /><br />If you are interested on discuss this I would like to invite you to visit my new Blog at:<br /><br /><a href="http://acadguitest.blogspot.com/">http://acadguitest.blogspot.com/</a><br /><br />Best regards,Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-51113543395249910782007-12-04T08:51:00.000-02:002007-12-04T08:59:56.235-02:00AU2007 was huge!Hello,<br /><br />AU2007 was really huge. The initial estimations are around 10.000 attendees.<br />What can we expect for AU2008 ? 15.000 ???<br /><br />I will post on the next days my two courses materials but as one of my classes was recorded here is the link for the presentation (you will need to register to AU Online to be able to see the video):<br /><br /><a href="http://autodesk.mediasite.com/autodesk/autologinform/?peid=7a7838a8-1bc6-4d68-8b03-3158b14c023f">http://autodesk.mediasite.com/autodesk/autologinform/?peid=7a7838a8-1bc6-4d68-8b03-3158b14c023f</a><br /><br />Best Regards.Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com3tag:blogger.com,1999:blog-10425945.post-36654799363629883722007-10-22T23:52:00.000-02:002007-10-22T23:53:41.710-02:00AutoCAD next version ?Hello,<br /><br />We are approaching the end of 2007 and if Autodesk keep its policy with annual releases of AutoCAD we will probably have soon the next release which would be 2009.<br /><br />I would like to ask you what do you expect as new features of this upcoming release. Please add your comments to this post and soon we will see what's new from the next AutoCAD.<br /><br />Meanwhile, cross your fingers and wait for the official announcement.<br /><br />Best regards,Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-73679721452133962872007-08-28T18:03:00.000-03:002007-08-28T18:12:06.909-03:00AU2007Hello,<br /><br />For those who will have the opportunity to participate on this year's Autodesk University at Las Vegas I would like to suggest my two classes:<br /><br /><a><strong><span style="color:#000099;">CP401-2</span></strong></a><br /><span style="color:#000099;">The Power of ObjectARX®</span><br /><br /><a><strong><span style="color:#000099;">CP405-1</span></strong></a><br /><span style="color:#000099;">Creating Your Own Vertical Application Through AutoCAD® OEM<br /></span><br />Registration:<br /><a href="http://au.autodesk.com/2007/register/">http://au.autodesk.com/2007/register/</a><br /><br />Hope to meet you in Vegas this year!<br />Regards,<br />Fernando.Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-89899156173272761602007-05-30T10:42:00.000-03:002007-05-30T10:45:24.809-03:00AUGI BrazilHello,<br /><br />I would like to invite all Portuguese speaking world to visit the brand new <strong>AUGI Brasil</strong> website.<br /><br /><strong>AUGI Br</strong> was officially launched today (<strong>30/05/2007</strong>) which is the same day <strong>AutoCAD 2008</strong> is being officially announced here in Brazil.<br /><br /><a href="http://www.augibr.com">http://www.augibr.com</a><br /><br />Congratulations!<br /><br />Fernando.Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-42547262037361622582007-03-06T10:57:00.000-03:002007-03-06T11:01:26.575-03:00Debug AutoCAD 2007 from VS2005 on Windows VistaHello,<br /><br />After some research I have tried to <strong>Debug AutoCAD 2007</strong> again but this time starting the Visual Studio 2005 with "<strong>Run as Administrator</strong>" feature. Now I'm able to Debug AutoCAD 2007 from <strong>VS2005</strong>.<br /><br />More tips to come as soon as I figure out them... :)<br /><br />If you have discovered something else, please share with this Blog!<br /><br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com8tag:blogger.com,1999:blog-10425945.post-39713934219058811912007-03-06T08:25:00.000-03:002007-03-06T10:43:43.010-03:00ObjectARX & Windows VistaHello,<br /><br />I have migrated to <strong>Windows Vista Ultimate</strong> and would like to share some problems / workaround I have made so far.<br /><br />The first issue you will face is related to <strong>Visual Studio</strong>. Windows Vista supports partially (<a href="http://go.microsoft.com/?linkid=5728666">VS2005</a>) and do not natively support previous versions. As I have several projects running on <strong>AutoCAD 2005 and 2006</strong> (they require <strong>VS2002</strong> to compile) I need a way to run then from inside Windows Vista. I have then remembered the good old <strong>Microsoft Virtual PC</strong> which is now free and has a new release 2007.<br /><br />I have downloaded and installed (<a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx">Virtual PC 2007</a>). After that I have then created a new virtual machine with <strong>Windows XP PRO SP2</strong> and then installed <strong>AutoCAD 2005</strong>, <strong>2006</strong> and <strong>VS2002</strong>. Of course my machine helps a lot because it runs an <strong>Intel Core 2 Duo</strong> processor and has <strong>2Gb RAM</strong>. The <strong>Virtual PC 2007</strong> runs well but it causes some erratic mouse moves and some small locks. Unsatisfied with that I then go to the Google and find out a great tip about how to improve <strong>Virtual PC 2007</strong> performance adding a new parameter to its (<a href="http://codebetter.com/blogs/jeff.lynch/archive/2006/11/28/VPC-2007-Beta_3A00_-Centrino-915-Chipset-Issues.aspx">XML configuration file</a>). After changed this it runs fast and without any erractic mouse moves. (Thanks to <strong><em>Jeff Lynch</em></strong>)<br /><br />Regarding to <strong>AutoCAD 2007</strong> and Windows Vista at the beginning I was unable to run it. As I'm new to Vista I have found a command when you right click on the application "<strong>Run as Administrator</strong>". This did the trick and now I'm able to open AutoCAD but I'm still unable to <strong>Debug</strong> or <strong>Attach to Process</strong> on Vista. This is not the proper solution once Autodesk already told us about some issues related with Vista and will release soon a Service Pack to <strong>AutoCAD 2007</strong> and <strong>LT 2007</strong>:<br /><br /><a href="http://autodesk.blogs.com/between_the_lines/2007/02/autocad_and_aut.html">AutoCAD 2007 and LT 2007</a><br /><br /><strong>AutoCAD 2008</strong>: It will be released soon and some good information about its integration with Windows Vista can be found here:<br /><br /><a href="http://autodesk.blogs.com/between_the_lines/2007/03/autocad_2008_wi.html">AutoCAD 2008</a><br /><br />(Thanks to <strong><em>Shaan Hurley</em></strong>)<br /><br />That's it for now.<br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0tag:blogger.com,1999:blog-10425945.post-77226235385054716842007-02-13T23:56:00.000-02:002007-02-14T00:00:50.596-02:00AutoCAD 2008 is coming...Hello,<br /><br />Autodesk has announced the upcoming AutoCAD 2008 version. It will be released on both 32-bit and 64-bit versions. There is no change on dwg file format. Further it will officially support Windows Vista.<br /><br />More information will be announced soon from Autodesk. Stay tuned at:<br /><br /><a href="http://www.autodesk.com">http://www.autodesk.com</a><br /><a href="http://through-the-interface.typepad.com/">http://through-the-interface.typepad.com/</a><br /><a href="http://autodesk.blogs.com/between_the_lines/">http://autodesk.blogs.com/between_the_lines/</a><br /><br />Cheers!Fernando Malardhttp://www.blogger.com/profile/09852061806995998594noreply@blogger.com0