乐筑天下

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

[编程交流] 在插入器上旋转动态块

[复制链接]

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:33:57 | 显示全部楼层 |阅读模式
专家,
由于我是一个n00b到LiSP的人,我一直在做研究,试图拼凑一些LiSP来帮助我完成我每天都要忍受的看似乏味的任务/仪式。Lee Mac在另一个线程上发布了一个回复(围绕各自的原点旋转多个块),它在一定程度上起作用,旋转单个块,但这并不是我需要的全部。
 
请就如何使用LiSP最好地实现这一点提供任何建议。我已经附上我的动态块,如果你需要它进行测试。 
简要说明:
我有几个在3D中创建的动态块,为了让拉伸功能在Z轴上工作,我被迫将它们放在Y轴上。我插入动态块的顺序是插入我的块,选择块,单击viewcube的左上角,使用等轴测视图,我现在可以利用3Drotate命令,围绕X轴上的插入点旋转块90度——这样做现在使我的块处于正确的方向,以便在金属螺柱框架构件的三维建模中使用,现在,我必须使用世界ucs(X,Y)围绕Z轴旋转块,以与建筑平面图对齐。
门图纸
回复

使用道具 举报

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:37:17 | 显示全部楼层
我对我写的这些小宏有一些运气,然而,它往往是碰运气的。这些宏允许我通过单击来旋转单个项目I,并重复该命令,直到我按ESC键,但如果我不直接单击块,块将不会围绕插入点旋转,而是稍微偏离。这个宏的另一个问题是,当我点击新创建的图标时,我不能选择项目/块,我必须先点击图标来启动宏,然后继续选择项目/块。
 
有谁能提供这个宏的帮助,或者提供为上述问题创建LiSP的帮助?任何事情都有帮助。
  1. *^C^C_rotate;\\_insert;@;180;
  2. *^C^C_rotate;\\_insert;@;90;
  3. *^C^C_rotate;\\_insert;@;-90;
回复

使用道具 举报

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:42:21 | 显示全部楼层
差点忘了,我把这条新闻拼凑在一起,偶尔会出错。有时我在加载它时会遇到问题,有时我在让它工作时会遇到困难,但当它工作时,它可以很好地完成我试图完成的一半工作。
  1. (defun c:rb ( / ss )
  2. (if (setq ss (ssget "_:L"))
  3.    (command "rotate" ss "" "_ins" "@" "90")
  4. )
  5. (princ)
  6. )
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 06:44:07 | 显示全部楼层
我希望这能奏效
 
  1. (defun c:rb ( / ss )
  2.   (setq ss (ssget "_:L"))
  3.    [color="red"](setq pnt (getpoint "\n Specify Base Point :"))[/color]
  4.    (command "rotate" ss "" [color="red"]pnt[/color] "_ins" "90")
  5. (princ)
  6. )
回复

使用道具 举报

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:48:05 | 显示全部楼层
谢谢Satishrajdev!几小时后我回到办公室时,我一定会首先检查一下。
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 06:51:16 | 显示全部楼层
当然
回复

使用道具 举报

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 06:54:35 | 显示全部楼层
:眩光:所以。。。现在我得到了这样的提示:
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 06:57:18 | 显示全部楼层
您是否正在执行一个例程,该例程应允许用户选择块并输入角度,然后代码应单独旋转所选块
在其插入点?
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 07:01:19 | 显示全部楼层
这就是你想要实现的吗?
 
  1. (defun c:BR90 (/ pi/2 ss i d a)
  2. (if (setq pi/2 (/ pi 2.)
  3.            ss   (ssget "_:L" '((0 . "INSERT")))
  4.      )
  5.    (repeat (setq i (sslength ss))
  6.      (entmod
  7.        (subst
  8.          (cons 50 (+ (cdr (setq a (assoc 50 (setq d (entget (ssname ss (setq i (1- i)))))))) pi/2))
  9.          a
  10.          d
  11.        )
  12.      )
  13.    )
  14. )
  15. (princ)
  16. )
回复

使用道具 举报

4

主题

27

帖子

23

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 07:02:44 | 显示全部楼层
 
塔尔瓦特,
那就行了。我唯一的问题是,我的块和我的图形具有不同的UCS,块必须基于块的插入点旋转,该插入点已在x轴上旋转90度(请参阅我的youtube视频)。
 
 
alanjt,
这将基于块的z轴而不是我的图形的z轴将块旋转90度。你能让它围绕块的x轴旋转吗?我的YouTube视频和附加到原始线程的块可能会提供更多的理解。
 
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 18:52 , Processed in 1.158980 second(s), 72 queries .

© 2020-2025 乐筑天下

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