明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 993|回复: 4

[讨论] 请问大佬下面的代码只能再CAD2012里面运行,高版本就错误了。要怎么改啊?

[复制链接]
发表于 2023-5-2 10:46:07 | 显示全部楼层 |阅读模式
请问大佬下面的代码只能再CAD2012里面运行,高版本就错误了。要怎么改啊?


(defun c:ss()
  (setq ss (ssget)
n 0
sum 0)
  (repeat (sslength ss)
    (setq en (ssname ss n))
    (command "lengthen" en "")
    (setq sum (+ sum (getvar "perimeter"))
   n (+ n 1))
    )  
  (ALERT (STRCAT "总长度:" (rtos sum 2)))
  )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2023-5-2 12:01:37 | 显示全部楼层
  1. (command "lengthen" en "")CAD2024运行不了,需要手动输入参数,尽量不要调用command
发表于 2023-5-2 12:59:43 | 显示全部楼层
本帖最后由 vitalgg 于 2023-5-2 13:05 编辑

求曲线图元的长度

  1. (defun curve:length (curve)
  2.   "参数curve:曲线,直线、圆弧、圆、多段线、优化多段线、样条曲线等图元"
  3.   "曲线的长度"
  4.   "(curveength (car (entsel)))"
  5.   (if (= 'ename (type curve))
  6.       (setq curve (e2o curve)))
  7.   (vlax-curve-getdistatparam curve (vlax-curve-getendparam curve)))


https://gitee.com/atlisp/atlisp-lib/blob/main/src/curve/length.lsp

@lisp函数库,开源共享,随时可调用(CAD内安装 @lisp,即可享用 上百了持续维护的函数)。

随时可查询: 支持 CAD 内查询 ,公众号查询 ,VSCode 语法提示和悬停提示。




公众号内查询:




CAD命令行查询



VSCode 内查询





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-5-2 13:55:04 | 显示全部楼层
command 改 command-s 看看。
发表于 2023-5-2 16:23:51 | 显示全部楼层
本帖最后由 x_s_s_1 于 2023-5-2 16:26 编辑

应该是command的问题,改vl-cmdf吧
提供另一个方法,对spline,circle,ellipse无效
  1. (defun c:ss  (/ en n ss sun)
  2.   (setq        ss  (ssget)
  3.         n   0
  4.         sum 0)
  5.   (repeat (sslength ss)
  6.     (setq en (ssname ss n))
  7.     (setq sum (+ sum (getpropertyvalue en "length"))
  8.           n   (+ n 1)))
  9.   (ALERT (STRCAT "总长度:" (rtos sum 2))))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 16:31 , Processed in 0.160719 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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