看板 Cad_Cae 關於我們 聯絡資訊
※ 引述《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
sjgau:這個應該不難,等我明天有空幫你 02/05 07:04
sjgau:你可以把這兩個LISP程式e-mail 到我公司信箱嗎? 02/05 16:44
sjgau:[email protected] 02/05 16:45