七七影院色七七_免费观看欧美a一级黄片_亚洲综合久久久久久中文字幕_国产999999在线视频免费观看,国产小视频无码,国产精品亚洲日日摸夜夜添,女人高潮潮叫免费网站,久久影院国产精品,日韩成人在线影院,欧美囗交XX×BBB视频,色在线综合高清

機(jī)械社區(qū)

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2697|回復(fù): 2
打印 上一主題 下一主題

給AutoCAD增加計(jì)算器功能

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2006-8-29 08:50:06 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式

在用AutoCAD進(jìn)行繪圖時(shí),,經(jīng)常需要進(jìn)行一些必要的計(jì)算工作,。盡管Autodesk公司隨AutoCAD一起提供了一個(gè)可進(jìn)行簡單計(jì)算的LISP程序CALC.LSP,,但該程序開發(fā)較早,在COMMAND命令下使用,,界面不直觀,,且使用不方便。本文通過對AutoCAD內(nèi)對話框結(jié)構(gòu)及AutoLISP進(jìn)行研究,,提出了一種用對話框結(jié)構(gòu)實(shí)現(xiàn)計(jì)算器功能的方法,,同時(shí)給出程序流程圖,供大家參考,。該程序已應(yīng)用于我院的實(shí)際工作中,。

5 J/ U) }* z5 J1 k* C

1 原理及方法

- r( g/ q' u" S7 w( \

  AutoCAD對話框結(jié)構(gòu)包含多種構(gòu)件,如edit_box(編輯框),、text(文字),、button(按鈕)等。利用這些工具,,可以開發(fā)出界面友好的實(shí)用程序,。圖1就是用這種方法實(shí)現(xiàn)的。 將計(jì)算器中數(shù)字及各種運(yùn)算符號以按鈕(button)形式排成55列,,并把計(jì)算結(jié)果以文字構(gòu)件方式在對話框內(nèi)顯示,,即可得到圖1所示對話框結(jié)構(gòu)(對話框文件#CAL.DCL)。最后編制對話框顯示及完成各種運(yùn)算功能的驅(qū)動程序即可(驅(qū)動程序#CAL.LSP),,程序流程圖見圖2,。

* T0 e' _# z Q6 B* P1 `

  在#CAL.LSP程序中用到了AutoLISP提供的多種數(shù)值計(jì)算及變量轉(zhuǎn)換函數(shù)。需要說明的是,,筆者在調(diào)試過程中發(fā)現(xiàn)某些函數(shù)對變量有一些特殊要求,,現(xiàn)介紹如下,與讀者共同探討:

! f1 y! Q! T& v7 W, ^- |

  1,、在冪運(yùn)算函數(shù)(expt base power)中,,對變量base()power()的要求與代數(shù)學(xué)中冪的運(yùn)算要求是不同的。在代數(shù)學(xué)中對變量basepower的要求如下:

- V* i+ ?3 [+ d. g

  當(dāng) base>0時(shí),power 可為任意實(shí)數(shù),;

" d2 A" S. \0 @! t

  當(dāng)base=0時(shí),,power須大于0

: c4 \$ s; o/ q6 u+ \2 M6 O

  當(dāng)base<0時(shí),,power可為整數(shù),,若為小數(shù)或分?jǐn)?shù)時(shí)要求當(dāng)其化為最簡分?jǐn)?shù)時(shí)分母不能為偶數(shù)。

8 B$ ?5 y' g }5 R4 i

  但在AutoLISP中當(dāng)變量base<0時(shí),,要求power只能是整型數(shù)或小數(shù)點(diǎn)后均為0的實(shí)數(shù),,如2-2.0等,,否則將得到錯(cuò)誤信息或返回一個(gè)錯(cuò)誤結(jié)果(power值而定),。此外,當(dāng)計(jì)算結(jié)果太大而溢出時(shí),,對于For DOS版的AutoCAD將返回1.67e+308,,而WINDOWS版則返回1.79769e+308

X* {% b0 q3 ]. x& s$ Q

  2,、正余弦函數(shù)(sin x)(cos x)要求變量x必須小于等于9.223372e+18(當(dāng)然還可再延長小數(shù)位數(shù)),,否則得不到正確結(jié)果。例如當(dāng)變量為9.223373e+18時(shí),,對于For DOS版的AutoCAD返回NAN,,而WINDOWS版則返回變量值本身。

1 S& c/ j; q B% b

  3,、在使用函數(shù)(rtos)將數(shù)據(jù)轉(zhuǎn)化為字符串時(shí),,筆者發(fā)現(xiàn)當(dāng)數(shù)據(jù)大于1e+100(10100次方)時(shí),會將指數(shù)100自動地改為99,。例如,,執(zhí)行(rtos 6e+100 2 6)后得到"6.000000E+99",而不是所期待的"6.000000E+100",。所以本程序規(guī)定最大數(shù)據(jù)不能大于1e+99,,否則將顯示溢出錯(cuò)誤。當(dāng)然,,通過編制另外的轉(zhuǎn)換程序是可以將最大數(shù)據(jù)提高到AutoCAD所能接受的最大數(shù)據(jù)(經(jīng)測試發(fā)現(xiàn)其最大值可為1.79769e+308),。限于篇幅,本文不再提供該轉(zhuǎn)換函數(shù),,需要的同志可與筆者聯(lián)系,。

8 s& d1 t e1 e" a( T: q

2 程序使用方法

1 ?/ @* ]9 y# n4 k

  將程序#CAL.LSP 及對話框文件#CAL.DCL拷貝到AutoCAD所能找到的目錄中,在Command:命令下鍵入(LOAD "#CAL")進(jìn)行程序的加載,,即可象其它AutoCAD內(nèi)部命令一樣使用#CAL了,。也可在所使用的菜單文件(ACAD.MNU)中的下拉式菜單或屏幕菜單部分加上下面一行:[計(jì)算器]^C^C^P(if (null c:#cal) (load"#cal")) #cal以后即可直接從菜單中驅(qū)動該絳頡?/P> ; q% Y3 T0 r* g7 \. \

  對話框內(nèi)各個(gè)圖標(biāo)與普通計(jì)算器相似,,"C"表示清零,"M+"表示存儲結(jié)果,,"MR"表示彈出所存儲的結(jié)果,"sqrt"表示開方,,"X**y"表示求冪,。當(dāng)所輸入的數(shù)據(jù)不合適或計(jì)算結(jié)果溢出時(shí)對話框內(nèi)會顯示錯(cuò)誤提示信息。

  本程序在AutoCAD R12.0 For DOSFor WINDOWS版上均調(diào)試通過,,但在WINDOWS版本中所顯示的圖形與圖1略有不同,。
2#
發(fā)表于 2010-4-26 19:23:08 | 只看該作者
!!!!!!!!!!!!!!!!!!
3#
發(fā)表于 2010-4-27 10:05:06 | 只看該作者
哈哈,AUTOCAD08版已經(jīng)有了計(jì)算器啦,,O(∩_∩)O哈哈~
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

小黑屋|手機(jī)版|Archiver|機(jī)械社區(qū) ( 京ICP備10217105號-1,,京ICP證050210號,浙公網(wǎng)安備33038202004372號 )

GMT+8, 2025-4-22 13:51 , Processed in 0.066308 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表