明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 486|回复: 0

[源码] ★★★【已解决】屏蔽【应用程错误,控制台中断】错误提示

[复制链接]
发表于 2016-9-30 09:45 | 显示全部楼层 |阅读模式
本帖最后由 绝对速度完全 于 2016-9-30 09:56 编辑

【重要说明:我是新人,只会简单的“拼”程序,之前发了一个我在明经的第一个帖子,是【求助帖】,由于不太了解规定,发布了一个修改的别人的程序,做例子,估计是这个原因,所以帖子被灰色屏蔽了,但是我只是想用来说明问题,希望明经不要封贴,现在我的lsp问题得到解决了,我将发布程序源码,完全符合规定!!!灰色的帖子可以通过关键词搜索,也能观看

【应用程序错误: 控制台中断】问题解决了【百度知道认证程序员朱正伟解决了此问题,下面为他的源码,经同意公布,让更多人受益】
先上程序,然后细说,现在公布源码

;下面是以我的要求制作的指北针原码【支持动态显示以及无限复制】按ESC不会出现【应用程序错误;控制台中断】及其它错误提示
;制作人:朱正伟
(defun c:t1 ( / %k1 &ob1 &ob2 &ob3 n pt1 pt2 pt5 ss1 x-grread x-gval)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) )
(setq ss1 (s09152) %k1 t ss1 (cons %k1 ss1))
(while
  (vl-catch-all-apply 'car (setq ss1 (vl-catch-all-apply 's09153 (list ss1)))) )
(princ)
)

(defun s09153 (ss1 / %k1 n pt1 pt2 x-gval xx-1)
(setq %k1 (car ss1) pt1 (cadr ss1) ss1 (cddr ss1))
(setq x-GVal (vl-catch-all-apply 'grread (list t 8)))
(setq n (vl-catch-all-apply 'car (list x-GVal)))
(if (setq xx-1 (vl-catch-all-error-p n))
  (setq %k1 nil n 2)
  (progn
   (if (member n '(3 5))
    (progn
     (setq pt2 (Vlax-3d-Point (cadr x-GVal)))
     (vla-move (car ss1) pt1 pt2)
     (vla-move (cadr ss1) pt1 pt2)
     (vla-move (caddr ss1) pt1 pt2)
     (setq pt1 pt2)
    )
   )
   (if (= n 3)
    (progn
     (setq ss1 (s09152) pt1 (car ss1) ss1 (cdr ss1))
    )
   )
  )
)
(if (and (/= n 3) (/= n 5))
  (progn
   (vla-delete (car ss1))
   (vla-delete (cadr ss1))
   (vla-delete (caddr ss1))
   (setq %k1 nil ss1 nil)
  )
)
(if ss1 (progn (setq ss1 (cons pt1 ss1) ss1 (cons %k1 ss1))))
ss1
)
(defun s09151 ()
'((0.5 -13.5) (0.5 -0.5) (4.5 -0.5) (4.5 0.5) (0.5 0.5) (0.5 4.5) (2.4 4.5) (0.0 9.12)
   (-2.4 4.5) (-0.5 4.5) (-0.5 0.5) (-4.5 0.5) (-4.5 -0.5) (-0.5 -0.5) (-0.5 -13.5))
)
;;建立宋体
(defun text->仿宋 ( / newt)
(if (null (tblsearch "style" "仿宋"))
  (progn
   (if (null vlax-dump-object) (vl-load-com) )
   (setq newT (vla-add (vla-get-TextStyles (vla-get-activedocument (vlax-get-acad-object))) "仿宋"))
   (vla-put-fontfile newT "C:\\WINDOWS\\Fonts\\simfang.TTF")
   (vla-put-height newT 0);高度0
   (vla-put-width newT 0.6);宽度因子0.6
   ;(vla-put-obliqueAngle newT (/ (* pi 3) 180));倾斜角度3
  )
)
)
(defun s09152 ( / pt1 ss x x-object1 x-object2 x-object3)
(text->仿宋);建立字体
(entmake '((0 . "TEXT") (10 0.0 13.74 0.0) (40 . 4.60981) (1 . "N") (41 . 1.0) (7 . "仿宋") (72 . 4) (11 0.0 13.74 0.0)))
(setq x-object1 (vlax-ename->vla-object (entlast)))
(setq ss (mapcar '(lambda (x) (cons 10 x)) (s09151)))
(entmake (append (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") '(100 . "AcDbPolyline") '(90 . 15) '(70 . 1)) ss))
(setq x-object2 (entlast))
(command "HATCH" "SOLID" (ssadd x-object2) "")
(setq x-object2 (vlax-ename->vla-object x-object2))
(setq x-object3 (vlax-ename->vla-object (entlast)))
(vla-put-color x-object3 7);变颜色
(setq pt1 (Vlax-3d-Point '(0.0 0.0 0.0)))
(list pt1 x-object1 x-object2 x-object3)
)





@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
具体说明
下面这样循环,不管怎样都不会提示错误,程序也不会中断
(while (null (vl-catch-all-error-p (setq gr (vl-catch-all-apply 'grread (list t 8)))))
(princ gr)
)


vl-catch-all-apply配合(grread t 8)来写就不出现错误

vl-catch-all-error-p 与vl-catch-all-apply组合,可以消除【; 错误: 函数已取消】

(grread t 8)不提示控制台错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-6 06:56 , Processed in 0.297648 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表