[討論]我有一個LISP可以根據Y軸增量,給予高程標示,但我想改成X軸...
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論]我有一個LISP可以根據Y軸增量,給予高程標示,但我想改成X軸...
這個LISP(DCDD)是我從國外網站找到的,他原本是為了高程(Y軸)標示,
如下動畫所示
https://gph.is/g/4V8bVvo
DCDD:
我主要的目的是希望X軸也可以跑出數據
影片當中我有使用 "CPT" 這個是可以針對兩點的距離跑出數據,但可惜的是他無法加上我要的文字,例如0K+ 和 小數點取兩位(四捨五入)
所以希望能把 CPT的LISP功能,可以置入去 DCDD這個LISP
以下是CPT的LISP
CPT:
在拜託大神幫幫我
如下動畫所示
https://gph.is/g/4V8bVvo
DCDD:
- 代碼:
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=56086&pid=171947&st=0entry171947
;;;;;; https://www.youtube.com/watch?v=3-i4i1p3cwM
(defun c:dcdd (/ lstSS txtstr p1 p2 listname txt txt1 ss)
(vl-load-com)
(defun acet-ss-to-list (ss / n e l)
(setq n (sslength ss))
(while (setq e (ssname ss (setq n (1- n))))
(setq l (cons e l))
)
)
;Gan gia tri goc
(if (not k0) (setq k0 1));;gan gia tri goc
(setq k (getreal (strcat "\nDrawing Ratio:1/" (rtos k0 2 0) "")));Nhap ty le ban ve
(if (not k) (setq k k0) (setq k0 k))
(defun dowith(lstSS / lstSS en str)
(cond ((setq en (car (vl-remove-if-not '(lambda(x)(wcmatch (cdadr (entget x))"*TEXT")) lstSS)))(setq str (acet-dxf 1 (entget en)) en (vlax-ename->vla-object en)))
((setq en (car (vl-remove-if-not '(lambda(x)(and (wcmatch (cdadr (entget x))"INSERT")(= (acet-dxf 66 (entget x)) 1))) lstSS)))
(setq str (vla-get-textstring (setq en(car (vlax-invoke (vlax-ename->vla-object en) 'GetAttributes)))))
)
)
(cons en str)
)
(grtext -1 "Edit By Nguy\U+1EC5n Ng\U+1ECDc S\U+01A1n")
(setq lstSS (acet-ss-to-list (setq ss (ssget)))
obj (car (setq en (dowith lstSS)))
str (cdr en)
p1 (getpoint "\nBase Point:")
eL (entlast)
oDz (getvar "Dimzin")
)
(setvar "DIMZIN" 0)
(while (setq p2 (getpoint p1 "\nNext Point:"))
(command "copy" ss "" p1 p2)
(while (setq EL (entnext EL)) (setq Listname (cons EL Listname)))
(setq Txt1 (car (dowith listName))
eL (entlast)
)
(Ktra)
(setvar "cecolor" "bylayer")
(vla-put-textstring txt1
(strcat (cond ((> (setq num (+ (atof str) (/ (- (cadr p2)(cadr p1)) k))) 0) "0K+")
((= num 0) "%%p")
(T "")
)
(rtos num 2 2));So chu so dau dau ;
)
)
(setvar "DIMZIN" oDZ)
)
;Tim va tao moi Layer
(defun ktra ()
(if (not (tblsearch "layer" "Caodo"))
(command "-LAYER" "m" "Caodo" "c" 1 "Caodo" "" )
(setvar "clayer" "Caodo" )
我主要的目的是希望X軸也可以跑出數據
影片當中我有使用 "CPT" 這個是可以針對兩點的距離跑出數據,但可惜的是他無法加上我要的文字,例如0K+ 和 小數點取兩位(四捨五入)
所以希望能把 CPT的LISP功能,可以置入去 DCDD這個LISP
以下是CPT的LISP
CPT:
- 代碼:
(defun c:cpt (/ ss a b dis eg)
(setq ss (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "*TEXT"))))))
a (getpoint "\nBase Point:")
)
(setvar 'cmdecho 0)
(while (setq b (getpoint a "\nNext Point:"))
(setq dis (distance a b))
(princ (strcat "" (rtos dis)))
(foreach v ss
(command "copy" v "" "non" a "non" b)
(setq eg (entget (entlast)))
(entmod (subst (cons 1 (rtos (+ dis (atof (cdr (assoc 1 eg)))))) (assoc 1 eg) eg))
)
)
(setvar 'cmdecho 1) (princ)
)
在拜託大神幫幫我
edmondsforum- 一般會員
- 文章總數 : 19
年齡 : 34
來自 : 台中
職業 : 水保顧問
愛好 : 電玩
個性 : 隨和、
使用年資 : 2年
使用版本 : autocad 2008 ,autocad 2017
經驗值 : 2753
威望值 : 0
注冊日期 : 2017-07-11
Atsai- 中級會員
- 文章總數 : 167
年齡 : 49
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 8
經驗值 : 5886
威望值 : 524
注冊日期 : 2012-04-06
yifeng.h likes this post
回復: [討論]我有一個LISP可以根據Y軸增量,給予高程標示,但我想改成X軸...
畫縱斷面很需要,期待前輩分享
yifeng.h- 一般會員
- 文章總數 : 31
年齡 : 43
來自 : 台南
職業 : 土木工程師
愛好 : 電影,程式設計
個性 : 隨和
使用年資 : 10年
使用版本 : 2012
經驗值 : 5476
威望值 : 27
注冊日期 : 2010-03-23
閃電俠- 一般會員
- 文章總數 : 42
年齡 : 41
來自 : 新竹
職業 : Package Design
愛好 : 玩電腦
個性 : 喜愛思考
使用年資 : N+5years
使用版本 : 初學
經驗值 : 1487
威望值 : 20
注冊日期 : 2021-04-19
回復: [討論]我有一個LISP可以根據Y軸增量,給予高程標示,但我想改成X軸...
檔案上傳在上面的帖子裏了。
Atsai- 中級會員
- 文章總數 : 167
年齡 : 49
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 8
經驗值 : 5886
威望值 : 524
注冊日期 : 2012-04-06
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章