[已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
請教一個LISP之前2012使用正常2018就出現問題
程式碼如下
請問是2018參數有變動嗎(函數錯誤被取消)
程式碼如下
- 代碼:
(defun c:lsp_aacm()
(setvar "cmdecho" 0)
(setq en (entsel "\n選取圓、線、弧、多義線計算長度: "))
(while en
(setq en (car en))
(command "lengthen" en "")
(setq dd1 (getvar "perimeter"))
(setq dd2 (/ (* dd1 1) 100))
(setq dd (rtos dd2 2 2))
(PRINC "\N點取文字位置:")
(IF (= (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))) 0)
(COMMAND "TEXT" PAUSE "" "" dd)
)
(setq en (entsel "\n選取長度: "))
)
(prin1)
)
請問是2018參數有變動嗎(函數錯誤被取消)
box888- 一般會員
- 文章總數 : 28
年齡 : 53
來自 : 台北
職業 : 設計
愛好 : 電影
個性 : 一般
使用年資 : 10
使用版本 : 2010
經驗值 : 5274
威望值 : 15
注冊日期 : 2010-09-24
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
如果有人使用2012以前的版本可以使用看看計(算長度很實用可以連續點選長度放置到指定位置位置)
box888- 一般會員
- 文章總數 : 28
年齡 : 53
來自 : 台北
職業 : 設計
愛好 : 電影
個性 : 一般
使用年資 : 10
使用版本 : 2010
經驗值 : 5274
威望值 : 15
注冊日期 : 2010-09-24
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
box888 寫到:請教一個LISP之前2012使用正常2018就出現問題
程式碼如下
(defun c:lsp_aacm()
(setvar "cmdecho" 0)
(setq en (entsel "\n選取圓、線、弧、多義線計算長度: "))
(while en
(setq en (car en))
(command "lengthen" en "")
(setq dd1 (getvar "perimeter"))
(setq dd2 (/ (* dd1 1) 100))
(setq dd (rtos dd2 2 2))
(PRINC "\N點取文字位置:")
(IF (= (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))) 0)
(COMMAND "TEXT" PAUSE "" "" dd)
)
(setq en (entsel "\n選取長度: "))
)
(prin1)
)
請問是2018參數有變動嗎(函數錯誤被取消)
2015版測試如下
(command "lengthen" en "")
要改成
(command "lengthen" en "" "" "")
naruto018- 中級會員
- 文章總數 : 224
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4490
威望值 : 564
注冊日期 : 2016-11-29
box888- 一般會員
- 文章總數 : 28
年齡 : 53
來自 : 台北
職業 : 設計
愛好 : 電影
個性 : 一般
使用年資 : 10
使用版本 : 2010
經驗值 : 5274
威望值 : 15
注冊日期 : 2010-09-24
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
再提供一個計算總長度的LISP給各位參考(選取所有的長度計算總長)希望對各位有幫助
- 代碼:
(defun c:long_Bcm-1 ( / en lay_name ss nn ssn num tnum ipt)
(setq en (entsel "\n選擇要過濾的圖層單位公厘:"))
(if en (progn
(setq lay_name (cdr (assoc 8 (entget (car en)))))
(setq ss (ssget
(list
(cons -4 "<AND")
(cons -4 "<OR")
(cons 0 "*line") ;
(cons 0 "circle");
(cons 0 "ARC") ;LINE and arc 都被選擇
(cons -4 "OR>")
(cons 8 lay_name) ;圖層
(cons -4 "AND>")
);LIST
);SSGET
)
;;;line 和arc 用or 是表示..line或arc 皆會被選.
(setvar "cmdecho" 0)
(setq nn (sslength ss))
(setq i 0 tnum 0)
(repeat nn
(setq ssn (ssname ss i))
(command "lengthen" ssn "" "" "")
(setq num (getvar "perimeter"))
(setq tnum (+ tnum num))
(setq i (1+ i))
);repeat
(if (null t_sz)
(setq t_sz(getreal "\n文字高度:"))
(progn
(setq t_sz (getreal (strcat "\n文字高度<" (rtos t_sz_tmp 2 2) ">:")))
(if (null t_sz) (setq t_sz t_sz_tmp))
)
)
(setq t_sz_tmp t_sz)
(setq ipt (getpoint "\n文字插入點:"))
(setq ab1 (/ (* tnum 1) 100))
(command "text" ipt t_sz "0" (strcat "總長度為 :" (rtos ab1 2 2) "公尺"))
(setq t_sz_tmp t_sz)
(setvar "cmdecho" 1)
);progn
);if
(princ)
)
box888- 一般會員
- 文章總數 : 28
年齡 : 53
來自 : 台北
職業 : 設計
愛好 : 電影
個性 : 一般
使用年資 : 10
使用版本 : 2010
經驗值 : 5274
威望值 : 15
注冊日期 : 2010-09-24
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
感謝熱心測試程式~naruto018 寫到:2015版測試如下
(command "lengthen" en "")要改成
(command "lengthen" en "" "" "")
多謝您無私的程式分享~box888 寫到:再提供一個計算總長度的LISP給各位參考(選取所有的長度計算總長)希望對各位有幫助
- 代碼:
(defun c:long_Bcm-1 ( / en lay_name ss nn ssn num tnum ipt)
(setq en (entsel "\n選擇要過濾的圖層單位公厘:"))
(if en (progn
(setq lay_name (cdr (assoc 8 (entget (car en)))))
(setq ss (ssget
(list
(cons -4 "<AND")
(cons -4 "<OR")
(cons 0 "*line") ;
(cons 0 "circle");
(cons 0 "ARC") ;LINE and arc 都被選擇
(cons -4 "OR>")
(cons 8 lay_name) ;圖層
(cons -4 "AND>")
);LIST
);SSGET
)
;;;line 和arc 用or 是表示..line或arc 皆會被選.
(setvar "cmdecho" 0)
(setq nn (sslength ss))
(setq i 0 tnum 0)
(repeat nn
(setq ssn (ssname ss i))
(command "lengthen" ssn "" "" "")
(setq num (getvar "perimeter"))
(setq tnum (+ tnum num))
(setq i (1+ i))
);repeat
(if (null t_sz)
(setq t_sz(getreal "\n文字高度:"))
(progn
(setq t_sz (getreal (strcat "\n文字高度<" (rtos t_sz_tmp 2 2) ">:")))
(if (null t_sz) (setq t_sz t_sz_tmp))
)
)
(setq t_sz_tmp t_sz)
(setq ipt (getpoint "\n文字插入點:"))
(setq ab1 (/ (* tnum 1) 100))
(command "text" ipt t_sz "0" (strcat "總長度為 :" (rtos ab1 2 2) "公尺"))
(setq t_sz_tmp t_sz)
(setvar "cmdecho" 1)
);progn
);if
(princ)
)
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
(PRINC "\n點取文字位置:")
補充,LISP語法要用小寫的 n
才會在下一行顯示
補充,LISP語法要用小寫的 n
才會在下一行顯示
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
請問如要加入可輸入文字高度 語法怎麼寫 謝謝
linxyz168- 專屬會員
- 文章總數 : 59
年齡 : 46
來自 : 新北市
職業 : 設計
愛好 : 看電影/打球
個性 : 隨和
使用年資 : 12年
使用版本 : 2011
經驗值 : 4502
威望值 : 12
注冊日期 : 2013-03-31
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
linxyz168 寫到:請問如要加入可輸入文字高度 語法怎麼寫 謝謝
簡單的改法:(可每次修改或需確認文字大小)
(COMMAND "TEXT" PAUSE "" "" dd)
改成
(COMMAND "TEXT" PAUSE PAUSE "" dd)
naruto018- 中級會員
- 文章總數 : 224
年齡 : 32
來自 : 高雄
職業 : 學習中(CAD,Revit,Excel VBA)
愛好 : 當個懶熊
個性 : 內向
使用年資 : 新手
使用版本 : 2015
AutoCAD基礎篇等級 : 10星級
積分 : 5
經驗值 : 4490
威望值 : 564
注冊日期 : 2016-11-29
回復: [已解決][問題]請教一個取出長度的LISP之前2012使用正常2018就出現問題--請問是2018參數有變動嗎
naruto018 寫到:linxyz168 寫到:請問如要加入可輸入文字高度 語法怎麼寫 謝謝
簡單的改法:(可每次修改或需確認文字大小)
(COMMAND "TEXT" PAUSE "" "" dd)
改成
(COMMAND "TEXT" PAUSE PAUSE "" dd)
謝謝各位前輩的指導,已修正完成可加入字高。
測試後設定單位很像為公尺,修為公分如下
(defun c:lsp_aacm()
(setvar "cmdecho" 0)
(setq en (entsel "\n選取圓、線、弧、多義線計算長度: "))
(while en
(setq en (car en))
(command "lengthen" en "" "" "")
(setq dd1 (getvar "perimeter"))
(setq dd2 (/ (* dd1 100) 100))
(setq dd (rtos dd2 2 2))
(PRINC "\n點取文字位置:")
(IF (= (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE")))) 0)
(COMMAND "TEXT" PAUSE PAUSE "" dd)
)
(setq en (entsel "\n選取長度: "))
)
(prin1)
)
linxyz168- 專屬會員
- 文章總數 : 59
年齡 : 46
來自 : 新北市
職業 : 設計
愛好 : 看電影/打球
個性 : 隨和
使用年資 : 12年
使用版本 : 2011
經驗值 : 4502
威望值 : 12
注冊日期 : 2013-03-31
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章