lisp正负调换_Lisp插件在WIN10系统下不能运行的问题

一篇关于LISP插件在Windows 10系统下遇到问题的博客,程序在WIN7正常运行,但在WIN10运行到中途会退出。问题在于输入第二个点的桩号时程序终止。博客提供了程序代码并寻求解决方案。
摘要由CSDN通过智能技术生成

这是一个标注节点桩号的程序,这个程序在WIN7系统下是正常的,但是WIN10系统下运行到一半就退出来了,请坛里的大神帮我看看是怎么回事吧,小弟在此先谢谢了

具体问题是这样的,运行JJ命令,在多段线上选区第一个点,输入第一个点的桩号,比如1000,然后选第二个点,输入第二个点的桩号,比如1200,然后再随便找一个点就可以标出这个点的桩号。现在WIN10系统下输入第二个点的桩号就退出了。

;;;标注节点桩号.by cocoorange 17.04.16

;;;--------------------------------------------------

;;小数点后数字加1

;strlen 以整数形式返回一个字符串中字符的个数

;atoi 将一个字符串转换成整数

;entmod 修改对象(图元)的定义数据

;itoa 将整数转换成字符串,并返回转换结果

;strcat 将多个字符串拼接成一个长字符串后返回

;subst 在表中搜索某旧项,并将表中出现的每一个旧项用新项代替,然后返回修改后所得的表

;substr返回字符串中的一个子字符串

;定义出错处理函数trap1

(defun trap1 (errmsg)                 ;

(setvar "osmode" 4143)  ;捕捉设置,出错之后重设捕捉

(setvar "CMDECHO" 1)            ;打开回显

(setq *error* temperr)

)     ;错误处理函数

;;jj程序主体

(defun C:jj()

(setq cmd_old (getvar "CMDECHO")) ;获取原始回显值

(setq os_old (getvar "osmode")) ;获取原始捕捉值

(setvar "CMDECHO" 0)          ;关闭回显

(setq temperr *error*)

(setq *error* trap1)

(vl-load-com)

(setvar "osmode" 0)

(vl-cmdf "UCS" "")                            ;切换世界坐标系

(setq el (car (entsel "\n选择桩号线:")))                ;entsel通过一个点选择一个图元,返回图元名称el

(setvar "osmode" 4143)

(setq ep1 (getpoint "\n选择桩号基准点1:"))              ;选择桩号基点

(setq k1 (getreal "\n输入基点1桩号值:"))                ;输入基点桩号值

(setq ep2 (getpoint "\n选择桩号基准点2:"))

(setq k2 (getreal "\n输入基点2桩号值:"))

(setvar "osmode" 0)

(setq 1ep1 (vlax-curve-getClosestPointTo el ep1 nil))   ;

(setq ep1dist1 (vlax-curve-getDistAtPoint el 1ep1))     ;

(setq 2ep2 (vlax-curve-getClosestPointTo el ep2 nil))   ;

(setq ep2dist2 (vlax-curve-getDistAtPoint el 2ep2))     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值