s7v7n38 发表于 2022-7-6 06:20:45

区域lisp文件需要altera

你好
我想知道是否有人可以更改附加的面积计算lisp文件。
 
现有计算文件要求输入房间名称,然后生成以下文本块
 
房间名称
面积:18.00 m2
 
我要求房间名称用粗体字ariel 150其余75
删除“区域”文本,然后将数字减少到小数点后1位。然后我需要添加CH m,文件要求我提供CH的数字,因此最终结果如下所示
 
房间名称
18.0 m2通道2.4 m
 
有人能帮忙吗?谢谢
 
解放军。LSP

pBe 发表于 2022-7-6 07:42:49

(defun drtxt (/ rn tx ls vl lt ht lb hb nr pt)
(setq tx (strcat
   (rtos (/ (getvar "area") 1000000) 2 1)
   " m2"
   )          
   rn (getstring "\nRoom Name: ")
)
(setq ls (list (cons 1 (Strcat rn tx))'(40 . 75))
        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               
(initget 7)
(setq chmval (getreal "\nEnter CH value: "))   
(command "-mtext"pt
       "w"0
       (Strcat "{\\fArial|b0|i0|c0|p34;\\H2x;"
               (Strcase rn)
               "\\H0.5x;\\P"tx
               " CH "
               (rtos chmval 2 1) " m"" }")
       "")
(setq str (entget (entlast)))
(entmod (subst (cons 40 75)(assoc 40 str) str))   
   
(redraw)
)
页: [1]
查看完整版本: 区域lisp文件需要altera