highflybir 发表于 2007-5-19 17:37:00

【越飞越高讲堂5】CAD中计算器的十大法宝

<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT>&nbsp;</P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal><FONT face="Times New Roman">CAD</FONT>的计算器在很多教材中鲜有提及,如果用好了它,有时能达到事半功倍的效果,且可以省去很多画辅助线的步骤。
<P></P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT>&nbsp;</P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>这里来讲讲<FONT face="Times New Roman">CAD</FONT>中计算器的用法,特别是用于几何计算方面。
<P></P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>下面的每个截图下面都有一段录像,讲解某个<FONT face="Times New Roman">cal</FONT>的某个函数的用法。
<P></P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT>&nbsp;</P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>几何计算器是集成在<FONT face="Times New Roman">AutoCAD</FONT>中的一个三维计算程序,可以计算矢量表达式(点、矢量和数值的组合)、实数和整数表达式。在计算中可以使用标准的数学函数,以及用于计算点、矢量和<FONT face="Times New Roman">AutoCAD</FONT>几何图形的专门函数。用户可直接在命令行调用“<FONT face="Times New Roman">cal</FONT>”命令,或在其他命令执行过程中透明地调用该命令(<FONT face="Times New Roman">'cal</FONT>)来启动该计算程序。其计算结果可作为当前<FONT face="Times New Roman">AutoCAD</FONT>提示的输入或用于为一个<FONT face="Times New Roman">AutoLISP</FONT>变量赋值。
<P></P>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT>&nbsp;</P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝一、直接计算表达式
<P></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>通过透明地调用<FONT face="Times New Roman">’cal,</FONT>其计算结果可以为当前输入值。
<P></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>例如,下面画楼梯踏步的例子,要画楼梯踏步高,只需透明调用<FONT face="Times New Roman">’cal</FONT>,<FONT face="Times New Roman"> <SPAN lang=EN-US>
<P></P></FONT></SPAN>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: 3000/18
<P></P></FONT>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">3000/18</FONT>意即<FONT face="Times New Roman">3000</FONT>高的楼层分成<FONT face="Times New Roman">18</FONT>步,这样画出来的踏步高是精确的。
<P></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<P></P></FONT></SPAN>
<P></P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>具体<FONT face="Times New Roman">CAL</FONT>中有哪些函数可以查看<FONT face="Times New Roman">CAD</FONT>帮助。</P>
<P style="TEXT-INDENT: 21pt; MARGIN: 0cm 0cm 0pt" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT>&nbsp;</P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝二、使用对象捕捉模式</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">CAL</FONT>函数可以使用<FONT face="Times New Roman">CAD</FONT>对象的捕捉模式来进行表达式的计算。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: (end+cen)/2<SPAN style="mso-spacerun: yes">&nbsp; </FONT></SPAN></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝三、获取一个对象的半径</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>可以用<FONT face="Times New Roman">rad</FONT>函数获取一个圆或弧对象的半径。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: 3*rad</FONT></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝四、在一条线上定位一个点</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>可以用<FONT face="Times New Roman">pld</FONT>函数和<FONT face="Times New Roman">plt</FONT>函数在一条线上定位一个点。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">‘cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: pld(P1,P2,distance) </FONT>表示在<FONT face="Times New Roman">P1P2</FONT>两点的直线上距离<FONT face="Times New Roman">P1</FONT>为<FONT face="Times New Roman">distance</FONT>的点。</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">‘cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: plt(P1,P2,0.3) </FONT>表示此点和<FONT face="Times New Roman">P1</FONT>距离为<FONT face="Times New Roman">P1P2</FONT>距离的<FONT face="Times New Roman">0.3</FONT>倍,且在<FONT face="Times New Roman">P1P2</FONT>上。</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝五、获取一个角度</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>可以用<FONT face="Times New Roman">ang</FONT>函数或取一个夹角。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: ang</FONT>(<FONT face="Times New Roman">P0,P1,P2</FONT>)返回一个顶点为<FONT face="Times New Roman">P0 </FONT>,起点为<FONT face="Times New Roman">P1 </FONT>,终点为<FONT face="Times New Roman">P2</FONT>的夹角。</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝六、定位交点</P>
<P style="MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 0" class=MsoNormal><SPAN style="mso-spacerun: yes"><FONT face="Times New Roman">&nbsp; </FONT></SPAN>利用<FONT face="Times New Roman">ill</FONT>函数可以定位交点。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: ill(P1</FONT>,<FONT face="Times New Roman">P2</FONT>,<FONT face="Times New Roman">P3</FONT>,<FONT face="Times New Roman">P4)</FONT>返回<FONT face="Times New Roman">P1P2</FONT>与<FONT face="Times New Roman">P3P4</FONT>的交点<FONT face="Times New Roman">.</FONT></P>
<P style="TEXT-INDENT: 20.35pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.94" class=MsoNormal>另外<FONT face="Times New Roman">ille </FONT>是函数<FONT face="Times New Roman">ill(end,end,end,end)</FONT>的简写。</P>
<P style="TEXT-INDENT: 20.35pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.94" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝七、两点连线的中点</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>函数<FONT face="Times New Roman">mee</FONT>表示两点连线的中点,实际是<FONT face="Times New Roman"> (end+end)/2</FONT>的简写。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: mee<SPAN style="mso-spacerun: yes">&nbsp; =&nbsp; 'cal &gt;&gt; </FONT></SPAN>表达式<FONT face="Times New Roman">: (end+end)/2</FONT></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝八、与直线垂直的单位矢量</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>函数<FONT face="Times New Roman">nee </FONT>表示垂直一直线的单位矢量,是函数<FONT face="Times New Roman">nor(end,end)</FONT>的简写</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>下面为它的用法的一个例子。</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝九、两点之间的距离</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>函数<FONT face="Times New Roman">dee </FONT>表示的是两点之间的距离,是函数<FONT face="Times New Roman">dist(end,end)</FONT>的简写。例如:</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal><FONT face="Times New Roman">'cal &gt;&gt; </FONT>表达式<FONT face="Times New Roman">: dee<SPAN style="mso-spacerun: yes">&nbsp; =&nbsp; 'cal &gt;&gt; </FONT></SPAN>表达式<FONT face="Times New Roman">:dist (end,end)</FONT></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 21pt; mso-char-indent-count: 0" class=MsoNormal>法宝十、坐标过滤器</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 17.95pt; mso-char-indent-count: 0; mso-para-margin-left: 1.71gd" class=MsoNormal><FONT face="Times New Roman">xyof(p1) </FONT>获取点<FONT face="Times New Roman">p1</FONT>的<FONT face="Times New Roman">X</FONT>、<FONT face="Times New Roman">Y</FONT>分量,<FONT face="Times New Roman">Z</FONT>分量设置为<FONT face="Times New Roman">0.0</FONT></P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 17.95pt; mso-char-indent-count: 0; mso-para-margin-left: 1.71gd" class=MsoNormal><FONT face="Times New Roman">xof(p1) </FONT>获取点<FONT face="Times New Roman">p1</FONT>的<FONT face="Times New Roman">X</FONT>分量,<FONT face="Times New Roman">Y</FONT>、<FONT face="Times New Roman">Z</FONT>分量设置为<FONT face="Times New Roman">0.0</FONT></P>
<P style="TEXT-INDENT: 17.95pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.71" class=MsoNormal><FONT face="Times New Roman">rxof(p1) </FONT>获取点<FONT face="Times New Roman">p1</FONT>的<FONT face="Times New Roman">X</FONT>分量</P>
<P style="TEXT-INDENT: 17.95pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.71" class=MsoNormal>其他方向类推。</P>
<P style="TEXT-INDENT: 0cm; MARGIN: 0cm 0cm 0pt 18pt; mso-char-indent-count: 0" class=MsoNormal>下面是通过坐标过滤器来获得一条直线的例子。</P>
<P style="TEXT-INDENT: 17.95pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.71" class=MsoNormal>
<P><FONT face="Times New Roman">&nbsp;</FONT></P>
<P></P>
<P style="TEXT-INDENT: 17.95pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.71" class=MsoNormal>当然计算器功能远不止这十大功能,这里仅仅讲解常用的几个用法。如果你掌握了几何计算器的全部用法,恭喜你,你已经向高手迈进了一大步!</P>
<P style="TEXT-INDENT: 17.95pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.71" class=MsoNormal>
<P><FONT face="Times New Roman"></FONT>&nbsp;</P>
<P></P>
<P style="TEXT-INDENT: 17.95pt; MARGIN: 0cm 0cm 0pt; mso-char-indent-count: 1.71" class=MsoNormal>下面的附件为几何计算器的用法及其函数的讲解。</P>

highflybir 发表于 2007-5-19 17:49:00

<p></p><p>这个附件为几何计算器的用法及其函数的讲解。</p>

flyee 发表于 2007-5-19 18:46:00

谢谢,学习下,呵呵

Robertbg 发表于 2007-5-21 00:38:00

恩,正好学习下,感谢楼住的提供!!~~

hlizhong 发表于 2007-5-21 10:44:00

长见识了!谢楼主!

WL_207 发表于 2007-5-22 18:36:00

楼主辛苦了,这正是我想学的呢,现在许多书中确实都没有CAL的教学

guyuxian 发表于 2007-5-23 17:26:00

<div>学习ing~~~~~~~~~~</div><div>~~~3Q~~~</div>

qincccken 发表于 2007-5-25 23:36:00

<p>现在我还正在开始学习CAD啊,不知这个难不难学啊,先看看!!</p>

秋枫 发表于 2007-5-27 07:23:00

<p>对楼主的某一条有不同意见:</p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0;">例如,下面画楼梯踏步的例子,要画楼梯踏步高,只需透明调用’cal,<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>'cal &gt;&gt; 表达式: 3000/18 <br/>3000/18意即3000高的楼层分成18步,这样画出来的踏步高是精确的。</p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0;"></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: 0cm; mso-char-indent-count: 0;">这条举例不妥。在这个特例下,无需调用Cal命令。你要知道,AutoCAD是能够接受米制、英制、分数形式的数据输入的。3000/18 就是一个分数(用小学数学的说法就是假分数)。AutoCAD可以直接接受这种分数形式的数据,无需调用Cal。貌似用分数形式精度更高一点:)</p>

mccad 发表于 2007-5-27 07:40:00

秋枫发表于2007-5-27 7:23:00static/image/common/back.gif对楼主的某一条有不同意见:例如,下面画楼梯踏步的例子,要画楼梯踏步高,只需透明调用’cal,   'cal >> 表达式: 3000/18 3000/18意即3000高的楼层分成18步,这例如,下面画楼梯踏步的例子,要画楼梯踏步高,只需透明调用’cal,
   
'cal >> 表达式: 3000/18
3000/18意即3000高的楼层分成18步,这样画出来的踏步高是精确的。

这条举例不妥。在这个特例下,无需调用Cal命令。你要知道,AutoCAD是能够接受米制、英制、分数形式的数据输入的。3000/18 就是一个分数(用小学数学的说法就是假分数)。AutoCAD可以直接接受这种分数形式的数据,无需调用Cal。貌似用分数形式精度更高一点:)
如果是这样:
1.5/2 则直接用会出错,而用'cal 再1.5/2则不会出错。
但以前象这种情况,我都是用15/20来代替。
页: [1] 2 3 4 5
查看完整版本: 【越飞越高讲堂5】CAD中计算器的十大法宝