AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[討論]分享即時顯示聚合線長度LISP

上一篇主題 下一篇主題 向下

[討論]分享即時顯示聚合線長度LISP

發表 由 devinchou 于 2016-12-02, 18:24

各位前輩們好!
這是小弟剛出爐的LISP,
功能為畫完聚合線後,
隨即在聚合線的端點,
顯示聚合線的長度,
請各位前輩們指教!
感恩呀!
代碼:
 ; [AutoCAD EXTEND] SHOWN IN LENGTH OF PLINE.
 ; [AutoCAD "指令"功能延伸] 即時顯示聚合線長度。
 ; 支援軟體版本("AutoCAD")
 ; 設計者:Devin,Chou
 ; 版權所有,歡迎使用
 ; Rev.1(2016/11/27-12/03)
(defun C:pls (/ pl_o pl_d pl_10 pl_70
                d_p d_lh x_p x_lh xy_lt
                pt1 pt2 pl_dt
                t_lay )
(setvar "cmdecho" 1 )
(setq t_lay
    (tblsearch "LAYER" "TEMP" ))
(if (= t_lay nil )
    (progn
    (setq t_lay "TEMP" )
    (entmake
    (list
    '(0 . "LAYER" )
    '(100 . "AcDbSymbolTableRecord" )
    '(100 . "AcDbLayerTableRecord" )
    '(62 . 7 )
    '(70 . 0 )
    '(6 . "Continuous" )
     (cons 2 t_lay )))) ; progn.end
    (setq t_lay "TEMP" )) ; if.end
(setq xy_lt '() d_p 0 x_p 0 )
(command "PLINE"
    (while (> (getvar 'cmdactive ) 0 )
    (command pause ))) ; while.end,pline.end
(setq pl_o
    (entlast ))
(setq pl_d
    (entget pl_o ))
(setq pl_70
    (cdr
    (assoc 70 pl_d )))
(setq d_lh
    (length pl_d ))
(while (< d_p d_lh )
(setq pl_10
    (nth d_p pl_d ))
(if (= (car pl_10 ) 10 )
    (setq xy_lt
    (cons pl_10 xy_lt ))) ; if.end
(setq d_p
    (1+ d_p ))) ; while.end
(setq xy_lt
    (reverse xy_lt ))
(setq x_lh
    (length xy_lt ))
(if (= pl_70 0 )
    (progn
    (while (< x_p (- x_lh 1 ))
    (setq pt1
    (cdr
    (nth x_p xy_lt )))
    (setq pt2
    (cdr
    (nth (1+ x_p ) xy_lt )))
    (setq x_p
    (1+ x_p ))
    (setq pl_dt
    (rtos (distance pt1 pt2 ) 2 0 ))
    (entmake_text )))) ; while.end,progn.end,if.end
(if (= pl_70 1 )
    (progn
    (while (< x_p x_lh )
    (setq pt1
    (cdr
    (nth x_p xy_lt )))
    (if (< (1+ x_p ) x_lh )
    (setq pt2
    (cdr
    (nth (1+ x_p ) xy_lt )))
    (setq pt2
    (cdr
    (nth 0 xy_lt )))) ; if.end
    (setq x_p
    (1+ x_p ))
    (setq pl_dt
    (rtos (distance pt1 pt2 ) 2 0 ))
    (entmake_text )))) ; while.end,progn.end,if.end
(prin1)
) ; pls.end,主程式結束
;----------主副程式分隔線----------;
(defun entmake_text ()
(entmake
    (list
    '(0 . "TEXT" )
     (cons 1 pl_dt )
     (cons 10 pt1 )
     (cons 40 20 )
     (cons 8 t_lay )))
(prin1)
) ; entmake_text.end,副程式結束
(princ "\nC:pls")
(prin1)
以下為影片說明檔-
附件
55. 聚合線-即時長度.zip 您無權下載這里的附件。(1 Kb) 下載 35 次
avatar
devinchou
初級會員
初級會員

文章總數 : 49
年齡 : 39
來自 : 基隆
職業 : 鋼筋檢料
愛好 : 寫作.閱讀.烹飪
個性 : 懶小孩一枚
使用年資 : 每天
使用版本 : 2006.2008
積分 : 2
經驗值 : 1396
威望值 : 150
注冊日期 : 2015-02-15
男 天蝎座 蛇

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 Tiger&蘋果爸 于 2016-12-05, 01:39

謝謝 devinchou 再次分享程式~
真的很讚~
害羞

____________________________________________________________________________________
avatar
Tiger&蘋果爸
系統管理員
系統管理員

文章總數 : 17192
年齡 : 41
來自 : 台北市文山區
職業 : AutoCAD顧問
愛好 : 蹓狗/戶外活動/拍照
個性 : 幽默/樂觀/善良
使用年資 : 15↑
使用版本 : AutoCAD 2016
經驗值 : 64609
威望值 : 12753
注冊日期 : 2008-04-23
2D基礎函授 2D進階函授 3D基礎函授 https://i11.servimg.com/u/f11/19/71/67/71/2d3d10.png2D+3D線上 顧問外掛程式 經典問與答讀者 藍鵲1號
2009聚會勳章 2010聚會勳章 2011聚會勳章 2012聚會勳章 2013勳章-2D基礎 2014聚會勳章 2015聚會勳章 2016聚會勳章 串連貼紙成功 男 水瓶座 兔

http://mypaper.pchome.com.tw/kv1012tiger

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 regina 于 2016-12-05, 08:09

超方便的的程式,感謝大大無私分享 竊喜
avatar
regina
專屬會員
專屬會員

文章總數 : 57
年齡 : 41
來自 : 臺中市
職業 : 鋼筋施工圖
愛好 : 吸收新知
個性 : 內斂
使用年資 : 8年
使用版本 : 2013
經驗值 : 3095
威望值 : -3
注冊日期 : 2009-10-24
顧問外掛程式 經典問與答讀者 女 水瓶座 龍

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 devinchou 于 2016-12-05, 10:59

使用上要注意喲!!!
目前還不接受圓弧的聚合線!!!
avatar
devinchou
初級會員
初級會員

文章總數 : 49
年齡 : 39
來自 : 基隆
職業 : 鋼筋檢料
愛好 : 寫作.閱讀.烹飪
個性 : 懶小孩一枚
使用年資 : 每天
使用版本 : 2006.2008
積分 : 2
經驗值 : 1396
威望值 : 150
注冊日期 : 2015-02-15
男 天蝎座 蛇

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 mayaguy 于 2016-12-14, 05:22

感謝分享!這很適合用在建築圖說的步行距離,只要把文字位置改到線段中央就完美了,我可以自己修改使用嗎?
avatar
mayaguy
初級會員
初級會員

文章總數 : 42
年齡 : 44
來自 : 台北
職業 : 建築
愛好 : 3C
個性 : 溫和
使用年資 : 15
使用版本 : 2012
積分 : 1
經驗值 : 2429
威望值 : 30
注冊日期 : 2011-09-28
顧問外掛程式 男 雙魚座 牛

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 devinchou 于 2016-12-14, 13:46

mayaguy 寫到:感謝分享!這很適合用在建築圖說的步行距離,只要把文字位置改到線段中央就完美了,我可以自己修改使用嗎?
當然沒問題!
歡迎使用!
另,我本來也有考慮將文字置於線段中央,
但這部份的程式不熟...
所以就採用最簡單的方法了。
對了!
字高還有圖層,
你也可以改成你自己常用的!
avatar
devinchou
初級會員
初級會員

文章總數 : 49
年齡 : 39
來自 : 基隆
職業 : 鋼筋檢料
愛好 : 寫作.閱讀.烹飪
個性 : 懶小孩一枚
使用年資 : 每天
使用版本 : 2006.2008
積分 : 2
經驗值 : 1396
威望值 : 150
注冊日期 : 2015-02-15
男 天蝎座 蛇

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 mayaguy 于 2016-12-15, 03:39

devinchou 寫到:
mayaguy 寫到:感謝分享!這很適合用在建築圖說的步行距離,只要把文字位置改到線段中央就完美了,我可以自己修改使用嗎?
當然沒問題!
歡迎使用!
另,我本來也有考慮將文字置於線段中央,
但這部份的程式不熟...
所以就採用最簡單的方法了。
對了!
字高還有圖層,
你也可以改成你自己常用的!

好的!
感謝您~!
avatar
mayaguy
初級會員
初級會員

文章總數 : 42
年齡 : 44
來自 : 台北
職業 : 建築
愛好 : 3C
個性 : 溫和
使用年資 : 15
使用版本 : 2012
積分 : 1
經驗值 : 2429
威望值 : 30
注冊日期 : 2011-09-28
顧問外掛程式 男 雙魚座 牛

回頂端 向下

回復: [討論]分享即時顯示聚合線長度LISP

發表 由 Rocky33321 于 2016-12-18, 04:37

個人對LISP不熟悉,下載來參考及研究,感謝分享
avatar
Rocky33321
一般會員
一般會員

文章總數 : 28
年齡 : 52
來自 : 台東
職業 : 土木工程
愛好 : 電腦
個性 : 良質
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2156
威望值 : 12
注冊日期 : 2012-03-27
藍鵲375號
男 金牛座 蛇

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章