作者tsanning (榕园的一只狗)
看板Cad_Cae
标题Re: [问题] autolisp写有关面积的程式
时间Sat Feb 4 17:28:46 2006
※ 引述《tsanning (榕园的一只狗)》之铭言:
: 唉
: 我autolisp忘光了 约末是三年前选修的
: 请问
: 面积嘛autocad里用聚合线画框完算是最快
: 这样是一次一个
: 我看那个_area指令
: 好像也只能一次一个
: 那想一次多个呢(框选或点选多个聚合线都好)
: 能写出来吗
: 不能写我就不去翻我的笔记本了
: 老人痴呆
: 算畸零地真累...进度1/24
那个
我copy书上光碟的档案 想结合 1.得面积数值 2.输出纯文字档
这两项
但是串不起来耶 目前只到 1.得面积数值的阶段
2.的输出档案里 我都无法把从1得到的面积数写进去...
单纯1是这样 (效率上有比 _area 快一点)
(defun c:lsp_45()
(setvar "cmdecho" 0)
(setq pt (getpoint "\n快选啊猪头: "))
(while pt
(setvar "cecolor" "1")
(command "bpoly" pt "")
(setq en (entlast))
(if (/= en nil)
(progn
(command "area" "o" en)
(setq aa (getvar "area"))
(redraw en 3)
(alert (strcat "面积=" (rtos aa 2)))
)
)
(entdel en)
(setvar "cecolor" "bylayer")
(setq pt (getpoint "\n再选嘛: "))
)
(prin1)
)
结合失败的1+2
(defun c:lsp_45()
(setvar "cmdecho" 0)
(setq pt (getpoint "\n快选啊猪头: "))
(while pt
(setvar "cecolor" "1")
(command "bpoly" pt "")
(setq en (entlast))
(if (/= en nil)
(progn
(command "area" "o" en)
(setq aa (getvar "area"))
)
)
(entdel en)
(setvar "cecolor" "bylayer")
(setq pt (getpoint "\n再选嘛: "))
)
(setq dat_file (getfiled "写档" "c:\d\report\de1\study\lsp" "txt" 1))
(setq ff (open dat_file "w"))
(write-line "面积一览" ff)
(write-line "==============" ff)
(write-line aa ff)
(write-line aa ff)
(write-line aa ff)
(close ff)
(prin1)
)
...aa不就是面积吗
为啥写不出来
就算我只点一个aa 也写不出来
错误讯息不是
损坏的引数类型: stringp 119578.0
就是
损坏的引数类型: fixnump: 119578.0
(119578.0就是面积 写不进txt里)
可以请仁人君子有空解个答吗
我梦想中的txt档像这样
119578.0
259872.5
4956.3
108572.8
4876.5
260276.6
.
.
.
这样最好
--
我真的忘差不多 现在只会检查()了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 222.157.44.71
1F:推 sjgau:这个应该不难,等我明天有空帮你 02/05 07:04
2F:推 sjgau:你可以把这两个LISP程式e-mail 到我公司信箱吗? 02/05 16:44