自从我知道有一个叫十亿行天文台数据挑战,我就觉得超过2秒的功能,真的好慢
哈哈哈哈,久一点可以摸鱼 饼仲郎 发表于 2024-7-19 21:55
哈哈哈哈,久一点可以摸鱼
做工程,久一点只能加班 gzxl 发表于 2024-7-18 20:20
lisp 测试时间,不管是 autolisp,还是 vl
尽量代码简化,同等的条件下。
我知道本来 repeat nth 就耗费 ...
要while要好些哇我试试 VBALISPER 发表于 2024-7-19 10:28
那不是白写了。
差不多是 哈哈 VBALISPER 发表于 2024-7-19 10:29
坐标暴露了,MG的导弹已锁定,快逃。
咱两离得近 不怕 (defun c:ModifyElevation ( / ss ent entData newZ insertPoint newX newY newInsertPoint index)
(setq newZ (getreal "\nEnter the new Z value: ")) ; 获取用户输入的新Z值
(if (and newZ (numberp newZ)) ; 确保新Z值是数字
(progn
(setq ss (ssget '((0 . "INSERT")))) ; 选择所有块参照
(if ss
(progn
(setq index 0) ; 初始化索引
(while (< index (sslength ss)) ; 循环直到遍历完选择集
(setq ent (ssname ss index)) ; 获取当前块参照
(if (and ent (not (null ent))) ; 确保当前块参照有效
(progn
(setq entData (entget ent)) ; 获取当前块参照的数据
(if (and entData (assoc 10 entData)) ; 确保存在插入点
(progn
(setq insertPoint (assoc 10 entData)) ; 获取插入点
(setq newX (nth 1 insertPoint)) ; 获取X坐标
(setq newY (nth 2 insertPoint)) ; 获取Y坐标
(setq newInsertPoint (list newX newY newZ)) ; 更新Z坐标
(setq entData (subst (cons 10 newInsertPoint) (assoc 10 entData) entData)) ; 替换插入点
(entmod entData) ; 更新块参照
)
)
)
)
(setq index (1+ index)) ; 移动到下一个块参照
)
)
(princ "\nNo block references selected or no block entities found.")
)
)
(princ "\nInvalid Z value entered.")
)
(princ)
) 源码分享 必顶
页:
1
[2]