(defun C:tt(/ str1 str2 tmp1 tmp2 area1 area2)
(setq str1 (cdr (assoc 1 (entget (car (entsel "\n选择第一个text: ")))))
str2 (cdr (assoc 1 (entget (car (entsel "\n选择第二个text: ")))))
)
(setq tmp1 (Parse_It (vl-string-subst "x" "%%131" (last (Parse_It str1 ";"))) "x")
tmp2 (Parse_It (vl-string-subst "x" "%%131" (last (Parse_It str2 ";"))) "x")
)
(setq area1 (* (read (car tmp1)) (CirArea (read (cadr tmp1))))
area2 (* (read (car tmp2)) (CirArea (read (cadr tmp2))))
)
(if (> area2 (/ area1 4))
(princ "\n腰筋面积>1/4底筋面积.")
(princ "\n腰筋面积 0 Delim 256) Delim 32)))
;
; Set up parameters for string search loop
;
Inx (VL-String-Position Delim inStr 0)
InxP -1
)
;
(while (and Inx (alin,先送你一朵鲜花,你真是太厉害了。 不过我还有几个问题,我不懂vl,你能不能帮我完善一下。
1.如果是两种钢筋的组合,比如1%%13116+1%%13118,能不能将这将这两种钢筋加起来,求出面积?
2.如果我在选第二组文字的时候,不选直接回车,那么area2就读分号前面的数字。可以实现吗?
3.如果area2 area2 (/ area1 4))
(cond (ss2
(princ "\n腰筋面积>1/4底筋面积。通过。"))
(t
(princ "\n面筋面积>1/4底筋面积。通过。"))
)
(cond
(ss2
(princ "\n腰筋面积 0 Delim 256)
Delim
32)))
;
; Set up parameters for string search loop
;
Inx (VL-String-Position Delim inStr 0)
InxP -1
)
;
(while (and Inx (< Inx (strlen inStr)))
(setq Res
(cons (substr inStr (+ 2 InxP) (- Inx InxP 1))
Res)
InxP Inx
Inx (VL-String-Position Delim inStr (1+ InxP))
)
)
(setq Res (cons (substr inStr (+ 2 InxP)) Res))
(reverse Res)
)
;