乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 4|回复: 4

[编程交流] 2015 upgrad的LISP错误

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:01:32 | 显示全部楼层 |阅读模式
大家好!
我们最近将办公室从2013年升级到AutoCAD 2015。我们有几个LISP例程似乎不喜欢新版本。其中一个例程存储弧的长度,供以后使用。
 
  1. ; * ARC LENGTH
  2. ; * Returns the length of an arc
  3. ; * From JefferyPSanders.com
  4. (defun getArc(en)
  5.    (command "lengthen" en "")
  6.    (getvar "perimeter")
  7. )

 
当例程到达上述语句时,VLIDE将出错并显示“函数已取消”。
 
这在2013年曾经运行得很好,你认为主要的变化是什么,使上述代码不再工作?有没有想过用不同的方法来完成相同的任务?
 
提前谢谢!
 
当做
艾特灵
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-5 20:24:36 | 显示全部楼层
艾川,
 
不知道Acad 2015为什么会出问题,但你应该
使用vlax曲线函数。
 
  1. (defun getlength (/ en)
  2.   (setq en (car (entsel)))                 
  3.   (vlax-curve-getDistAtParam en (vlax-curve-getEndParam en))
  4. )
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 20:44:19 | 显示全部楼层
另一种方法是,您需要一个cond来检查每个对象类型,只需使用dumpit来查找变量。
 
  1. (setq obj (vlax-Ename->Vla-Object (car (entsel))))
  2. (princ (vla-get-arclength obj)) ; this is arc
  3. ;  (princ (vla-get-length obj)) ; this is pline and a line
  4. ;  (princ (vla-get-Circumference obj)) ; this is a circle
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 20:56:46 | 显示全部楼层
谢谢你们!我不得不做一些定制,但vlax曲线是正确的路径。
 
  1. (vl-load-com)
  2. (Defun getArc (en)
  3.      (vlax-curve-getDistAtParam en (vlax-curve-getEndParam en))
  4. )
回复

使用道具 举报

51

主题

481

帖子

457

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
262
发表于 2022-7-5 21:07:56 | 显示全部楼层
将命令替换为命令-S
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 00:53 , Processed in 1.159807 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表