<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://communities.bentley.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Any free macros / VBA for Solving Arc, chord, radius &amp;amp; angle, then output as text?</title><link>https://communities.bentley.com/products/programming/microstation_programming/f/archived-microstation-v8i-vba-forum/63139/any-free-macros-vba-for-solving-arc-chord-radius-angle-then-output-as-text</link><description>I am constantly doing layouts that involve using Arc, radius, chord &amp;amp; angle, where two of those are known, and the other two are unknown (needs to be either layout or manually calculated). I already have an excel spread sheet to doing something similar</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/165276?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2011 14:05:36 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:8a88df8e-2574-4ada-8fa7-33a0c8b2ffc7</guid><dc:creator>keyur</dc:creator><description>&lt;p&gt;thank you Jon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/165274?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2011 13:40:18 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:5bb52901-1f9c-477f-9836-1bee2340546f</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;That statement was introduced with V8i. &amp;nbsp;All you need to do &amp;nbsp;is comment-out the line (or delete it).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/165266?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2011 12:28:15 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:f821c1e8-7ed3-4ac9-855f-9697d2f3237e</guid><dc:creator>keyur</dc:creator><description>&lt;p&gt;Hi Jon,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;I know this is v8i forum. But , can this MVBA can also be run on V8 platform(08.05.00.64)?&lt;/p&gt;
&lt;p&gt;I tried in v8 but it&amp;nbsp; fails at&amp;nbsp; &amp;quot; CommandState.CommandName = strAnnotateBearing &amp;quot; line&lt;/p&gt;
&lt;p&gt;please suggest&amp;nbsp; suitable changes.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;regards.&lt;/p&gt;
&lt;p&gt;Keyur&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/157369?ContentTypeID=1</link><pubDate>Sun, 16 Jan 2011 22:55:43 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:ff9c429f-ce75-4cd0-bd7a-1dbe7fdbfaf0</guid><dc:creator>Jon Summers</dc:creator><description>&lt;h4&gt;&lt;span style="color:SeaGreen;"&gt; Bearing Annotator VBA&lt;/span&gt; &lt;/h4&gt;
&lt;p&gt;
[quote user=&amp;quot;ball888&amp;quot;]How much work would it be to convert this macro to vba?[/quote]
&lt;/p&gt;
&lt;p&gt;
Some.
&lt;/p&gt;
&lt;p&gt;
Attached is a ZIP archive that contains a DGN file and a VBA project file &lt;span style="font-family:courier new,courier;"&gt;BearingAnnotator.mvba&lt;/span&gt;.
The DGN shows a &amp;#39;star&amp;#39; of annotated vectors.
The annotations in blue are obtained from Larry&amp;#39;s original BASIC macro.
The annotations in green are created by the VBA project.
&lt;/p&gt;
&lt;p&gt;
In order to try out the VBA macro&amp;nbsp;&amp;hellip;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; Unzip &lt;span style="font-family:courier new,courier;"&gt;Bearing.ZIP&lt;/span&gt;
	&lt;/li&gt;
&lt;li&gt; Copy &lt;span style="font-family:courier new,courier;"&gt;BearingAnnotator.mvba&lt;/span&gt; to one of MicroStation&amp;#39;s
	know VBA folders.
	For example, &lt;span style="font-family:courier new,courier;"&gt;\Bentley\Workspace\Standards\VBA&lt;/span&gt;
	&lt;/li&gt;
&lt;li&gt; Start MicroStation and keyin &lt;span style="font-family:courier new,courier;"&gt;vba run [BearingAnnotator]modMain.Main&lt;/span&gt;
	&lt;/li&gt;
&lt;li&gt; Select a line to annotate and place the annotation
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Note: I&amp;#39;ve not written the code to annotate an arc.  This version only annotates lines.
&lt;/p&gt;
&lt;p&gt;
Please feel free to provide comments.
&lt;/p&gt;

&lt;p&gt;
Regards, Jon Summers
&lt;br /&gt;
&lt;a href="http://www.la-solutions.co.uk"&gt;LA Solutions&lt;/a&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="https://communities.bentley.com/cfs-file/__key/telligent-evolution-components-attachments/00-19570-01-00-00-15-73-69/Bearing.zip" length="50284" type="application/x-zip-compressed" /></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/157351?ContentTypeID=1</link><pubDate>Sun, 16 Jan 2011 01:36:37 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:e6a4faa6-f3b0-43ca-8add-23bbca36412e</guid><dc:creator>ball888</dc:creator><description>&lt;p&gt;thanks, and how long did it take you to write it from scratch?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/157334?ContentTypeID=1</link><pubDate>Sat, 15 Jan 2011 17:28:47 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:37ca3235-50e8-425e-9a26-8a07fdd25f92</guid><dc:creator>Mozart319</dc:creator><description>&lt;p&gt;Best guess with an experienced programmer maybe 4 hours including debuging&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/157295?ContentTypeID=1</link><pubDate>Sat, 15 Jan 2011 03:27:04 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:03283880-eae1-4728-b472-f626162cba24</guid><dc:creator>ball888</dc:creator><description>&lt;p&gt;How much work would it be to convert this macro to vba? &amp;nbsp;If &amp;nbsp;you had to guess, how many house range? &amp;nbsp;Thanks &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156688?ContentTypeID=1</link><pubDate>Tue, 11 Jan 2011 18:07:19 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:1063b19d-db9a-4d5c-97c4-c51f94877774</guid><dc:creator>Samuel Wilson</dc:creator><description>&lt;p&gt;The place arc edge constrained command allows you to specify radius and/or angle in the toolsettings dialog. This tool also has a keyin to set the chord height:&lt;/p&gt;
&lt;p&gt;CONSGEOM CONSTRAIN ARCCHORDHEIGHT &amp;lt;value&amp;gt;&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt;Sam Wilson&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156611?ContentTypeID=1</link><pubDate>Tue, 11 Jan 2011 02:37:24 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:f8924e9c-25bd-4625-828f-b0beb9ee8f5c</guid><dc:creator>DavidG</dc:creator><description>&lt;p&gt;Seems like this could be done graphically with the tools at hand. i.e. snaps, arc tool settings and accudraw.&lt;/p&gt;
&lt;p&gt;If you have more specific examples I may be able to explain in more detail.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;DavidG&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156498?ContentTypeID=1</link><pubDate>Sun, 09 Jan 2011 16:14:50 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:b9c8c435-7922-4c0c-877d-a09fed261547</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;ball888&amp;quot;]I tried using it but I am getting an error &amp;quot;&lt;span style="color:SeaGreen;"&gt; complication&lt;/span&gt; failed[/quote]
&lt;/p&gt;
&lt;p&gt;
Well, programming MicroStation may seem complicated, 
but you are more likely to have seen a &amp;#39;&lt;span style="color:SeaGreen;"&gt; compilation&lt;/span&gt; error&amp;#39;  8-)
&lt;/p&gt;
&lt;p&gt;
The copied BASIC text inadvertently introduced a number of blank lines.
Usually a blank line doesn&amp;#39;t matter, but here some occur after a BASIC continuation character (&amp;#39;&lt;b&gt;_&lt;/b&gt;&amp;#39;).
The BASIC compiler doesn&amp;#39;t understand a blank line after a continuation character.
&lt;/p&gt;
&lt;p&gt;
The attached &lt;span style="font-family:courier new,courier;"&gt;Bearing.bas&lt;/span&gt; has extra lines removed and compiles &amp;amp; runs on V8&lt;i&gt;i&lt;/i&gt;.
&lt;/p&gt;
&lt;h4&gt;&lt;span style="color:SeaGreen;"&gt; Prefer VBA to BASIC&lt;/span&gt; &lt;/h4&gt;
&lt;p&gt;
Heed Robert&amp;#39;s advice and
&lt;a href="http://www.la-solutions.co.uk/content/MicroStationDevelopmentLanguages.htm#DistinguishVbaFromBasic" target="_blank"&gt;prefer VBA to BASIC&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
Regards, Jon Summers
&lt;br /&gt;
&lt;a href="http://www.la-solutions.co.uk"&gt;LA Solutions&lt;/a&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="https://communities.bentley.com/cfs-file/__key/telligent-evolution-components-attachments/00-19570-01-00-00-15-64-98/Bearing.bas" length="9153" type="application/octet-stream" /></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156489?ContentTypeID=1</link><pubDate>Sun, 09 Jan 2011 09:49:39 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:03ebb4ea-8bcc-48a9-87fd-a11c905f05b8</guid><dc:creator>RobertArnold</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;xxx.bas is a Microstation BASIC file extension... &amp;nbsp;This is old and out-dated. &amp;nbsp;xxx.mvba is a vba extension. &amp;nbsp;Please double check that you are pasting this into a vba module.&lt;/p&gt;
&lt;p&gt;--Robert&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156389?ContentTypeID=1</link><pubDate>Fri, 07 Jan 2011 22:03:38 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:a86506a6-3886-4309-886e-48b8a6d184de</guid><dc:creator>ball888</dc:creator><description>&lt;p&gt;Thanks for the Macro. &amp;nbsp; I tried using it but I am getting an error &amp;quot;complication failed at line 21&lt;/p&gt;
&lt;p&gt;syntax error&amp;quot;. &amp;nbsp; &amp;nbsp;Basically I opened the macro dialog box and selected &amp;quot;new&amp;quot; &amp;nbsp;blank macro. &amp;nbsp; &amp;nbsp;Then I pasted your macro lines and saved it as aaa.bas macro. &amp;nbsp; When I run the macro, I get an error. &amp;nbsp; Also tried adding &amp;nbsp;&amp;quot;Sub main&amp;quot; to the beginning of the macro routine. &amp;nbsp; &amp;nbsp; &amp;nbsp;Is this the way to do it? &amp;nbsp; Or would it be easier to to just post the Bearing.bas file as an attachment to this thread? &amp;nbsp; Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156316?ContentTypeID=1</link><pubDate>Fri, 07 Jan 2011 16:24:40 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:ec1d3230-0323-4a97-a38e-525a4b2ff445</guid><dc:creator>Mozart319</dc:creator><description>&lt;p&gt;Also the macro is setup where the user just picks the line or arc and the bearing of the line or information of the arc is put on the end of the cursor at active text format.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156315?ContentTypeID=1</link><pubDate>Fri, 07 Jan 2011 16:20:42 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:b1ddbd01-fc87-4570-a659-b1df8a6030c5</guid><dc:creator>Mozart319</dc:creator><description>&lt;p&gt;
&lt;p&gt;This is code for a macro that will do bearing and arcs, it is over a decade old but still works. I have be meaning to change it to a vba for years, but is low on my list. &amp;nbsp;You can either copy into a macro, or use the &amp;nbsp;concept in a vba.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39; Places bearing on a line or arc&lt;/p&gt;
&lt;p&gt;&amp;#39;--------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Created: &amp;nbsp; &amp;nbsp;Larry Wilson&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Workfile: &amp;nbsp;Bearing.bas&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Revision: &amp;nbsp; 1.0 &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Date: &amp;nbsp; &amp;nbsp; &amp;nbsp; 3/1998&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Rev:1A &amp;nbsp; &amp;nbsp; &amp;nbsp;LWilson-Change seperator and from dbl &amp;#39;&amp;#39; to &amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Notes: &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39;--------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;Sub DegMinSec (Iangle#,Angle$)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Degrees As Integer&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Minutes As Integer&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Seconds As Integer&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim TempDouble as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Sec as String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Sec=CHR$(34)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TempDouble = IAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Degrees = IAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TempDouble = TempDouble - Degrees&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; If TempDouble &amp;lt; 0 Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TempDouble = Abs(1 - Abs(TempDouble))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Degrees = Degrees - 1&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End If&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TempDouble = TempDouble * 60&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Minutes = TempDouble&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TempDouble = TempDouble - Minutes&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; If TempDouble &amp;lt; 0 Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TempDouble = Abs(1 - Abs(TempDouble))&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Minutes = Minutes - 1&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End If&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TempDouble = TempDouble * 60&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seconds = TempDouble&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if Seconds &amp;gt; 59.5 then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Minutes = Minutes + 1&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seconds = Seconds - 60&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End if &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if Minutes &amp;gt; 59 then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Degrees = Degrees + 1&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Minutes = Minutes - 60&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; End If&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Degrees = Abs(Degrees)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Minutes = Abs(Minutes)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Seconds = Abs(Seconds)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Angle$ = Format$(Degrees,&amp;quot;General Number&amp;quot;) + &amp;quot;^&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Angle$ = Angle$ + Format$(Minutes,&amp;quot;General Number&amp;quot;) + &amp;quot;&amp;#39;&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Angle$ = Angle$ + Format$(Seconds,&amp;quot;General Number&amp;quot;) + Sec&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sub Main&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;Null&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;set parseall off&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim accepted As Integer&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim elem As New MbeElement &amp;nbsp;&amp;#39;defines an object called elem in which we&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#39;will keep our element&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim filePos As Long&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim status As Integer&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Label as String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim IAngle as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Radius as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim element as New MbeElement&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Angle As String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim ArcLength as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim TempDouble as Double&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim StartPoint as MbePoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim EndPoint as MbePoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim ChLength as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim ChAngle as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim ChBearing as String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim NS as String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim EW as String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim endOfFilePos as Long&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim Sp as String&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Dim RotAngle as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Sp = &amp;quot; &amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;NOECHO&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeWriteCommand &amp;quot;MACRO Label Bearing&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeWritePrompt &amp;quot;Select Element&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;accepted = FALSE&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;While NOT accepted&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeStartLocate&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeWritePrompt &amp;quot;Select element...&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeGetInput MBE_DataPointInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_ResetInput, &amp;nbsp;_&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_CommandInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_KeyInInput&lt;/p&gt;
&lt;p&gt;Start:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Lablel$ = &amp;quot;&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Select Case MbeState.InputType&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_CommandInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_KeyinInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Select&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filePos = element.fromLocate()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;#39;While we&amp;#39;ve found an element that we haven&amp;#39;t yet accepted&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;While MbeState.CmdResult = MBE_AcceptQuery AND _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NOT &amp;nbsp;accepted&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeWritePrompt &amp;quot;Accept/Reject&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeGetInput MBE_DataPointInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_ResetInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_CommandInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_KeyInInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Select Case &amp;nbsp;MbeState.InputType&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_ResetInput &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filePos = elem.fromLocate()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#39;Because MbeStartLocate automatically finds another&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#39;element if there is one at the same place.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_DataPointInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;accepted = TRUE&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_CommandInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_KeyinInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;End Select&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Wend&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Wend&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; MbeSendCommand &amp;quot;Null&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Dim Tang as Double&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Select Case element.type&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case Mbe_Arc&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Radius = Element.primaryAxis&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = &amp;quot;R=&amp;quot; + Format$(Radius, &amp;quot;Fixed&amp;quot;) + &amp;quot;&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IAngle = Element.SweepAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IAngle = Abs(IAngle)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IAngle = IAngle*180/PI&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tang=iangle/2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tang=Tan(Tang/180*pi)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Tang=(Radius * Tang)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Call DegMinSec (IAngle#, Angle$)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + chr$(10)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + &amp;quot;23/64 =&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + Angle$&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + chr$(10)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ =Label$+&amp;quot;T=&amp;quot;+Format$(tang, &amp;quot;Fixed&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + chr$(10)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + &amp;quot;ARC =&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ArcLength = IAngle / 360&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ArcLength = ArcLength * PI * Radius * 2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Label$ = Label$ + Format$(ArcLength, &amp;quot;Fixed&amp;quot;) + &amp;quot;&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case Mbe_Line&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Case Else&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; End Select&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DistBear:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Status=Element.getEndPoints(StartPoint,EndPoint)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;TempDouble = (StartPoint.x - EndPoint.x)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Chlength = (StartPoint.y - EndPoint.y)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;TempDouble = TempDouble * TempDouble&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ChLength = ChLength * ChLength&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ChLength = ChLength + TempDouble&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ChLength = Sqr(ChLength)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MbeSendCommand &amp;quot;Null&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;dv=TEMP01&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;sv=TEMP01&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendDataPoint startpoint, 1%&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;vi=top&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendDataPoint startpoint, 1%&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;act an pt3&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendDataPoint Startpoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;dx=,-5&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;di=5,n0^e&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;RotAngle = MbeSettings.angle * 180 / PI&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;act an pt2&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendDataPoint Startpoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendDataPoint EndPoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;Null&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;vi=TEMP01&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendDataPoint startpoint, 1%&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin &amp;quot;dv=TEMP01&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ChAngle = MbeSettings.angle * 180 / PI&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ChAngle = Changle - RotAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ChAngle &amp;lt; 0 Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;ChAngle = 360 + ChAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;End If&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Select Case ChAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case 0 to 90&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; NS = &amp;quot;N&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; EW = &amp;quot;E&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; ChAngle = 90 - Changle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case &amp;nbsp;90 to 180&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; NS = &amp;quot;N&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; EW = &amp;quot;W&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; ChAngle = ChAngle - 90&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case &amp;nbsp;180 to 270&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; NS = &amp;quot;S&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; EW = &amp;quot;W&amp;quot;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; ChAngle = 90 - (ChAngle - 180)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case &amp;nbsp;270 to 360&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; NS = &amp;quot;S&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; EW = &amp;quot;E&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; ChAngle = ChAngle - 270&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case Else&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;End Select &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;IAngle = ChAngle&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Call DegMinSec (IAngle#, Angle$)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;If element.type = mbe_Arc Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Label$ = Label$ + chr$(10) + &amp;quot;Ch=&amp;quot; + NS + Sp + Angle$ + EW&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Label$ = Label$ + &amp;quot;-&amp;quot; + &amp;nbsp;Format$(ChLength,&amp;quot;Fixed&amp;quot;) + &amp;quot;&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSettings.angle = 0&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ElseIf element.type = mbe_Line Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Label$ = &amp;nbsp;NS + Sp + Angle$ + EW&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Label$ = Label$ + Sp + &amp;quot;- &amp;quot; + &amp;nbsp;Format$(ChLength,&amp;quot;Fixed&amp;quot;) + &amp;quot;&amp;#39;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;act an pt2&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendDataPoint Startpoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendDataPoint EndPoint&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;TempDouble = MbeSettings.angle/PI&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;If (MbeSettings.angle/PI) &amp;gt; .5 and (MbeSettings.angle/PI) &amp;lt; 1.5 Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSettings.angle = MbeSettings.angle - PI&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;End If&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;End If &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PlaceText:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSettings.textjustification = MBE_LeftTop&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSettings.nodejustification = MBE_LeftTop&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;set parseall off&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;Place Text &amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendKeyin Label&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeGetInput MBE_DataPointInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_ResetInput, &amp;nbsp;_&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_CommandInput, _&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_KeyInInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;set parseall on&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Select Case MbeState.InputType&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_DataPointInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;Null&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_CommandInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_ResetInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_KeyinInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeSendLastInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Exit Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;End Select&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeWriteCommand &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;#39;MbeWritePrompt &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MbeWriteStatus &amp;quot;Pick Next Line &amp;lt;D&amp;gt; Exit &amp;lt;R&amp;gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp;MbeGetInput MBE_DataPointInput, _&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_ResetInput, &amp;nbsp;_&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_CommandInput, _&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;MBE_KeyInInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Select Case MbeState.InputType&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_DataPointInput&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Main&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;Case MBE_ResetInput&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GOTO EndMacro&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;End Select&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EndMacro:&lt;/p&gt;
&lt;p&gt;&amp;#39; &amp;nbsp; Turn Parse All back on&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;set Parseall on&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;Null&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeSendCommand &amp;quot;ECHO on&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeWriteCommand &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeWritePrompt &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;MbeWriteStatus &amp;quot;Finished MACRO LABEL ARC&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Any free macros / VBA for Solving Arc, chord, radius &amp; angle, then output as text?</title><link>https://communities.bentley.com/thread/156312?ContentTypeID=1</link><pubDate>Fri, 07 Jan 2011 16:08:03 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:f2645ded-3822-4967-ba6a-a7ba66d4a3f0</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;
If you can write the forumul&amp;aelig; in Excel, then you (or someone) can reproduce them using VBA.
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;
Regards, Jon Summers
&lt;br /&gt;
&lt;a href="http://www.la-solutions.co.uk"&gt;LA Solutions&lt;/a&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>