情缘侠 2023-12-29 08:36 采纳率: 33.3%
浏览 5

CAD标注统计插件求修改

(defun c:bzcdqh()
    (setq cmd (getvar "cmdecho"))
    (setvar "cmdecho" 0)
    (if (progn
            (princ "\n请选取标注:")
            (setq ssa (ssget '((0 . "DIMENSION") )))
        )
        (progn
            (setq cdz 0)
            (setq i 0)
            (setq n (sslength ssa))
            (repeat n
               (setq dxf (entget (ssname ssa i)))
               (setq cdz (+ cdz (cdr (assoc 42 dxf))))
               (setq i (1+ i))
            )
            (alert (strcat "共选取了" (itoa n) "个标注,总长度=" (rtos cdz 2 3)))
            (princ (strcat "\n共选取了" (itoa n) "个标注,总长度=" (rtos cdz 2 3)))
        )
    )
    (setvar "cmdecho" cmd)
    (princ)
)

麻烦帮忙修改一下,当获取“文字替代”的数据为空时,再获取“测量单位”数据,然后再求和。

img

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-29 10:14
    关注

    【相关推荐】



    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/208032
    • 你也可以参考下这篇文章:【控制系统数字仿真与CAD——实验报告】实验三:离散相似法数字仿真(文末附完整代码 + 实验结果)
    • 除此之外, 这篇博客: 实现类CAD的交互式命令系统中的 使用有栈协程解决 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      是一种比线程更加轻量级的存在,正如一个进程可以拥有多个线程一样,一个线程可以拥有多个协程.很多语言如go自带了协程的支持,C++20支持无栈协程,在网络通信中应用比较多。

      常用的C++开源协程有 libgolibcoboost coroutine2fibersC++20、windows纤程等 ,对于做命令驱动程序而言,一般只能用有栈协程, 无栈协程一般情况下协程函数一般情况下使用的是关键字来处理,有特定的返回值,也是通过语言语法糖来实现,局限性比较大(C++20的协程就是无栈协程)。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 12月29日