明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 564|回复: 7

[讨论] vla-move 移动选择集的图元

[复制链接]
发表于 2024-12-17 10:42:02 | 显示全部楼层 |阅读模式
vla-move 移动选择集SS的图元从P1点到P2点如何操作,各位大佬,这个和CAD中的MOVE速度怎样
"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

发表于 2024-12-17 12:40:40 | 显示全部楼层
本帖最后由 llsheng_73 于 2024-12-17 12:42 编辑

move命令更简单,它可以直接处理选择集
由于选择集没有move方法,move方法只能适用于图形图元对象,因此要通过move方法来处理选择集,得对选择集内图形图元进行逐一操作,和move命令比起来,这显得比较繁琐。
个人认为直接比较move命令和move方法的速度是无意义的,因为各自擅长的环境不同
对于不支持命令的环境,比如dbx、块内对象等情况,只能使用move方法而不能命令move命令



回复 支持 反对

使用道具 举报

发表于 2024-12-17 13:10:29 | 显示全部楼层
要看选择集SS的图元数量。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-17 13:35:11 来自手机 | 显示全部楼层
用move命令移动数量5000的选择集ss有点卡。
回复 支持 反对

使用道具 举报

发表于 2024-12-17 14:18:22 | 显示全部楼层
wide 发表于 2024-12-17 13:35
用move命令移动数量5000的选择集ss有点卡。

如果做成块,再移动呢,最后再炸开,会不会好一点,没测试。
回复 支持 反对

使用道具 举报

发表于 2024-12-17 23:06:37 | 显示全部楼层
;; 用VLA-Move移动选集
;; 和comand相比各有优势,command的优势是代码简单,适合于次数少的操作。
;; 用Vla-Move、或者使用矩阵变换,优势是适合多次操作而不易卡顿,且对块内对象操作有效。

(defun C:M1 (/ SS P1 P2 N)
  (if (and (setq SS (ssget))
           (setq P1 (getpoint "\n指定基点: "))
           (setq P2 (getpoint P1 "\n指定第二点: "))
      )
    (repeat (setq N (sslength SS))
      (vlax-Invoke
       (vlax-ename->vla-object (ssname SS (setq N (1- N))))
       'Move
       P1
       P2
      )
    )
  )
  (princ)
)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-18 19:01:01 来自手机 | 显示全部楼层
谢谢各位大佬的解答。
回复 支持 反对

使用道具 举报

发表于 2024-12-19 08:31:27 来自手机 | 显示全部楼层
一同学习,感谢大神指点
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-22 22:06 , Processed in 0.190518 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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