<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3651905383300032751</atom:id><lastBuildDate>Thu, 15 Dec 2011 06:51:37 +0000</lastBuildDate><category>visual studio</category><category>c#</category><category>blocks</category><category>2009</category><category>webcast</category><category>cad</category><category>revit</category><category>Inventor</category><category>.net</category><category>2010</category><category>migration</category><category>performance</category><category>jigs</category><category>com</category><category>ribbon</category><category>autocad</category><category>fluentinterfaces</category><category>add in</category><category>screencast</category><title>Cup o' CAD.NET</title><description>.Net and AutoCAD adventures</description><link>http://cupocadnet.blogspot.com/</link><managingEditor>noreply@blogger.com (Bert Vanpeteghem)</managingEditor><generator>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CupOCadnet" /><feedburner:info uri="cupocadnet" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-1411718842035031222</guid><pubDate>Sun, 27 Nov 2011 13:38:00 +0000</pubDate><atom:updated>2011-11-27T05:54:23.316-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ribbon</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">add in</category><category domain="http://www.blogger.com/atom/ns#">Inventor</category><title>Inventor API: Ribbon Structure</title><description>&lt;p&gt;I ran a small app to iterate over the Inventor Ribbon structure. The results look as follows:&lt;/p&gt;  &lt;p&gt;(edit: added the DisplayName, next to the InternalName)&lt;/p&gt;  &lt;p&gt;Ribbon: ZeroDoc   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: iLogic.RibbonPanel - iLogic    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_AddInsTab - Add-Ins    &lt;br /&gt;Ribbon: Part    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSheetMetal - Sheet Metal    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_Model2DSketchCreate - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_SheetMetalCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_SheetMetalModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_SheetMetalPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_SheetMetalManage - Setup    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_SheetMetalManageUnfold - Flat Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabFlatPattern - Flat Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_Model2DSketchCreate - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_FlatPatternCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_FlatPatternModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_FlatPatternPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_FlatPatternInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_FlatPatternManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_FlatPatternExit - Folded Part    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabModel - Model    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_Model2DSketchCreate - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ModelCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ModelModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ModelPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ModelSurface - Surface    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_PlasticPart - Plastic Part    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ModelHarness - Harness    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssembleIPartIAssembly - iPart/iAssembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_AnalysisFEA - Simulation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ConvertSheetMetal - Convert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabInspect - Inspect    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_AnalysisMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsAnalysis - Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsAutoLimits - AutoLimits    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsEnvironments - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsClipboard - Clipboard    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsFind - Find    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsUpdate - Update    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsStylesAndStandards - Styles and Standards    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsLayout - Layout    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsAuthor - Author    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: iLogic.RibbonPanel - iLogic    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabView - View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewVisibility - Visibility    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ViewAppearance - Appearance    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewWindow - Windows    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelC_ViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEnvironments - Environments    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_EnvironmentsBegin - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ConvertSheetMetal - Convert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_EnvironmentsAddIns - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_AddInsTab - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSketch - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchDraw - Draw    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchConstrain - Constrain    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchLayout - Layout    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSketch_Exit - Exit 2D Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_2DSketchExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_Tab3DSketch - 3D Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_3DSketchDraw - Draw    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_3DSketchConstrain - Constrain    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_3DSketchModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_3DSketchInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_3DSketchFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_Tab3DSketch_Exit - Exit 3D Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_3DSketchExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabConstruction - Construction    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ConstructionManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ConstructionSurface - Surface    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabConstruction_Exit - Exit Construction    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ConstructionExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEditBaseSolid - Edit Base Solid    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ExplicitModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ExplicitManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEditBaseSolid_Exit - Exit Base Solid    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ExplicitExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabRoute - Route    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_RouteCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_RouteConstrain - Constrain    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_RouteManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabRoute_Exit - Exit Route    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_RouteExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabRender - Render    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_StudioRender - Render    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_StudioScene - Scene    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_StudioAnimate - Animate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_StudioManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabRender_Exit - Exit Studio    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_StuidoExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabStressAnalysis_Exit - Exit Stress Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_StressAnalysisExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAFEA - Stress Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAMaterial - Material    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAConstraints - Constraints    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEALoads - Loads    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAContacts - Contacts    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAPreProcess - Prepare    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEASolve - Solve    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAResult - Result    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAResultDisplay - Display    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAReport - Report    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAGuide - Guide    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEASettings - Settings    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAFEA_Exit - Exit Stress Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_AFEAExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAECExchange - AEC Exchange    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AECExchangeAuthor - Author    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AECExchangeManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAECExchange_Exit - Exit AEC Exchange    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_AECExchangeExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabReturn - Return    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_PartReturn - Return    &lt;br /&gt;Ribbon: Assembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: MoldTabLayout - Mold Layout    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelLayout - Mold Layout    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelRunnerChannel - Runners and Channels    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelSimulation - Mold Simulation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: MoldTabCoreCavity - Core/Cavity    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelPlasticPart - Plastic Part    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelPartingDesign - Parting Design    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: MoldTabMoldBase - Mold Assembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelStandardComponents - Mold Assembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanelMoldBoolean - Boolean    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: MoldPanel2DDrawing - 2-D Drawing    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAssemble - Assemble    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssembleComponent - Component    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssemblePosition - Position    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssembleManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssembleIPartIAssembly - iPart/iAssembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssembleAssemblyTools - Productivity    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssembleRoute - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AnalysisSimulation - Simulation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ConvertWeld - Convert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabDesign - Design    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_DesignFasten - Fasten    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_DesignFrame - Frame    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_DesignPowerTransmission - Power Transmission    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_DesignSpring - Spring    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabModel - Model    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelSketch - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelModify - Modify Assembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelManage - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabWeld - Weld    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldProcess - Process    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldWeld - Weld    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldSketch - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldModify - Preparation and Machining    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelWorkFeatures - Work Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldManage - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabWeld_ReturnParent - Weld Return to Parent    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_WeldReturnToParent - Return    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabInspect - Inspect    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsAnalysis - Interference    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AnalysisMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsAutoLimits - AutoLimits    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsRender - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsClipboard - Clipboard    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsFind - Find    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsUpdate - Update    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ModelManage - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsStylesAndStandards - Styles and Standards    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsAuthor - Author    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: iLogic.RibbonPanel - iLogic    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabView - View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ViewVisibility - Visibility    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ViewAppearance - Appearance    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ViewSavedViews - Saved Views    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewWindow - Windows    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelC_ViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEnvironments - Environments    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_EnvironmentsBegin - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ConvertWeld - Convert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_EnvironmentsAddIns - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_AddInsTab - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSketch - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchDraw - Draw    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchConstrain - Constrain    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSketch_Exit - Exit 2D Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTube_Pipe - Tube and Pipe    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeRoute - Run    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeContentCenter - Content    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeComponent - Component    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipePosition - Position    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeIPartIAssembly - iPart/iAssembly    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTube_Pipe_Exit - Exit Tube and Pipe    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTube_Pipe_Run - Pipe Run    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeRunCreate - Route    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeRunContentCenter - Content    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeRunManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTube_Pipe_Run_Exit - Exit Tube and Pipe Run    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_TubePipeRunExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabCable_Harness - Cable and Harness    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_CableHarnessCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_CableHarnessRoute - Route    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_CableHarnessManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_CableHarnessVisibility - Visibility    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabCable_Harness_Exit - Exit Cable and Harness    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_CableHarnessExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabRender - Render    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_StudioRender - Render    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_StudioScene - Scene    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_StudioAnimate - Animate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_StudioManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabRender_Exit - Exit Studio    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_StudioExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSimulation - Dynamic Simulation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationJoint - Joint    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationLoad - Load    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationResults - Results    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationAnimate - Animate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationMaterial - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationExport - Stress Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSimulation_Exit - Exit Dynamic Simulation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_SimulationExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAECExchange - AEC Exchange    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AECExchangeAuthor - Author    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AECExchangeManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAECExchange_Exit - Exit AEC Exchange    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AECExchangeExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabReturn - Return    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AssmReturn - Return    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAFEA - Stress Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAMaterial - Material    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAConstraints - Constraints    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEALoads - Loads    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAContacts - Contacts    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAPreProcess - Prepare    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEASolve - Solve    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAResult - Result    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAResultDisplay - Display    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAReport - Report    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAGuide - Guide    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEASettings - Settings    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAFEA_Exit - Exit Stress Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_AFEAExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabIFA - Frame Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFAManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFAProperties - Beams    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFAConstraints - Constraints    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Loads - Loads    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Connections - Connections    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Solve - Solve    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Result - Result    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Display - Display    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Publish - Publish    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFA_Settings - Settings    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabIFA_Exit - Exit Frame Analysis    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_IFAExit - Exit    &lt;br /&gt;Ribbon: Drawing    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabPlaceViews - Place Views    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_PlaceViewsCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_PlaceViewsModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_Annotate2DSketchCreate - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_PlaceViewsSheets - Sheets    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAnnotate - Annotate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_AnnotateDimension - Dimension    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_AnnotateFeatureNotes - Feature Notes    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_AnnotateText - Text    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_AnnotateSymbols - Symbols    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_Annotate2DSketchCreate - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_AnnotateTable - Table    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_AnnotateFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabAnnotateESKD - Annotate (ESKD)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDDrawingSheets - Drawing Sheets    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDAnnotateDimension - Dimension    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDAnnotateFeatureNotes - Feature Notes    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDAnnotateText - Text    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDAnnotateSymobols - Symbols    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKD2DSketchCreate - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDAnnotateTable - Table    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ESKDAnnotateFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsClipboard - Clipboard    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsUpdate - Update    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsParameters - Parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ToolsStylesAndStandards - Styles and Standards    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ToolsInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_ToolsModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ToolsDefine - Define    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: iLogic.RibbonPanel - iLogic    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabView - View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewWindow - Windows    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEnvironments - Environments    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_EnvironmentsBegin - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_EnvironmentsAddIns - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabNailboard - Nailboard    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_NailboardCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_NailboardEdit - Edit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_NailboardDimension - Dimension    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_NailboardManage - Manage    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_AddInsTab - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSketch - Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_2DSketchDraw - Draw    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_2DSketchConstrain - Constrain    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_2DSketchPattern - Pattern    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_2DSketchModify - Modify    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_2DSketchInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_2DSketchFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ToolsMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabSketch_Exit - Exit 2D Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_2DSketchExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabNailboard_Exit - Exit Nailboard Sketch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_NailboardExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabReview - Review    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ReviewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ReviewCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ReviewMeasure - Measure    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ReviewPrint - Print    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_PlaceViewsSheets - Sheets    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabNailboard_Review - Exit Review    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_ReviewExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabReturn - Return    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_DrawingReturn - Return    &lt;br /&gt;Ribbon: Presentation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabManage - Presentation    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelPn_PresentationCreate - Create    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsClipboard - Clipboard    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelPn_ToolsStylesAndStandards - Styles and Standards    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelPn_ToolsManage - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelPn_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabView - View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelA_ViewAppearance - Appearance    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewWindow - Windows    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelC_ViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEnvironments - Environments    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_EnvironmentsBegin - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_EnvironmentsAddIns - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_AddInsTab - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabReturn - Return    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelPn_PnReturnPanel - Return    &lt;br /&gt;Ribbon: iFeatures    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabiFeature - iFeature    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PaneliF_iFeaturesIFeature - iFeature    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsFind - Find    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelPn_ToolsInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PaneliF_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabView - View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PaneliF_ViewAppearance - Appearance    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewWindow - Windows    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelC_ViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEnvironments - Environments    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_EnvironmentsBegin - Begin    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelD_EnvironmentsAddIns - Add-Ins    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_AddInsTab - Add-Ins    &lt;br /&gt;Ribbon: UnknownDocument    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabCustomView - Custom View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_CustomViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_CustomViewAppearance - Appearance    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_CustomViewExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEngineersNotebook - Engineer's Notebook    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_EngineersNotebookNotes - Notes    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_EngineersNotebookFormat - Format    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_EngineersNotebookInsert - Insert    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_NotebookExit - Exit    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEngineersNotebookTools - Tools    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsOptions - Options    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsClipboard - Clipboard    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_ToolsContentCenter - Content Center    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ToolsWebTools - Web    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabEngineersNotebookView - View    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelU_ViewAppearance - Appearance    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelP_ViewWindow - Windows    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelC_ViewNavigate - Navigate    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatus - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_TabVault_Upgrade - Vault    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultAccess - Access    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultStatusUpgrade - File Status    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_PanelZ_VaultControl - Control    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Tab: id_GetStarted - Get Started    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_Launch - Launch    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedUI - User Interface Overview    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedWhatsNew - New Features    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_LearnAbout - Learn about Inventor    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Panel: id_Panel_GetStartedInvolve - Community    &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-1411718842035031222?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IycXW2ZgskEHLjagmcPY16rYCgQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IycXW2ZgskEHLjagmcPY16rYCgQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IycXW2ZgskEHLjagmcPY16rYCgQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IycXW2ZgskEHLjagmcPY16rYCgQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=Y8JckVC7KIY:rfUcEUfC_rg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=Y8JckVC7KIY:rfUcEUfC_rg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=Y8JckVC7KIY:rfUcEUfC_rg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=Y8JckVC7KIY:rfUcEUfC_rg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=Y8JckVC7KIY:rfUcEUfC_rg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/Y8JckVC7KIY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/Y8JckVC7KIY/inventor-api-ribbon-structure.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2011/11/inventor-api-ribbon-structure.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-2768120626848008102</guid><pubDate>Mon, 02 Nov 2009 09:06:00 +0000</pubDate><atom:updated>2009-11-02T01:11:41.025-08:00</atom:updated><title>Another .NET AutoCAD blog</title><description>Just found this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dwgdotnet.blogspot.com/"&gt;http://dwgdotnet.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Along with this blog, that brings the CAD .NET blogs to a total of 4 :)&lt;br /&gt;&lt;br /&gt;Through the interface: &lt;a href="http://through-the-interface.typepad.com/"&gt;http://through-the-interface.typepad.com/&lt;/a&gt;&lt;br /&gt;Bobby C. Jones: &lt;a href="http://bobbycjones.spaces.live.com/"&gt;http://bobbycjones.spaces.live.com/&lt;/a&gt;&lt;br /&gt;Cup o Cad .NET: &lt;a href="http://cupocadnet.blogspot.com/"&gt;http://cupocadnet.blogspot.com/&lt;/a&gt;&lt;br /&gt;Dwg Dot Net: &lt;a href="http://dwgdotnet.blogspot.com/"&gt;http://dwgdotnet.blogspot.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Any suggestions for additions are welcome, of course.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-2768120626848008102?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WgoQolezqFHn6WxfnkmNk_bjd90/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WgoQolezqFHn6WxfnkmNk_bjd90/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WgoQolezqFHn6WxfnkmNk_bjd90/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WgoQolezqFHn6WxfnkmNk_bjd90/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=xB7OhUfotjY:8rFGWffjRfw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=xB7OhUfotjY:8rFGWffjRfw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=xB7OhUfotjY:8rFGWffjRfw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=xB7OhUfotjY:8rFGWffjRfw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=xB7OhUfotjY:8rFGWffjRfw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/xB7OhUfotjY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/xB7OhUfotjY/another-net-autocad-blog.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/11/another-net-autocad-blog.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-3024287187563677349</guid><pubDate>Sun, 11 Oct 2009 15:56:00 +0000</pubDate><atom:updated>2009-10-11T08:58:55.675-07:00</atom:updated><title>Using Jigs from Palettes</title><description>&lt;p&gt;Facing a problem when trying to combine Jigs and Palettes, I posted a question on the AutoDesk Discussion Forums.  &lt;p&gt;The problem is as followed: I implemented some code from the TTI blog to create polylines with a Jig. (&lt;a href="http://through-the-interface.typepad.com/through_the_interface/2006/11/controlling_int_1.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2006/11/controlling_int_1.html&lt;/a&gt;)  &lt;p&gt;It is basically a Jig prompting the user to set points while a line is drawn to show the possible result. This mimics the PLINE functionality, which should be familiar to all of us :).  &lt;p&gt;When doing this from a command, all is good. The line appears nicely when the user is moving his mouse. However, when doing this from a button on a palette, the line drawn by the Jig is not visible, nor are snaps.  &lt;p&gt;I also noticed that when running from a command, the comboboxes in the toolbars lock up, but this does not happen from the palette.  &lt;p&gt;To get around this, Tony Tanzillo posted a nice solution with the AddCommand method in Autodesk.AutoCAD.Internals.Utils. This would work nicely, but this particular project is aimed at AutoCad 2007, where the AddCommand method is not yet present.  &lt;p&gt;So, how can you get around this problem without AddCommand?  &lt;p&gt;There may be many answers, but here is my implementation: &lt;p&gt;Say there’s a Palette where we want to display the number of Points or Vertices in the Polyline the user has just drawn with the Jig.  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_cNmigBr3EkA/StIALS-WYqI/AAAAAAAAAH0/4n3w2glT0is/s1600-h/image%5B2%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_cNmigBr3EkA/StIALtmOBUI/AAAAAAAAAH4/Uwe4ZKTEYyA/image_thumb.png?imgmax=800" width="175" height="137"&gt;&lt;/a&gt;  &lt;p&gt;To display the number of points, we need to have the Polyline that was drawn. So we need to call a method returning the Polyline that was drawn. &lt;p&gt;Now, the first button is where the problem is. There, I call the Jig directly from the button, and if you’d run the code at the &lt;a href="http://code.google.com/p/cupocadnetdemos/source/browse/#svn/trunk/SampleCollection%3Fstate%3Dclosed" target="_blank"&gt;CCN repository&lt;/a&gt;, you’d see that the Jig does not really behave as expected. &lt;p&gt;So, I needed another way. When the Jig is run from a command, the problem is non existent. Bottom line: run a command from the palette, and make sure that the palette receives the result from the command. &lt;p&gt;We need a command to be run: so that will be the command from the Through The Interface post: MYPOLY. I changed the code a little bit, so that the promt itself is in a separate class.  &lt;p&gt;This simply looks like this: &lt;/p&gt; &lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt; &lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; [CommandMethod(&lt;span style="color: #006080"&gt;"MYPOLY"&lt;/span&gt;)] &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; MyPolyJig() &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; { &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Prompts().PromptNewPolylineByPoints(); &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; } &lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Second we need a delegate that we can call from the PromptNewPolylineByPoints method, and we need to invoke that delegate from the prompt:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; Action&amp;lt;Polyline&amp;gt; ActionOnPromptPolyline;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;The code stays the same overall, only difference is at the end:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 98.28%; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; height: 210px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Added this code, so that a certain action can be called after prompting for polyline&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ActionOnPromptPolyline != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         ActionOnPromptPolyline.Invoke(resultingPolyline);&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (Exception)&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;finally&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         ActionOnPromptPolyline = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Only thing left to do is setting an action to do when prompting the polyline, and we do this in the buttons Click Event:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; height: 240px; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; promptPolylineViaCommand_Click(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// SendStringToExecute has asynchronous behaviour, so we cannot inspect the result of the&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// command here.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// Set the actionOnPromptPolyline delegate to the desired action and &lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// in the command the action will be executed.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     Prompts.ActionOnPromptPolyline = OnPromptPolyline;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// call command&lt;/span&gt;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     Autodesk.AutoCAD.ApplicationServices.Application.&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         DocumentManager.MdiActiveDocument.SendStringToExecute(&lt;span style="color: #006080"&gt;"MYPOLY "&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;And, finally, doing the desired logic on the resulting polyline:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-bottom: gray 1px solid; border-left: gray 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: consolas, 'Courier New', courier, monospace; max-height: 200px; font-size: 8pt; overflow: auto; border-top: gray 1px solid; cursor: text; border-right: gray 1px solid; padding-top: 4px"&gt;&lt;br /&gt;&lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; OnPromptPolyline(Polyline polyline)&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (polyline == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt; || !polyline.ObjectId.IsValid)&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         numberOfPointsTextbox.Text = &lt;span style="color: #006080"&gt;"No polyline drawn"&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     numberOfPointsTextbox.Text = polyline.NumberOfVertices.ToString();&lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;That’s it, this nicely solved the problem for me. If you have any other solutions, or a different approach, please share :).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Links for the post:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Polyline Jig on Through The Interface: &lt;a href="http://through-the-interface.typepad.com/through_the_interface/2006/11/controlling_int_1.html"&gt;http://through-the-interface.typepad.com/through_the_interface/2006/11/controlling_int_1.html&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Question on AutoDesk discussion Forums: &lt;a href="http://discussion.autodesk.com/forums/thread.jspa?threadID=747119&amp;amp;tstart=0"&gt;http://discussion.autodesk.com/forums/thread.jspa?threadID=747119&amp;amp;tstart=0&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Solution in Cup o’ Cad .NET SVN Repository: &lt;a href="http://code.google.com/p/cupocadnetdemos/source/browse/#svn/trunk/SampleCollection%3Fstate%3Dclosed"&gt;http://code.google.com/p/cupocadnetdemos/source/browse/#svn/trunk/SampleCollection%3Fstate%3Dclosed&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-3024287187563677349?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8-3vlIYbevRA0O1O17DKNKnAmbc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8-3vlIYbevRA0O1O17DKNKnAmbc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8-3vlIYbevRA0O1O17DKNKnAmbc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8-3vlIYbevRA0O1O17DKNKnAmbc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=qx6WhBZ-QMs:0FLQjvssK6U:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=qx6WhBZ-QMs:0FLQjvssK6U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=qx6WhBZ-QMs:0FLQjvssK6U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=qx6WhBZ-QMs:0FLQjvssK6U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=qx6WhBZ-QMs:0FLQjvssK6U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/qx6WhBZ-QMs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/qx6WhBZ-QMs/using-jigs-from-palettes.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_cNmigBr3EkA/StIALtmOBUI/AAAAAAAAAH4/Uwe4ZKTEYyA/s72-c/image_thumb.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/10/using-jigs-from-palettes.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-4154130517722194174</guid><pubDate>Wed, 10 Jun 2009 10:55:00 +0000</pubDate><atom:updated>2009-06-10T03:55:17.398-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">2009</category><category domain="http://www.blogger.com/atom/ns#">migration</category><category domain="http://www.blogger.com/atom/ns#">2010</category><category domain="http://www.blogger.com/atom/ns#">autocad</category><category domain="http://www.blogger.com/atom/ns#">com</category><title>Migrating AutoCAD COM API applications to AutoCAD 2010</title><description>&lt;p&gt;1. Change your CreateObject and GetObject calls from “AutoCAD.Application.17” to “AutoCAD.Application.18”&lt;/p&gt; &lt;p&gt;2. Change the reference “AutoCAD” from “AutoCAD 2009 Type Library” to “AutoCAD 2010 Type Library” (Autodesk.AutoCAD.Interop)&lt;/p&gt; &lt;p&gt;3. Change the reference “AXDBLib” from “AutoCAD/ObjectDBX Common 17.0 Type Library” to “AutoCAD/ObjectDBX Common 18.0 Type Library” (Autodesk.AutoCAD.Interop.Common)&lt;/p&gt; &lt;p&gt;See also:&lt;/p&gt; &lt;p&gt;&lt;a href="http://autocad.autodesk.com/?nd=autocad_tips_tutorials_detail&amp;amp;adsk_tip_id=676&amp;amp;jid=2036"&gt;http://autocad.autodesk.com/?nd=autocad_tips_tutorials_detail&amp;amp;adsk_tip_id=676&amp;amp;jid=2036&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;You will probably have to make some extra changes when reading/saving .dwg’s but I have yet to check those problems.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-4154130517722194174?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HRye8mPyGv88js3MMKne446bU_c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HRye8mPyGv88js3MMKne446bU_c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HRye8mPyGv88js3MMKne446bU_c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HRye8mPyGv88js3MMKne446bU_c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=_wyKnCUEhDw:9HS5qEhfoe8:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=_wyKnCUEhDw:9HS5qEhfoe8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=_wyKnCUEhDw:9HS5qEhfoe8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=_wyKnCUEhDw:9HS5qEhfoe8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=_wyKnCUEhDw:9HS5qEhfoe8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/_wyKnCUEhDw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/_wyKnCUEhDw/migrating-autocad-com-api-applications.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>3</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/06/migrating-autocad-com-api-applications.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-8408996178390579973</guid><pubDate>Sat, 09 May 2009 12:34:00 +0000</pubDate><atom:updated>2009-05-09T05:35:04.479-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">webcast</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">revit</category><title>Revit API introduction webcast</title><description>&lt;p&gt;Note to self: Jeremy Tammik posted a webcast on the Revit API: &lt;a href="http://thebuildingcoder.typepad.com/blog/2009/05/revit-api-introduction-webcast.html"&gt;http://thebuildingcoder.typepad.com/blog/2009/05/revit-api-introduction-webcast.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-8408996178390579973?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pvPG4lBznopVOWfCyHC8R37OMb0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pvPG4lBznopVOWfCyHC8R37OMb0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pvPG4lBznopVOWfCyHC8R37OMb0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pvPG4lBznopVOWfCyHC8R37OMb0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=6u45O537Cvo:ifGArIRnpOo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=6u45O537Cvo:ifGArIRnpOo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=6u45O537Cvo:ifGArIRnpOo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=6u45O537Cvo:ifGArIRnpOo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=6u45O537Cvo:ifGArIRnpOo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/6u45O537Cvo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/6u45O537Cvo/revit-api-introduction-webcast.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/05/revit-api-introduction-webcast.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-6384720511432497667</guid><pubDate>Thu, 07 May 2009 19:51:00 +0000</pubDate><atom:updated>2009-05-07T12:51:48.501-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cad</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">autocad</category><title>Rarities: another CAD .NET blog</title><description>&lt;p&gt;I found another blog (partially) focused on .NET in AutoCAD. I didn’t know that there existed one next to Through The Interface…&lt;/p&gt; &lt;p&gt;So, here it is: &lt;a href="http://bobbycjones.spaces.live.com/blog/"&gt;http://bobbycjones.spaces.live.com/blog/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;And he might just have brought me a solution to a problem I’ve been facing today: He mentiones that when using Database.ReadDwgFile, you ALWAYS need to dispose that. &lt;/p&gt; &lt;p&gt;I’ve been struggling with random AccessViolationException error’s when trying to set Block Properties. This might solve it… Let’s hope so.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-6384720511432497667?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Cqy30vc0gBO3QYXUzGpW2_aiNvA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cqy30vc0gBO3QYXUzGpW2_aiNvA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Cqy30vc0gBO3QYXUzGpW2_aiNvA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Cqy30vc0gBO3QYXUzGpW2_aiNvA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=2HB8WIadqlM:2OdCaMg5Xwg:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=2HB8WIadqlM:2OdCaMg5Xwg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=2HB8WIadqlM:2OdCaMg5Xwg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=2HB8WIadqlM:2OdCaMg5Xwg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=2HB8WIadqlM:2OdCaMg5Xwg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/2HB8WIadqlM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/2HB8WIadqlM/rarities-another-cad-net-blog.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>1</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/05/rarities-another-cad-net-blog.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-307565667270254508</guid><pubDate>Sat, 02 May 2009 18:23:00 +0000</pubDate><atom:updated>2009-05-02T11:24:25.914-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">visual studio</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">add in</category><title>Disable and restore Code Analysis for all projects in a solution</title><description>&lt;p&gt;Code Analysis is a Visual Studio tool that can analyze your code and warn you about bad practices and plain bad code. &lt;/p&gt; &lt;p&gt;It can be a very handy tool that can lift your code to a higher level and allows you to simply create better and more maintainable applications.&lt;/p&gt; &lt;p&gt;However, having code analysis enabled, severely slows down your build. Changing a little thing in code causes Code Analysis to run on the next build, which can be plain annoying. &lt;/p&gt; &lt;p&gt;For these reasons I have created a little Visual Studio Add In, which can disable Code Analysis on all projects in the currently opened solution, and can restore the initial settings.&lt;/p&gt; &lt;p&gt;The project home is: &lt;a href="http://code.google.com/p/codeanalyzethis/"&gt;http://code.google.com/p/codeanalyzethis/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can download the source&amp;nbsp; here: &lt;a href="http://code.google.com/p/codeanalyzethis/downloads/list"&gt;http://code.google.com/p/codeanalyzethis/downloads/list&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Or you can check out the source with SVN: svn checkout &lt;strong&gt;&lt;em&gt;&lt;a href="http://codeanalyzethis.googlecode.com/svn/trunk/"&gt;http&lt;/em&gt;&lt;/strong&gt;://codeanalyzethis.googlecode.com/svn/trunk/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I am not familiar with administering Open Source so I just picked the GNU GPL v3 licence. If anyone has any considerations towards the licence, please let me know.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-307565667270254508?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/90JWMtcsbDItKIvILAXTdYOIS8M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/90JWMtcsbDItKIvILAXTdYOIS8M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/90JWMtcsbDItKIvILAXTdYOIS8M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/90JWMtcsbDItKIvILAXTdYOIS8M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=EY35VfZlRPQ:JE3kkXzuk9w:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=EY35VfZlRPQ:JE3kkXzuk9w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=EY35VfZlRPQ:JE3kkXzuk9w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=EY35VfZlRPQ:JE3kkXzuk9w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=EY35VfZlRPQ:JE3kkXzuk9w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/EY35VfZlRPQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/EY35VfZlRPQ/disable-and-restore-code-analysis-for.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/05/disable-and-restore-code-analysis-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-4130883913019820879</guid><pubDate>Wed, 01 Apr 2009 20:21:00 +0000</pubDate><atom:updated>2009-04-01T13:21:02.701-07:00</atom:updated><title>Using App.Config with AutoCad</title><description>&lt;p&gt;In Winforms projects, it is quite common to use app.config. For instance, to store settings&amp;nbsp; and application parameters etc. When programming AutoCad extensions, you’ll run into problems: trying to address the default app.config file leads you to the app.config of the running process, being AutoCad. AutoCad has provided a solution for this (although it would be possible to do this yourself): they created an acad.exe.config. &lt;/p&gt; &lt;p&gt;Placing your application settings in acad.exe.config lets frameworks like Unity, Enterprise library and your own application to run correctly after all. This solution is not perfect, and still causes lots of problems with Unity, but there must be workarounds. This, again, might be interesting for a more extensive blog post on the subject. Just let me know if this is desired…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-4130883913019820879?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WmmRhQ2uS8IZkr0Kc25EsPBIHsk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WmmRhQ2uS8IZkr0Kc25EsPBIHsk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WmmRhQ2uS8IZkr0Kc25EsPBIHsk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WmmRhQ2uS8IZkr0Kc25EsPBIHsk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=SnWywzXW1y4:o6AOyQdD5Rw:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=SnWywzXW1y4:o6AOyQdD5Rw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=SnWywzXW1y4:o6AOyQdD5Rw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=SnWywzXW1y4:o6AOyQdD5Rw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=SnWywzXW1y4:o6AOyQdD5Rw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/SnWywzXW1y4" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/SnWywzXW1y4/using-appconfig-with-autocad.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>2</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/04/using-appconfig-with-autocad.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-8565645511117144399</guid><pubDate>Wed, 01 Apr 2009 17:52:00 +0000</pubDate><atom:updated>2009-04-01T13:27:39.142-07:00</atom:updated><title>Geometry and Algebra libraries</title><description>&lt;p&gt;Have you ever spent too much time figuring out a difficult algorithm with AutoCAD API’s Vectors and Matrices? I feel I have. In fact, I know I have. Last year, I needed several algorithms, such as Point In Polygon, Bounding Boxes and Convex Hull. I looked up the algorithms on Wikipedia or some other computational library, and I found mostly C or C++ code doing the job.&lt;/p&gt; &lt;p&gt;I know these languages, but I don’t use them all the time. It also seemed like a waste of time trying to write them in C# or VB. And it looked ugly as hell. Searching a little bit further, I found that these libraries actually already exist. More importantly, they are also very extensive and Open Source! These libraries are mostly GIS-oriented, but can definitely be used in CAD calculations too. A polygon is a polygon, no?&lt;/p&gt; &lt;p&gt;The most important one I found is &lt;a href="http://code.google.com/p/tf-net/" target="_blank"&gt;Topology Framework&lt;/a&gt;, this is actually a collection of libraries with slight modifications and renamings. There are several frameworks referenced by this one. And they can all be found under the Credits section.&lt;/p&gt; &lt;p&gt;Today, I read the following &lt;a href="http://coolthingoftheday.blogspot.com/2009/04/free-ms-pl-and-oss-mathnumerical.html" target="_blank"&gt;blogpost&lt;/a&gt;. It mentions a numerical library providing mathematical functions for .NET. I haven’t looked into it in detail, but if you’re no longer happy with the Math namespace in .NET, this might be worth checking out: &lt;a href="http://dnanalytics.codeplex.com/" target="_blank"&gt;dnAnalytics&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I might do a post on how to use these frameworks together with the AutoCad API, so if you’re interested, let me know…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-8565645511117144399?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kotzp00g4LSd9rOB2LxCviHuDxg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kotzp00g4LSd9rOB2LxCviHuDxg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kotzp00g4LSd9rOB2LxCviHuDxg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kotzp00g4LSd9rOB2LxCviHuDxg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=rR4mndBNEkw:MyK5UKWU4a4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=rR4mndBNEkw:MyK5UKWU4a4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=rR4mndBNEkw:MyK5UKWU4a4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=rR4mndBNEkw:MyK5UKWU4a4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=rR4mndBNEkw:MyK5UKWU4a4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/rR4mndBNEkw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/rR4mndBNEkw/geometry-and-algebra-libraries.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/04/geometry-and-algebra-libraries.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-2169611653767885962</guid><pubDate>Tue, 24 Mar 2009 20:12:00 +0000</pubDate><atom:updated>2009-03-24T13:15:03.504-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">fluentinterfaces</category><category domain="http://www.blogger.com/atom/ns#">screencast</category><title>Screencast on fluent interfaces</title><description>&lt;p&gt;Ever since I’ve used &lt;a href="http://code.google.com/p/fluent-nhibernate/" target="_blank"&gt;Fluent NHibernate&lt;/a&gt; I’ve become a big fan of Fluent interfaces. There is something very sexy, but more important, literally ‘fluent’ about using them.&lt;/p&gt; &lt;p&gt;Within possibilities I have been trying to implement the technique in my own coding &amp;amp; frameworks. While doing that, I found that it is really important to have a clear strategy, before starting to create all types of methods returning the ‘this’ object.&lt;/p&gt; &lt;p&gt;For example, when creating wrapper classes for selections in AutoCad, the Fluent styles seem very appropriate. (Note to self: blogpost ;).&lt;/p&gt; &lt;p&gt;Anyway, there is a great &lt;a href="http://www.dimecasts.net/Casts/CastFeedDetails/95" target="_blank"&gt;screencast up on Dimecasts&lt;/a&gt; about creating Fluent Interfaces. The screencast is not very extensive, but gives a nice overview and strategy on creating them.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-2169611653767885962?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7YFPX9HBRQ8NriSPE3hiDatNnfA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7YFPX9HBRQ8NriSPE3hiDatNnfA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7YFPX9HBRQ8NriSPE3hiDatNnfA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7YFPX9HBRQ8NriSPE3hiDatNnfA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=0reEAFzoQe0:yN5OZANHPPk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=0reEAFzoQe0:yN5OZANHPPk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=0reEAFzoQe0:yN5OZANHPPk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=0reEAFzoQe0:yN5OZANHPPk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=0reEAFzoQe0:yN5OZANHPPk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/0reEAFzoQe0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/0reEAFzoQe0/screencast-on-fluent-interfaces.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/screencast-on-fluent-interfaces.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-5377481601470710461</guid><pubDate>Thu, 19 Mar 2009 18:40:00 +0000</pubDate><atom:updated>2009-03-22T01:24:29.532-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cad</category><category domain="http://www.blogger.com/atom/ns#">blocks</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">c#</category><category domain="http://www.blogger.com/atom/ns#">jigs</category><category domain="http://www.blogger.com/atom/ns#">autocad</category><title>Jigging Block Properties</title><description>&lt;p&gt;A few days ago, I noticed a post on the AutoDesk Forums, asking for a way to edit a block property, immediately after inserting the block.&lt;/p&gt; &lt;p&gt;I bet that there is more than one way to handle this kind of action, but I’ll describe how I’d do it. &lt;/p&gt; &lt;p&gt;There are a few steps to do, before you can do this action. &lt;/p&gt; &lt;p&gt;First, to insert a Block and Jig it, you need to insert the block into the drawing. Next step is to position the block with a Jig. And then use a Jig that controls some properties of the Jig.&lt;br&gt;In my case I will use a Jig that controls the rotation of the block, and the length-property.&lt;/p&gt; &lt;p&gt;Note that this could be easily mimicked by just a regular rectangle, but you’ll get the point. I believe that being creative with this technique can lead to powerful, very user-friendly mechanisms.&lt;/p&gt; &lt;p&gt;To the code: Setting up the basics first, as these will happen exactly as in my last &lt;a href="http://cupocadnet.blogspot.com/2009/03/jigging-multiple-entities-with-drawjig.html" target="_blank"&gt;post&lt;/a&gt;, I will not include these in the code samples. Complete files of the code can be found on &lt;a href="http://code.google.com/p/cupocadnetdemos/" target="_blank"&gt;Google Code&lt;/a&gt;. Just go to the tab ‘Source’, click on ‘Browse’, expand the trunk and choose ‘BlockPropertyDrag’.&lt;/p&gt; &lt;p&gt;The first thing we need to do, is to set everything up. So basically, insert a block.&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; Database db = doc.Database;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; BlockTable blockTable = t.GetObject(db.BlockTableId, OpenMode.ForRead) &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; BlockTable;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;// first, create the block reference in memory&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; ObjectId blockDefinitionId = blockTable[&lt;span style="color: #006080"&gt;"dummy"&lt;/span&gt;];&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; BlockReference blockReference = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BlockReference(&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point3d(0, 0, 0), blockDefinitionId);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &lt;span style="color: #008000"&gt;// first append the block&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; BlockTableRecord modelSpace = t.GetObject(&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     blockTable[BlockTableRecord.ModelSpace], OpenMode.ForWrite, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; BlockTableRecord;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt; modelSpace.AppendEntity(blockReference);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; t.AddNewlyCreatedDBObject(blockReference, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Then we will first call the ‘place-the-block-into-position’-Jig:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// allow user to move the block around with the InsertBlockJig&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; InsertBlockJig insertBlockJig = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; InsertBlockJig(blockReference);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ed.Drag(insertBlockJig).Status != PromptStatus.OK)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;And then we call the property-drag Jig:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// do the property drag jig on the block&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; BlockPropertyDragJig dragJig = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; BlockPropertyDragJig(blockReference);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (ed.Drag(dragJig).Status != PromptStatus.OK)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; t.Commit();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;So far for the command. Of course, the real action is in the jigs. I’ll only show the Update() methods, the rest of the code is very default, and again, can be found on Google Code.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I did add 2 readonly properties to the Jigs: CurrentPosition and JiggedBlockReference. These properties basically just cast the protected Entity to BlockReference and return its position.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Our InsertBlockJig Update() method is very simple, we simply add the resulting Vector the the Block’s Position.&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; Update()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     JiggedBlockReference.Position = JiggedBlockReference.Position.Add(currentVector);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;That’s it for positioning. The currentVector variable is a global variable, set in the Sampler() Method. It just holds the Vector from the current Block’s Position and the registered mouse position in Sampler(). This is also how I did it in my last post on &lt;a href="http://cupocadnet.blogspot.com/2009/03/jigging-multiple-entities-with-drawjig.html" target="_blank"&gt;post on jigging multiple entities&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now, for the BlockPropertyDragJig, where we will be updating the block properties, we need to fill in the Update() as follows:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; Update()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// only 2d&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     Point2d oldPosition = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point2d(CurrentPosition.X, CurrentPosition.Y);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     Point2d newPosition = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Point2d(lastMousePosition.X, lastMousePosition.Y);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     JiggedBlockReference.Rotation = oldPosition.GetVectorTo(newPosition).Angle - Math.PI/2;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// loop properties to find the ones we need&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (DynamicBlockReferenceProperty prop &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; JiggedBlockReference.DynamicBlockReferencePropertyCollection)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (prop.PropertyName.ToUpper() == &lt;span style="color: #006080"&gt;"LENGTH"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             prop.Value = oldPosition.GetDistanceTo(newPosition);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;         }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Basically, we’re calculating 2 things here: the &lt;strong&gt;distance&lt;/strong&gt; and the &lt;strong&gt;angle&lt;/strong&gt; from the mouse position to the Block’s position (which is his Insertion Point).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The angle is controlling the rotation of the Block. The distance is controlling the Length property. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;So that’s all there is to it. Full code on &lt;a href="http://code.google.com/p/cupocadnetdemos/" target="_blank"&gt;Google Code&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One more thing, I personally find working with Blocks in the AutoCad API very inefficient and cumbersome. I can only suggest that you create a Wrapper for your Blocks, and service classes that provide all the needed functionality for you. If you’ll decide to create all your Block-Handling code on-the-fly, you’ll most likely have a very error-prone process and lots of duplicate code.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-5377481601470710461?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4IC5hHtUYJcPA5I0o6sxMdgOPyg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4IC5hHtUYJcPA5I0o6sxMdgOPyg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4IC5hHtUYJcPA5I0o6sxMdgOPyg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4IC5hHtUYJcPA5I0o6sxMdgOPyg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=-zPSX60MkCE:jAY2unUVhRA:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=-zPSX60MkCE:jAY2unUVhRA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=-zPSX60MkCE:jAY2unUVhRA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=-zPSX60MkCE:jAY2unUVhRA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=-zPSX60MkCE:jAY2unUVhRA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/-zPSX60MkCE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/-zPSX60MkCE/jigging-block-properties.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>4</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/jigging-block-properties.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-8290034199162453853</guid><pubDate>Mon, 16 Mar 2009 22:08:00 +0000</pubDate><atom:updated>2009-03-22T01:25:19.595-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cad</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">jigs</category><category domain="http://www.blogger.com/atom/ns#">autocad</category><title>Jigging multiple entities with the DrawJig</title><description>&lt;p&gt;Today I’m giving a simple example of how to use a Jig on multiple entities.&lt;/p&gt; &lt;p&gt;There are 2 kinds of jigs (as far as I know, maybe there are new types in the newer API’s): &lt;/p&gt; &lt;ul&gt; &lt;li&gt;EntityJig  &lt;li&gt;DrawJig&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The EntityJig only allows us to jig one entity at the time, so the type we need here is the DrawJig.&lt;/p&gt; &lt;p&gt;This example is very simple, and by no means exploits full potential of jigging, but it might be something to get you going.&lt;/p&gt; &lt;p&gt;We create a command called ccnSimpleJig (ccn for Cup of Code .Net). The point of this command is to select some polylines, and then use a Jig on them to achieve a similar affect to te MOVE command.&lt;/p&gt; &lt;p&gt;We start by creating the command:&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; [CommandMethod(&lt;span style="color: #006080"&gt;"ccnSimpleJig"&lt;/span&gt;)]&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; SimpleGeometryJig()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     Document doc = Application.DocumentManager.MdiActiveDocument;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     Editor ed = doc.Editor;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (Transaction t = doc.TransactionManager.StartTransaction())&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; ...&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;All goes nicely in a transaction. I’m not using a nice Try Catch Finally pattern, because the point here isthe jig.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Next, we select some entities and filter out the Polylines:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 96.91%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 263px; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// select some polylines&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; PromptSelectionOptions promptSelection = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PromptSelectionOptions();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; PromptSelectionResult result = ed.GetSelection(promptSelection);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (result.Status != PromptStatus.OK)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Iterate results to find polylines (I know filters are smarter..)&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; List&amp;lt;Polyline&amp;gt; polylines = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;Polyline&amp;gt;();&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (ObjectId oid &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; result.Value.GetObjectIds())&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     DBObject ent = t.GetObject(oid, OpenMode.ForWrite);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     Polyline p = ent &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; Polyline;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (p == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;continue&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;     polylines.Add(p);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Then we prompt for a base or reference point:&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// prompt refernce point&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; PromptPointOptions promptPoint = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; PromptPointOptions(&lt;span style="color: #006080"&gt;"select reference point"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; PromptPointResult promptPointResult = ed.GetPoint(promptPoint);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (promptPointResult.Status != PromptStatus.OK)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Now that we have all this, we can start the Jig, and don’t forget to commit the transaction.&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Jig It.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; SimpleGeometryJig jig = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; SimpleGeometryJig(polylines, promptPointResult.Value);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; PromptResult res = ed.Drag(jig);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;// Commit transaction to commit the moves we did.&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; t.Commit();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;The Jig itself is a class inheriting from the AutoCAD DrawJig class.&lt;br&gt;When inheriting the DrawJig, you must override (CTRL+ALT+F10 is your friend) 2 Methods: Sampler and WorldDraw.&lt;br&gt;Sampler simply tells the Jig to sample the needed data, and check if anything needs a redraw.&lt;br&gt;In WorldDraw, you can then update the entities so that the changes detected in the Sampler method are shown on the screen.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But, first things first, our SimpleGeometryJig Class. In the constructor of this class, we take in a collection of Polylines and a reference point (wich we specified in the command):&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IList&amp;lt;Polyline&amp;gt; polylines;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; Point3d currentPosition;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; Vector2d currentVector;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; SimpleGeometryJig(IList&amp;lt;Polyline&amp;gt; polylines, Point3d referencePoint)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.polylines = polylines;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// use first point in polyline collection as reference point&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     currentPosition = referencePoint;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// init current vector as 0,0,0&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     currentVector = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Vector2d(0, 0);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Notice that we also use a global Vector2d. This is for tracking the movements, and makes it easy to update the polylines.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, now our Sample method. Here we are looking for the current mouse position, and we will remember the difference of the current position with the new position. We are also returning Sampler States matching the outcome of the current Prompt (NoChange, OK, Cancel)&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; SamplerStatus Sampler(JigPrompts prompts)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     JigPromptPointOptions jigOpt = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; JigPromptPointOptions(&lt;span style="color: #006080"&gt;"select insertion point"&lt;/span&gt;);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     jigOpt.UserInputControls = UserInputControls.Accept3dCoordinates;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     PromptPointResult res = prompts.AcquirePoint(jigOpt);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (res.Status != PromptStatus.OK)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; SamplerStatus.Cancel;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// compare points&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (res.Value.IsEqualTo(currentPosition, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Tolerance(0.1, 0.1)))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; SamplerStatus.NoChange;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// get vector to current position&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     Vector3d v3d = currentPosition.GetVectorTo(res.Value);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     currentVector = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Vector2d(v3d.X, v3d.Y);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;     &lt;span style="color: #008000"&gt;// reset current position&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;     currentPosition = res.Value;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;     &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; SamplerStatus.OK;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In the WorldDraw function, we can now edit the polylines with the calculated vector and draw these changes to the screen.&lt;/p&gt;&lt;br /&gt;&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;&lt;br /&gt;&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; WorldDraw(Autodesk.AutoCAD.GraphicsInterface.WorldDraw draw)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         &lt;span style="color: #008000"&gt;// add vector to all points of all polylines&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var pl &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; polylines)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; pl.NumberOfVertices; i++)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;             {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;                 &lt;span style="color: #008000"&gt;// add vector to point&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;                 pl.SetPointAt(i, pl.GetPoint2dAt(i).Add(currentVector));&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;             }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;             draw.Geometry.Draw(pl);&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;catch&lt;/span&gt; (System.Exception)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;     {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;     }&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Voila, Jig is finished.&lt;br&gt;This is all the code we need, and we have a simple Jig that can move selected entities around.&lt;br&gt;For more useful and interesting jigs, you should take a look at &lt;a href="http://through-the-interface.typepad.com/through_the_interface/jigs/"&gt;Kean's site, filtered on the jig-category&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Oh, and the code for this article can be found on my samples (first sample for now) page on &lt;a href="http://code.google.com/p/cupocadnetdemos/"&gt;Google Code&lt;/a&gt;. (More specifcally under &lt;a href="http://code.google.com/p/cupocadnetdemos/source/browse/#svn/trunk/simpledrawjig%3Fstate%3Dclosed"&gt;simpledrawjig&lt;/a&gt;)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-8290034199162453853?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/maGXpbeYKDLAV2LUlmB2XQBPKd0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/maGXpbeYKDLAV2LUlmB2XQBPKd0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/maGXpbeYKDLAV2LUlmB2XQBPKd0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/maGXpbeYKDLAV2LUlmB2XQBPKd0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=JXjUlrmb84E:raVZ12Cavm4:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=JXjUlrmb84E:raVZ12Cavm4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=JXjUlrmb84E:raVZ12Cavm4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=JXjUlrmb84E:raVZ12Cavm4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=JXjUlrmb84E:raVZ12Cavm4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/JXjUlrmb84E" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/JXjUlrmb84E/jigging-multiple-entities-with-drawjig.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>5</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/jigging-multiple-entities-with-drawjig.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-5113651233832136852</guid><pubDate>Wed, 11 Mar 2009 20:34:00 +0000</pubDate><atom:updated>2009-03-11T13:40:00.653-07:00</atom:updated><title>New test with Live Writer and Code snippet plugin</title><description>&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Document OpenDocument(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; filePath, FileAccess access, &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; outsideSession)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; = Application.DocumentManager.Open(filePath, access == FileAccess.Read);    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; document;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; }&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;This is a test with Live Writer and a &lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=d4409446-af7f-42ec-aa20-78aa5bac4748&amp;amp;bt=9"&gt;Code Snippet plugin&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Updated: There seems to be an extra &amp;lt;br/&amp;gt; bug in this plugin,&amp;nbsp; but it can be fixed by using HTML in stead of XHTML as Markup Style.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Much better :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-5113651233832136852?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/X_JJjhGWOZzcQZ7A4zZNc59y-eQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X_JJjhGWOZzcQZ7A4zZNc59y-eQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/X_JJjhGWOZzcQZ7A4zZNc59y-eQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/X_JJjhGWOZzcQZ7A4zZNc59y-eQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=eBqHlz6_NWc:BhoV6rZ1Fuo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=eBqHlz6_NWc:BhoV6rZ1Fuo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=eBqHlz6_NWc:BhoV6rZ1Fuo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=eBqHlz6_NWc:BhoV6rZ1Fuo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=eBqHlz6_NWc:BhoV6rZ1Fuo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/eBqHlz6_NWc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/eBqHlz6_NWc/code-formatting-test-with-live-writer.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/code-formatting-test-with-live-writer.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-6640394530116708293</guid><pubDate>Wed, 11 Mar 2009 17:47:00 +0000</pubDate><atom:updated>2009-03-11T11:01:17.471-07:00</atom:updated><title>Test on code formatting</title><description>I really want code formatting to work on this blog. Until I move it to a better system, that is :)&lt;br /&gt;&lt;br /&gt;So a first test:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="c-sharp"&gt;  &lt;br /&gt;public class CupOCadNetBlog&lt;br /&gt;{&lt;br /&gt;public bool CanDoCodeFormattingProperly()&lt;br /&gt;{&lt;br /&gt;return true; // hopefully??? :)&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-6640394530116708293?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q-hYypj_rVMbEAHu229m3T32ML8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q-hYypj_rVMbEAHu229m3T32ML8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q-hYypj_rVMbEAHu229m3T32ML8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q-hYypj_rVMbEAHu229m3T32ML8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=NermkVEBwVA:bsDDY4pO2ic:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=NermkVEBwVA:bsDDY4pO2ic:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=NermkVEBwVA:bsDDY4pO2ic:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=NermkVEBwVA:bsDDY4pO2ic:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=NermkVEBwVA:bsDDY4pO2ic:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/NermkVEBwVA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/NermkVEBwVA/test-on-code-formatting.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/test-on-code-formatting.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-1858824828093589423</guid><pubDate>Sat, 07 Mar 2009 16:32:00 +0000</pubDate><atom:updated>2009-03-22T01:25:51.047-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">performance</category><category domain="http://www.blogger.com/atom/ns#">cad</category><category domain="http://www.blogger.com/atom/ns#">blocks</category><category domain="http://www.blogger.com/atom/ns#">.net</category><category domain="http://www.blogger.com/atom/ns#">autocad</category><title>Editing block properties performance issue</title><description>When working with dynamic blocks, I can imagine that the functionality most used are &lt;br /&gt;- Block Properties&lt;br /&gt;- Block Attributes&lt;br /&gt;- Maybe some Extension Dictionary editing.&lt;br /&gt;&lt;br /&gt;At least, that is what we worked with most in our last project. It was pretty much based on positioning and editing Dynamic Blocks. &lt;br /&gt;At the time, we had noticed some performance issues when we were inserting or editing a lot of blocks. This actually became annoying when we were doing operations that changed 40 or more blocks.&lt;br /&gt;&lt;br /&gt;At first, we thought that the problem was in our calculation and processing. We had a pretty intense Processing engine for the blocks and our reaction was that we were processing things too much.&lt;br /&gt;&lt;br /&gt;When we started investigating what caused the performance lag, we actually found that our processing was quite fast, but that the problem was editing a lot of Blocks. So, the problem was not our code; the timely operation was, waiting for AutoCAD operations to complete.&lt;br /&gt;&lt;br /&gt;So we isolated the functionality of accessing and editing blocks to see what exactly went wrong.&lt;br /&gt;&lt;br /&gt;We tried:&lt;br /&gt;- using less transactions (all can be done in one single transaction), no luck.&lt;br /&gt;- rewriting our code, so there would be less loops, no luck.&lt;br /&gt;&lt;br /&gt;As we investigated a little further, with timers on each operation we did, we finally found out that it were actually the block properties that were the slowness factor...&lt;br /&gt;&lt;br /&gt;The results were quite remarkable, as a reference:&lt;br /&gt;&lt;br /&gt;Inserting 100 blocks with 4 attributes and 4 properties takes us: 1000ms, so 1 second.&lt;br /&gt;&lt;br /&gt;In this second we have:&lt;br /&gt;&lt;br /&gt;Code overhead: 62ms&lt;br /&gt;Inserting block: 32ms&lt;br /&gt;Set attributes: 47ms&lt;br /&gt;Set properties: 859ms&lt;br /&gt;&lt;br /&gt;This means that setting the properties takes more than 85% of complete operation time.&lt;br /&gt;&lt;br /&gt;Now, you can say that, since this all still happens in one second, that there isn't a big performance issue. However, our blocks easily had 8-10 properties. So spending 85% of your time in updating properties is in fact a lot.&lt;br /&gt;&lt;br /&gt;Next time, we'll look in how to get around this issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-1858824828093589423?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tQ0jt2ejWWIc5Oleyy5i7lZsk88/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tQ0jt2ejWWIc5Oleyy5i7lZsk88/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tQ0jt2ejWWIc5Oleyy5i7lZsk88/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tQ0jt2ejWWIc5Oleyy5i7lZsk88/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=ialY9Mu4KpU:Two7Ir7BziY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=ialY9Mu4KpU:Two7Ir7BziY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=ialY9Mu4KpU:Two7Ir7BziY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=ialY9Mu4KpU:Two7Ir7BziY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=ialY9Mu4KpU:Two7Ir7BziY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/ialY9Mu4KpU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/ialY9Mu4KpU/editing-block-properties-performance.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>3</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/editing-block-properties-performance.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-8941070575818152162</guid><pubDate>Thu, 05 Mar 2009 13:36:00 +0000</pubDate><atom:updated>2009-03-05T06:01:41.439-08:00</atom:updated><title>eWasNotOpenForWrite when over attribute</title><description>Ok, so this is the bug that was the most mysterious, but the least frustrating. Although it was as stupid as the next...&lt;br /&gt;&lt;br /&gt;What I'm trying to do:&lt;br /&gt;&lt;br /&gt;Add a BlockReference to the Modelspace with a couple of BlockAttribute's.&lt;br /&gt;&lt;br /&gt;Problem: everything works well, until you're in AutoCAD, hovering over an attribute. This causes AutoCAD to shut down with the following message:&lt;br /&gt;&lt;br /&gt;scandr.cpp 815 eWasNotOpenForWrite.&lt;br /&gt;&lt;br /&gt;This somewhat obscure message got me searching all over my code for stuff I was not closing (DBObject.DowngradeOpen())...&lt;br /&gt;&lt;br /&gt;After comparing my code with code I have written previously, I found out that the answer was in fact pretty simple:&lt;br /&gt;&lt;br /&gt;When adding the AttributeReference to the BlockReference, I forgot to call Transaction.AddNewlyCreatedDBObject(..).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-8941070575818152162?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q63o62yAiKoNeEU2JWmX17-26_o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q63o62yAiKoNeEU2JWmX17-26_o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q63o62yAiKoNeEU2JWmX17-26_o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q63o62yAiKoNeEU2JWmX17-26_o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=UaDAMHqnIlU:_UBecQlWLz0:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=UaDAMHqnIlU:_UBecQlWLz0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=UaDAMHqnIlU:_UBecQlWLz0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=UaDAMHqnIlU:_UBecQlWLz0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=UaDAMHqnIlU:_UBecQlWLz0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/UaDAMHqnIlU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/UaDAMHqnIlU/ewasnotopenforwrite-when-over-attribute.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>0</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/ewasnotopenforwrite-when-over-attribute.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3651905383300032751.post-5776893313668040977</guid><pubDate>Thu, 05 Mar 2009 12:53:00 +0000</pubDate><atom:updated>2009-03-05T12:23:42.301-08:00</atom:updated><title>Frustrations</title><description>Sometimes frustrations can lead to good things. In my case my frustration has finally pulled me over the line to start blogging. I just spent half a day on a bug, so ridiculous, that I don't ever want to forget it again...&lt;br /&gt;&lt;br /&gt;Since I'm still busy fixing bug n° 2, I will post the details in the next post&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3651905383300032751-5776893313668040977?l=cupocadnet.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BD3fIKCDA9rpA1SsTD613en3iZk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BD3fIKCDA9rpA1SsTD613en3iZk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BD3fIKCDA9rpA1SsTD613en3iZk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BD3fIKCDA9rpA1SsTD613en3iZk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=HXgfctJ151g:ecgSUXlB6RY:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=HXgfctJ151g:ecgSUXlB6RY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=HXgfctJ151g:ecgSUXlB6RY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/CupOCadnet?a=HXgfctJ151g:ecgSUXlB6RY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/CupOCadnet?i=HXgfctJ151g:ecgSUXlB6RY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/CupOCadnet/~4/HXgfctJ151g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/CupOCadnet/~3/HXgfctJ151g/frustrations.html</link><author>noreply@blogger.com (Bert Vanpeteghem)</author><thr:total>4</thr:total><feedburner:origLink>http://cupocadnet.blogspot.com/2009/03/frustrations.html</feedburner:origLink></item></channel></rss>

