HGHG011 发表于 2015-1-9 21:29:16

《菜鸟提问》 无法计算自交曲线的面积怎么实现alert提示?

本帖最后由 HGHG011 于 2015-1-12 17:05 编辑

(defun qmj ( ss / )

(command "area" "o" ss )
      (setq area (HH:rtosr1 (/ (getvar "area") 1000000.0) 2))
      (setq area (atof area))
      )


(defun HH:rtosr1 (RealNum n / DIMZIN1 SHORTREAL1)



(setq DimZin1 (getvar "DIMZIN"))
(setvar "DIMZIN" 0)
(setq ShortReal1 (rtos RealNum 2 n))
(setvar "DIMZIN" DimZin1)
ShortReal1
)


当运行上面函数的时候,选中自交曲线计算面积会出现错误
在命令行中 出现“无法计算自交曲线的面积”
能否实现cad弹出对话框来进行提示,以免使用错误数据进行计算?

LPACMQ 发表于 2015-1-9 21:29:17

(qmj (setq ss(entsel)))

(defun qmj (ss / area ent typ ent )

(setq ent (entget (car ss))
      typ (cdr(assoc 0 ent)))
      
(if (or (equal typ "LWPOLYLINE")
         (equal typ "CIRCLE")
         (equal typ "REGION"))
      
      (progn
         (command "area" "o" ss )
         (setq area (HH:rtosr1 (/ (getvar "area") 1000000.0) 2) )
         (setq area (atof area))
      )
            
       (alert "\n无法计算自交曲线的面积" )
      
   );end if
   

);end defun


(defun HH:rtosr1 (RealNum n / DIMZIN1 SHORTREAL1)

(setq DimZin1 (getvar "DIMZIN"));;消零

(setvar "DIMZIN" 0);;消除零英尺和零英寸

(setq ShortReal1 (rtos RealNum 2 n))

(setvar "DIMZIN" DimZin1)

ShortReal1
)

HGHG011 发表于 2015-1-10 12:16:29

是表述得不清晰,还是没有办法解决啊,来个人说句话啊

HGHG011 发表于 2015-1-10 12:17:49

提供一种思路,读取命令行的文字 “无法计算自交曲线的面积” 来判断出现错误
不知能否这样实现,求命令,求方法

鱼与熊掌 发表于 2015-1-10 17:56:51

(if (cx-qxzj en)
    (alert "曲线自交.无法计算")
)
话说这个函数论坛有很多,

mmmmmm 发表于 2015-1-12 14:23:40

尝试调用vl-catch-all-apply函数,选择一个自交曲线判断其错误代码数值,然后根据这一数值为判断依据再alert

HGHG011 发表于 2015-1-12 16:54:48

mmmmmm 发表于 2015-1-12 14:23 static/image/common/back.gif
尝试调用vl-catch-all-apply函数,选择一个自交曲线判断其错误代码数值,然后根据这一数值为判断依据再aler ...

貌似不行,不会搞,不过谢谢你

HGHG011 发表于 2015-1-12 16:56:12

LPACMQ 发表于 2015-1-10 21:19 static/image/common/back.gif
(qmj (setq ss(entsel)))

(defun qmj (ss / area ent typ ent )


所谓的自交曲线不一定是曲线,我是用pl命令绘制的多段线,多段线上有重叠的点而已,所以你这种方法不行

HGHG011 发表于 2015-1-12 16:56:58

鱼与熊掌 发表于 2015-1-10 17:56 static/image/common/back.gif
(if (cx-qxzj en)
    (alert "曲线自交.无法计算")
)


这个if函数我也会啊,不过得看怎么执行啊

HGHG011 发表于 2015-1-12 18:29:55

                       (setq cv (getvar "Lastprompt"))
       (print cv)
                       
                        (if ( = cv "无法计算自交曲线的面积。")
                                (alert "\n无法计算自交曲线的面积" )
                        )
最后通过这种方法解决,谢谢大家的帮忙
页: [1]
查看完整版本: 《菜鸟提问》 无法计算自交曲线的面积怎么实现alert提示?