本帖最后由 amook147 于 2025-8-29 18:17 编辑
lsp写的插件 ,标注1W个10毫米X10毫米的矩形面积 用时1分30秒 能不能在快点
有什么办法能实现在30秒以内完成?
网友答: (defun c:tt(/ L S SS)
(setq s (ssget '((0 . "LWPOLYLINE")))
ss (getvar "millisecs")
l (cdr(reverse(mapcar 'cadr (ssnamex s))))
)
(foreach m l
(entmake (list '(0 . "TEXT") (cons 1 "100mm\\U+00B2" )
(cons 10 (polar (vlax-curve-getstartpoint m) (* 0.25 pi) 7.0707))
(cons 40 0.6)) )
)
(princ(strcat"历时: "(itoa(- (getvar "millisecs") ss)) "毫秒") )
)网友答:AI给的建议 让AI修改了一下 测试结果减少了至少一半的时间。。。。
合并实体创建操作(减少函数调用)
原代码中create-area-label每次调用都会单独执行entmake,可改为批量收集所有标注数据,一次性创建(适用于 1 万个图形的场景)。
网友答: 能用就行,在lisp追求速度是痛苦的,map和数组要绕去VBA函数,
要并行没并行,要simd没simd,就连分析瓶颈在哪里都不知道高精度计时器,缓存命中数这些在哪里查...
所以与其那么痛苦不如将就一下就算了.网友答: 看你是用什么方法标注的,如果用command命令标注肯定慢,试试用entmake函数生成,还不快就换其它语言吧网友答:
感谢 我试试网友答:
选择对象: 指定对角点: 找到 100000 个
共有 100000 个矩形标注面积用时 2031 毫秒网友答: 试了下源泉的批量标注100*100 1W个也要1分半左右
网友答:
我用2012版CAD 40秒就完事了 2020版的就慢 网友答: lisp慢可以理解。不要那么挑剔网友答: 就当给自己的福利。休息一下
lsp写的插件 ,标注1W个10毫米X10毫米的矩形面积 用时1分30秒 能不能在快点
有什么办法能实现在30秒以内完成?
网友答: (defun c:tt(/ L S SS)
(setq s (ssget '((0 . "LWPOLYLINE")))
ss (getvar "millisecs")
l (cdr(reverse(mapcar 'cadr (ssnamex s))))
)
(foreach m l
(entmake (list '(0 . "TEXT") (cons 1 "100mm\\U+00B2" )
(cons 10 (polar (vlax-curve-getstartpoint m) (* 0.25 pi) 7.0707))
(cons 40 0.6)) )
)
(princ(strcat"历时: "(itoa(- (getvar "millisecs") ss)) "毫秒") )
)网友答:
pyj643921 发表于 2025-8-29 18:29
看你是用什么方法标注的,如果用command命令标注肯定慢,试试用entmake函数生成,还不快就换其它语言吧
合并实体创建操作(减少函数调用)
原代码中create-area-label每次调用都会单独执行entmake,可改为批量收集所有标注数据,一次性创建(适用于 1 万个图形的场景)。
网友答: 能用就行,在lisp追求速度是痛苦的,map和数组要绕去VBA函数,
要并行没并行,要simd没simd,就连分析瓶颈在哪里都不知道高精度计时器,缓存命中数这些在哪里查...
所以与其那么痛苦不如将就一下就算了.网友答: 看你是用什么方法标注的,如果用command命令标注肯定慢,试试用entmake函数生成,还不快就换其它语言吧网友答:
pyj643921 发表于 2025-8-29 18:29
看你是用什么方法标注的,如果用command命令标注肯定慢,试试用entmake函数生成,还不快就换其它语言吧
感谢 我试试网友答:

选择对象: 指定对角点: 找到 100000 个
共有 100000 个矩形标注面积用时 2031 毫秒网友答: 试了下源泉的批量标注100*100 1W个也要1分半左右
网友答:
yegucheng0129 发表于 2025-8-30 14:16
试了下源泉的批量标注100*100 1W个也要1分半左右
我用2012版CAD 40秒就完事了 2020版的就慢 网友答: lisp慢可以理解。不要那么挑剔网友答: 就当给自己的福利。休息一下