明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 607|回复: 5

[源码] 哪位大佬可以帮忙看看这个程序啊?需要怎么修改,谢谢

[复制链接]
发表于 2024-8-22 12:48:35 | 显示全部楼层 |阅读模式
这个程序可以让对象选择90度,但是必须要先执行命令在选择,要是先选择的话就不行,输入命令后还需要二次选择对象,哪位大佬帮我修改一下这个问题啊?感谢
(defun c:z90 (/ *error* X selection doc obj)
  (defun *error* (s) (command-s ".UCS" "P") (princ))
  (vl-load-com)
  (setq X 699)
  (command ".UCS" "W")
  (setq selection (ssget '((0 . "INSERT,TEXT"))))
  (if selection
      (progn
        (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
        (foreach obj (mapcar 'cadr (ssnamex selection))
          (setq obj (vlax-ename->vla-object obj))
          (if (= :vlax-false (vla-get-Lock (vla-item (vla-get-Layers doc) (vla-get-Layer obj))))
              (vla-put-Rotation obj X)
          )
        )
        (command ".UCS" "P")
        (princ "\\n选定的对象已旋转。")
      )
  )
  (princ)
)



发表于 2024-8-22 12:57:57 | 显示全部楼层
  1. (defun c:z90 (/ *error* X selection doc obj)
  2.   (defun *error* (s) (command-s ".UCS" "P") (princ))
  3.   (vl-load-com)
  4.   (setq X (* pi 0.5))
  5.   (setq selection (ssget '((0 . "INSERT,TEXT"))))
  6.         (if selection
  7.                 (progn
  8.                         (command ".UCS" "W")
  9.                         (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  10.                         (foreach obj (vl-remove-if-not '(lambda (x) (= (type x) 'ENAME)) (mapcar 'cadr (ssnamex selection)))
  11.                                 (setq obj (vlax-ename->vla-object obj))
  12.                                 (if (= :vlax-false (vla-get-Lock (vla-item (vla-get-Layers doc) (vla-get-Layer obj))))
  13.                                         (vla-put-Rotation obj X)
  14.                                 )
  15.                         )
  16.                         (command ".UCS" "P")
  17.                         (princ "\n选定的对象已旋转。")
  18.                 )
  19.   )
  20.   (princ)
  21. )
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-8-22 14:53:41 | 显示全部楼层

没在电脑边上,不过感谢大神
发表于 2024-8-22 18:15:45 | 显示全部楼层
选择对象,命令z90回车,p回车也行 就是p的用法
发表于 2024-8-23 13:15:34 | 显示全部楼层
加上这个就可以了(setvar "qaflags" 0 ) (setvar "pickfirst"1)
 楼主| 发表于 2024-8-23 13:46:58 | 显示全部楼层

感谢大佬,试过了很好用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 09:53 , Processed in 0.170536 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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