乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 44|回复: 19

[编程交流] 围绕多个块旋转

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:25:54 | 显示全部楼层 |阅读模式
是否有人拥有或知道任何lisp例程,允许我将所有选定的块围绕其各自的中心/原点旋转180度(或任何用户定义的方向)?
 
我的街区是有方向的(标志、路灯等)所以每个人都必须面对不同的方向。现在他们都面临着相反的方向,他们需要。。。
匹配属性等。。。这行不通。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:29:34 | 显示全部楼层
  1. (defun c:test ( / ss ang ) (vl-load-com)
  2. (if (and (setq ss  (ssget "_:L" '((0 . "INSERT"))))
  3.           (setq ang (getangle "\nSpecify Rotation Angle: "))
  4.      )
  5.    (
  6.      (lambda ( i / e o )
  7.        (while (setq e (ssname ss (setq i (1+ i))))
  8.          (vla-put-rotation (setq o (vlax-ename->vla-object e))
  9.            (+ (vla-get-rotation o) ang)
  10.          )
  11.        )
  12.      )
  13.      -1
  14.    )
  15. )
  16. (princ)
  17. )
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:34:10 | 显示全部楼层
确切地谢谢李!!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:36:10 | 显示全部楼层
不客气
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 08:41:18 | 显示全部楼层
有没有办法添加一些东西,允许我按名称选择块?我的一些层有多个块。有些需要旋转,有些不需要。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:44:07 | 显示全部楼层
添加
 
  1. (2 . "YourBlockNameHere")

 
(0)“插入”旁边
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:47:17 | 显示全部楼层
李·麦克,
我注意到你使用
  1. (setq ang (getangle "\nSpecify Rotation Angle: "))

 
也可用于在屏幕上选择2个点。它适用于数字输入,唯一的问题是,如果用户偶然想要在屏幕上选择两个角度点,那么电流ucs可能是最终结果的一个因素。有办法吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:48:46 | 显示全部楼层
 
好的一点,我想你可以使用:
 
  1. (defun c:test ( / ss ang ) (vl-load-com)
  2. (if (and (setq ss  (ssget "_:L" '((0 . "INSERT"))))
  3.           (setq ang (getangle "\nSpecify Rotation Angle: "))
  4.           (setq ang (+ ang (angle '(0. 0. 0.) (trans (getvar 'UCSXDIR) 0 (trans '(0. 0. 1.) 1 0 t) t))))
  5.      )
  6.    (
  7.      (lambda ( i / e o )
  8.        (while (setq e (ssname ss (setq i (1+ i))))
  9.          (vla-put-rotation (setq o (vlax-ename->vla-object e))
  10.            (+ (vla-get-rotation o) ang)
  11.          )
  12.        )
  13.      )
  14.      -1
  15.    )
  16. )
  17. (princ)
  18. )

 
这将忽略UCS,只使用WCS中的两点。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 08:51:33 | 显示全部楼层
 
我也是这么想的。但你的要好得多。
我们正在为你挑选大脑李麦克。。。一种奇妙的学习方式
非常感谢你
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 08:55:35 | 显示全部楼层
不客气pBe
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 08:07 , Processed in 0.495165 second(s), 83 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表