明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 694|回复: 8

[提问] 图块、文字批量指定角度,代码优化

[复制链接]
发表于 2024-6-20 09:27:29 | 显示全部楼层 |阅读模式
本帖最后由 sammy 于 2024-6-20 10:46 编辑

对图块和文本一键指定角度,在UCS和WCS下都能用。(灵感来自一位坛友)
但是有个小问题让我觉得很诡异,但又不知道哪里出问题了:在UCS下如果是点选很多个对象,执行完命令可以正常恢复至当前UCS坐标系;但如果是框选了很多对象,执行完旋转后就不能正常恢复,而是留在WCS了。
请各位路过的兄弟姐妹帮我看下代码问题出在哪了。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-6-20 11:05:22 | 显示全部楼层
;;;-----------------------------------
;;;启动命令: ROO
;;;         --Credit @Sammy
;;;-----------------------------------

(defun c:ROO (/ *error* X selection doc obj)
  (defun *error* (s) (command-s ".UCS" "P") (princ))
  (vl-load-com)
  (setq selection (ssget '((0 . "INSERT,TEXT"))))
  (if selection
  (progn
      (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
      (command ".UCS" "W")
      (setq X (getangle "\n输入需要旋转的角度<归0>:"))
      (setq X (if (null x) 0 X))
    (progn
      (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-6-20 11:24:30 | 显示全部楼层
pzweng 发表于 2024-6-20 11:05
;;;-----------------------------------
;;;启动命令: ROO
;;;         --Credit @Sammy

谢谢版主,效果很完美!!
想请教下为什么会出现之前这种情况呢?
发表于 2024-6-20 11:36:23 | 显示全部楼层
sammy 发表于 2024-6-20 11:24
谢谢版主,效果很完美!!
想请教下为什么会出现之前这种情况呢?

程序有问题,出错中断了,我只是给你加了个出错处理。
发表于 2024-6-20 12:04:35 | 显示全部楼层
感觉这只是旋转,没指定基点。随便转就行了吧,没必要WCS和UCS之间来回切换吧。
 楼主| 发表于 2024-6-20 14:49:54 | 显示全部楼层
evayleung 发表于 2024-6-20 12:04
感觉这只是旋转,没指定基点。随便转就行了吧,没必要WCS和UCS之间来回切换吧。

因为用了getangle函数获取角度,不切换到WCS的话角度会不正确
发表于 2024-6-20 14:54:02 | 显示全部楼层
看看怎么样
发表于 2024-6-20 16:52:43 来自手机 | 显示全部楼层
试试看,感谢分享
发表于 2024-6-21 10:47:49 | 显示全部楼层
pzweng 发表于 2024-6-20 11:36
程序有问题,出错中断了,我只是给你加了个出错处理。

那直接getreal,getstring,反正也只是要一个数字而已。我是这样认为的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 16:50 , Processed in 0.199348 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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