在某处找到这个区域的lisp并进行了一些小编辑。
但有一个问题。如果区域为示例0.11,则文本输出为。11平方米。
有人能告诉我修改什么使其显示为0.11m2吗
谢谢
- (defun drtxt (/ tx ls vl lt ht lb hb nr pt)
- (setq tx (strcat "";;;;add text between "";;;;
- (rtos (/ (getvar "area") 1000000) 2 2)
- "m²"
- )
- )
- (setq ls (list (cons 1 tx))
- vl (textbox ls)
- vl (cadr vl)
- lt (car vl)
- ht (cadr vl)
- vl (grread T)
- nr (car vl)
- pt (cadr vl)
- )
- (princ "\nInsert Point: ")
- (while (/= nr 3)
- (command "redraw")
- (grdraw pt (setq pt (polar pt 0 lt)) 7)
- (grdraw pt (setq pt (polar pt (* pi 0.5) ht)) 7)
- (grdraw pt (setq pt (polar pt pi lt)) 7)
- (grdraw pt (polar pt (* pi 1.5) ht) 7)
- (setq vl (grread T)
- nr (car vl)
- pt (cadr vl)
- )
- ) ;end while function
- (command "-mtext" pt "w" 0 tx "")
- (redraw)
- ) ; end drtxt function
- (defun c:AA ()
- (setvar "cmdecho" 0)
- (while (setq et
- (car
- (entsel "\nSelect polyline: ")
- ) ;end car function
- ) ;end setq function
- (command "area" "o" et)
- (drtxt)
- ) ; wnd while funtion
- (setvar "cmdecho" 1)
- (princ)
- ) ; end c:pla function
|