发新话题
打印

CAD实用LISP文件亩和平方米的互换

CAD实用LISP文件亩和平方米的互换

;;;Change M2 to Ķ
(defun C:m2m(/ oldos e1 e2 el1 el2 dat1 dat2 ans)
(setq olderr *error*)
(setq *error* myerr)
(setvar "cmdecho" 0)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(PRINC "\nPick the number to be change:")
(setq e1 (ENTSEL))
(setq el1 (entget (car e1)))
(if (/=  "TEXT" (cdr (assoc 0 el1)))
   (progn
    (princ "\nYour choises not number, try again!")
    (exit)
   )
  )
(setq dat1 (cdr (assoc 1 el1)))
;;;; change
(setq ans (* (/ (atof dat1) 10000.0) 15.0))
(setq ans (rtos ans 2 2))
(setq ans (strcat ans "Ķ"))
;;;; write answer
(setq pt (getpoint "\nPick the point which answer to write:"))
(command "text" pt "" "" ans)
(setvar "osmode" oldos)
(setvar "cmdecho" 1)
(setq *error* olderr)
(princ)
)
;;;Change Ķ to M2
(defun C:mu2m(/ oldos e1 e2 el1 el2 dat1 dat2 ans)
(setq olderr *error*)
(setq *error* myerr)
(setvar "cmdecho" 0)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(PRINC "\nPick the number to be change:")
(setq e1 (ENTSEL))
(setq el1 (entget (car e1)))
(if (/=  "TEXT" (cdr (assoc 0 el1)))
   (progn
    (princ "\nYour choises not number, try again!")
    (exit)
   )
  )
(setq dat1 (cdr (assoc 1 el1)))
;;;; change
(setq ans (* (/ (atof dat1) 15.0) 10000.0))
(setq ans (rtos ans 2 2))
;;;; write answer
(setq pt (getpoint "\nPick the point which answer to write:"))
(command "text" pt "" "" ans)
(setvar "osmode" oldos)
(setvar "cmdecho" 1)
(setq *error* olderr)
(princ)
)

TOP

不是很有用的!
不过还是要谢谢楼主!

TOP

这LISP还可以更简化一点

TOP

刚刚渋入这块,学习一下!!!

TOP

呵呵  看一下  也好好学习、

TOP

对程序是七窍通了六窍-----一窍不通

TOP

对国土开发整理,比较实用,如果做成一个窗口更加好.

TOP

发新话题