summitdai 发表于 2011-11-1 11:59:44

求高手帮忙编个小程序将CASS中高程点批量取位至整米

求高手帮忙编个小程序将CASS中高程点取位至整米
如将89.0 变成89小数点后舍掉

多谢了!1

yjr111 发表于 2011-11-1 12:13:11

fix函数应该可以吧

wade320 发表于 2011-11-1 12:16:31

(atoi (rtos xx 2 0))也可以

bmy07 发表于 2011-11-1 13:53:39

这个可能是太简单了,没人愿意回答吧

summitdai 发表于 2011-11-1 15:01:57

bmy07 发表于 2011-11-1 13:53 static/image/common/back.gif
这个可能是太简单了,没人愿意回答吧

呵呵,我可是一窍不通的,只是现在需要这个功能,过来请各位帮个忙

bmy07 发表于 2011-11-1 16:37:51

(defun c:xsd()
(command ".style" "hz" "rs.shx,hztxt.shx" "" "0.8" "" "" "" "")
(setq q 0)
(setq s3 (ssget '((0 . "text"))))
(princ "请选择高程注记")
(initget "0 1 2")
(setq opt (getkword
       "\n 0:0位小数 /1:一位小数/2:两位小数 "
   )
)
(princ)
(if opt
    (cond
      ((= opt "0") (setq sub 0))
      ((= opt "1") (setq sub 1))
       ((= opt "2") (setq sub 2))

    )
)
(if (/= s3 nil)
    (repeat (sslength s3)
      (setq en (ssname s3 q))
      (setq endata (entget en))
      (setq en_list (assoc 1 endata))
      (setq new_en_list (cons 1 (rtos (nth 3 (assoc 10 endata)) 2 sub)))
      (setq endata (subst new_en_list en_list endata))
      (entmod endata)
      (setq q (1+ q))
    )
   )
(setvar "cmdecho" 0)
(command ".layer" "s" "0" "")
)

bmy07 发表于 2011-11-1 16:38:28

这个是根据文字的Z值

bmy07 发表于 2011-11-1 16:44:46

;;;根据文字内容

(defun c:xsd()
(command ".style" "hz" "rs.shx,hztxt.shx" "" "0.8" "" "" "" "")
(setq q 0)
(setq s3 (ssget '((0 . "text"))))
(princ "请选择高程注记(根据文字内容)")
(initget "0 1 2")
(setq opt (getkword
       "\n 0:0位小数 /1:一位小数/2:两位小数 "
   )
)
(princ)
(if opt
    (cond
      ((= opt "0") (setq sub 0))
      ((= opt "1") (setq sub 1))
      ((= opt "2") (setq sub 2))

    )
)
(if (/= s3 nil)
    (repeat (sslength s3)
      (setq en (ssname s3 q))
      (setq endata (entget en))
      (setq en_list (assoc 1 endata))
;;;      (setq new_en_list (cons 1 (rtos (nth 3 (assoc 10 endata)) 2 sub)))
      (setq new_en_list (cons 1 (rtos (read (cdr(assoc 1 endata))) 2 sub)))
      (setq endata (subst new_en_list en_list endata))
      (entmod endata)
      (setq q (1+ q))
    )
   )
(setvar "cmdecho" 0)
(command ".layer" "s" "0" "")
)

vormittag 发表于 2011-11-1 21:02:30

CASS的高程点是不是一个块插入(insert),块名GC200,高程值是这个块的属性(attrib)?

ljttjl 发表于 2011-11-1 23:07:38

针对cass7.0展高程点批量修改程序(精度修改),见以下位置:
http://ljttjl158.blog.163.com/blog/static/1139496972009421101948913/
页: [1] 2
查看完整版本: 求高手帮忙编个小程序将CASS中高程点批量取位至整米