ahlzl
发表于 2005-9-10 10:16:00
<P>说说AutoCAD的精度:</P>
<P>学过二次开发就知道双精度数Double了,AutoCAD能精确到第14位小数(AutoCAD 2004起是用.NET开发的,能精确到第15——16位小数),这样的精度虽然不是绝对精确,但已可认为是“绝对精确”了。正如学校政治老师所说,运动是绝对的,但不否认存在“相对静止”。</P>
<P>几何画法从数学上说是绝对精确的,但在CAD上我发现也是存在理论上的误差。如通过调试VBA程序能发现:有时理论上等于0的值,实际上会等于1.4212E-24之类的值!当然,这样小的误差是可认为没有误差的了,不过在写程序时,有时要将</P>
<P>if x=0 then 改为 if abs(x)<1E-10 then</P>
ahlzl
发表于 2005-9-10 10:29:00
<P>在运用计算方法进行绘图时,要充分利用ACAD自带计算器的功能,这样精度就是双精度数,也就可认为“没有误差”了。运用“袖珍计算器”来计算的话,很容易产生累计误差,而且计算步骤越多,误差越大。</P>
<P>这里有一个计算的画法(画法很多的),其中一个CAL表达式是:</P>
<P><FONT face=宋体 size=2>@+</FONT> </P>
ahlzl
发表于 2005-9-10 10:38:00
本帖最后由 作者 于 2005-9-10 20:16:34 编辑 <br /><br /> <P>不是每一个图都能用几何方法画出来!</P>
<P><FONT color=#ff0033><STRONG>如ACAD中没有“起点、终点、弧长”画弧的方法,要想通过起点(0,0),终点(100,0),以逆时针方向画一弧长为150的圆弧,用几何方法是画不好的。只能计算,不过要列出一个“解不出来”的方程……</STRONG></FONT></P>
<P>“算”不出来,不过,可以通过编程或其他软件的帮助来画。</P>
WL_207
发表于 2005-9-10 11:48:00
<P><A name=56112><FONT color=#0000ff><B>ahlzl</B></FONT></A>的方法做出来是对的。</P>
<P>我个人也认为作图就是作图,少量的计算是可以的,但是大部分操作还是绘图!</P>
alanchn
发表于 2005-9-10 19:46:00
<A name=56112><FONT color=#0000ff><B>ahlzl</B></FONT></A>能否把那个CAL表达式及其相关的操作方法讲解一下?
ahlzl
发表于 2005-9-10 21:08:00
<P>有关CAL命令,可看看CAD的帮助文件。</P>
<P>AB很好画出,第三点不好办,如果求出角A,就可用相对极坐标的方法画出AD,问题就解决了!第52贴就是用这种思路。</P>
<P>根据余弦定理及圆内接四边形对角互补的性质,100^2+130^2-2*100*130*cosA=120^2+70^2-2*120*70*cos(180-A),解出A,写成CAL表达式……</P>
<P>命令: l<BR>LINE 指定第一点:<BR>指定下一点或 [放弃(U)]: 'cal<BR>>>>> 表达式: <BR>@+<BR>正在恢复执行 LINE 命令。<BR>指定下一点或 [放弃(U)]: </P>
<P>同样,还可以用CAL求出一条对角线的长度,通过画圆的办法来得到交点(第三点)<BR></P>
1371370484
发表于 2005-9-11 08:22:00
<P>不要跟我说,我的贴子火药味如何如何的浓;也不要跟我说:我贴子的内容有错误,会误导他人。如果我的贴子内容有错误的话,我倒是非常欢迎你指出;因为我确实不知道。<BR>我想请问ahlzl:<BR>有哪一个版主不希望自己的论坛人气越来越旺,只要贴子的内容不反动,不色情,他的会员多发贴,发好贴呢?<BR>你要是知道我是谁,你还敢发这个贴子吗?<BR>你不发贴,我不发贴,等着鬼来发贴,是吧。那谁来发贴呢?论坛是靠大家来维护的,靠大家来支持的,靠大家来繁荣的。<BR>我想问一下ahlzl:要发什么样的贴子,才能配得上你版主的风格,口味呢?<BR>张三发一个贴子:你要是知道我是谁,你还敢发这个贴子吗?<BR>李四发一个贴子:你要是知道我是谁,你还敢发这个贴子吗?<BR>王五发一个贴子:你要是知道我是谁,你还敢发这个贴子吗?<BR>搞得大家都不发贴,那以后谁去发贴子呢?亏你还在晓东当版主。真不知道你在晓东是如何当上这个版主的呢?谁的贴子不对你的眼,或者有错的话:你要是知道我是谁,你还敢发这个贴子吗?</P>
<P>一点都不明理。<BR>气息<BR></P>
MACHETE
发表于 2005-9-11 20:09:00
<P>
<TABLE class=tablebody2 style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all" width="90%" border=0>
<TBODY>
<TR>
<TD style="FONT-SIZE: 9pt; LINE-HEIGHT: 12pt" width="100%"><IMG alt=发贴心情 src="http://www.mjtd.com/bbs/skins/default/topicface/face1.gif" border=0> <B></B><BR>
<P>这个图,看起来复杂,实际上很简单。简单的原因就在于四条边的边长都知道。<BR>因为它们共圆,共圆的四边形,有一个特征:就是对角互补。所以根据这一点,我们可以求出它们的共同边AC来。<BR>AC*AC=AB*AB+BC*BC-2AB*BC*COSB<BR>AC*AC=AD*AD+CD*CD-2AD*CD*COSD<BR>AB*AB+BC*BC-2AB*BC*COSB=AD*AD+CD*CD-2AD*CD*COSD<BR>因为角B与角D互补,所以<BR>AB*AB+BC*BC-2AB*BC*COSB=AD*AD+CD*CD+2AD*CD*COSB<BR>100*100+130*130-2*100*130COSB=120*120+70*70-2*120*70*COSB<BR>COSB=76/428<BR>COSB=0.17757<BR>所以。<BR>AC*AC=AB*AB+BC*BC-2AB*BC*COSB<BR>AC*AC=100*100+130*130-2*100*130*0.17757<BR>AC=149.2755<BR><BR>.................<BR>剩余的我就简单的说一下:</P>
<P>分别作AB,BC的垂直平分线,它们的交点就是圆心了。再以A点作半径120的圆,两圆相交的交点,就是D点。ABCD就是所求的四边形。<BR></P></TD></TR></TBODY></TABLE></P>
<P>上面的观点我一点都看不懂.</P>
ptlyt
发表于 2005-9-12 10:30:00
已经知道AB\AC的关系了就很容易啦,但好像很难确定阿
1371370484
发表于 2005-9-12 19:35:00
<P>平心而论,<A name=56233><FONT color=#0000ff><B>ahlzl</B></FONT></A>的解决办法比我的要高明很多,也很正确。在国内的水平可能也数一数二。</P>
<P>不过,如果<A name=56233><FONT color=#0000ff><B>ahlzl</B></FONT></A>有胆量敢见人就说那种话的话,顶多一个星期,就会死得很难看,哪个论坛都会干掉他。</P>