yxh1202
发表于 2012-2-17 09:17:36
学习了,能否改进下成为支持块的
注册
发表于 2012-3-24 21:16:56
程序不错,但是不支持块 现在天正弄出来的标高 都是块,
注册
发表于 2012-3-24 21:17:36
理正的也是如此啊
cabinsummer
发表于 2012-4-25 21:00:13
userzhl 发表于 2009-5-27 14:54 static/image/common/back.gif
只支持“TEXT"MTEXT"意义不大,若能支持属性块的话就好了。
支持属性块的标高
http://bbs.mjtd.com/thread-91303-1-1.html
注册
发表于 2012-4-27 22:55:37
此贴持续关注中
pxt2001
发表于 2012-7-15 10:49:16
;;复制标高,标高数字自动修改
(defun c:t ()
;(PXT_ER)
(defun DXF (n da) (cdr (assoc n da)))
(setq xtblm '("osmode" "clayer" "cecolor" "orthomode" "plinewid")
xtblz (mapcar 'getvar xtblm)
)
(setvar "osmode" 1) ;_捕捉端点
(princ "\n请选择要复制\"图层为_B标高\"的标高(退出):")
;;;(setq ss (ssget ":L"
;;; (list (cons 8 "B标高"))
;;; )
;;;)
(setq ss (ssget))
(if ss
(progn
(command "undo" "be")
(if (null bl-cb)
(setq bl-cb 1.0)
)
(prompt (strcat "\n当前缩放比例:【" (rtos bl-cb 2 1) "】"))
(initget "Bili")
(setq p1 (getpoint "\nBili改变比例/ 基点(退出):"))
(while (= p1 "Bili")
(setq
bl-cb2
(getreal (strcat "\n请输入比例:<" (rtos bl-cb 2 1) ">")
)
)
(if bl-cb2
(setq bl-cb bl-cb2)
(setq bl-cb bl-cb)
)
(prompt (strcat "\n当前缩放比例:【" (rtos bl-cb 2 1) "】"))
(initget "Bili")
(setq p1 (getpoint "\nBili改变比例/ 基点(退出):"))
)
;;--------------------------------------------
(setvar "osmode" 673) ;_捕捉端点、交叉点、最近点 垂足
(while (setq p2 (getpoint p1 "\n拷贝至 (退出): "))
;;-------------------------------
;; 返回复制后,新生成的物体ss_new
(setq en_Last (entlast)
ss_new(ssadd)
)
(command "copy" ss "" p1 p2)
(setq en_next (entnext en_Last))
(while en_next
(ssadd en_next ss_new)
(setq en_next (entnext en_next))
)
;;------------------------------
(setq i 0)
(repeat (sslength ss_new)
(setq en (ssname ss_new i)
da (entget en)
enty (DXF 0 da)
)
(cond
;;处理:普通标高text 天正标高
((member enty (list "TEXT" "TCH_ELEVATION"))
(setq txt (DXF 1 da))
(if (or (= txt "%%p0.000")
(= txt "0") ;_Tch标高为 (1 . "0")
(and (/= (atof txt) 0)
(wcmatch txt "*.*")
)
)
(progn
;;--计算高差----
(setq d (- (cadr p2) (cadr p1))
d (* d 0.001 bl-cb)
num (+ (atof txt) d)
)
(setq txt-n (rtos num 2 3))
(if (= txt-n "0.000")
(setq txt-n "%%p0.000")
)
;;-------------
(setq da (subst (cons 1 txt-n) (assoc 1 da) da))
(entmod da)
)
)
)
;;处理:属性标高
((member enty (list "INSERT"))
(setq da(entget (entnext en))
txt (DXF 1 da)
)
;;--计算高差----
(setq d (- (cadr p2) (cadr p1))
d (* d 0.001 bl-cb)
num (+ (atof txt) d)
)
(setq txt-n (rtos num 2 3))
(if (= txt-n "0.000")
(setq txt-n "%%p0.000")
)
;;-------------
;;============================
;; 替换属性文字
(setq da (entget (entnext en)))
(setq da (subst (cons 1 txt-n) (assoc 1 da) da))
(entmod da)
(entupd en)
(entupd (entnext en))
;;============================
)
) ;_ cond
(setq i (1+ i))
) ;_end repeat
) ;_end while
(command "undo" "e")
)
) ;_ if ss
(mapcar 'setvar xtblm xtblz)
(princ)
)
注册
发表于 2012-7-15 19:46:38
楼上的不错,谢谢额
preone
发表于 2012-7-26 18:39:03
还可以 ~~
xiaoshi112
发表于 2012-8-28 16:20:25
挺好用的,若能够做活了就更好了。
辉/:)
发表于 2012-9-2 18:39:00
谢谢楼主的分享
收藏了,学习学习