Re: [問題] autolisp寫有關面積的程式
※ 引述《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
推
02/05 07:04, , 1F
02/05 07:04, 1F
推
02/05 16:44, , 2F
02/05 16:44, 2F
→
02/05 16:45, , 3F
02/05 16:45, 3F
討論串 (同標題文章)
Cad_Cae 近期熱門文章
PTT數位生活區 即時熱門文章