乐筑天下

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

[编程交流] 有obje的lisp例程

[复制链接]
djw

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:52:57 | 显示全部楼层 |阅读模式
我试图编写一个lisp例程,让一个对象(比如一个螺栓)360度旋转,比如50次,同时移动?当我制作视频动画时,似乎无法获得它。
回复

使用道具 举报

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 10:59:12 | 显示全部楼层
有几种方法可以做到这一点。第一种方法是编写LISP以物理旋转对象,但只有在AutoCAD中进行演示,或者有第三方程序将监视器上的图像记录到视频中时,这才有用。另一个选项显然更复杂,但它允许您直接导出视频。查看AutoCAD中可用的运动路径动画,看看这些动画是否能满足您的需要。
回复

使用道具 举报

djw

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:02:18 | 显示全部楼层
谢谢你的回复。。
“第一个是编写LISP以物理旋转对象”,这就是我在AutoCAD 2007中尝试做的,是的,第三方程序将监视器上的图像记录到视频中,运动路径动画。
回复

使用道具 举报

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 11:03:37 | 显示全部楼层
虽然我建议您看看AutoCAD中可用的运动路径动画,因为它们可以提供更好的产品。这样的代码取决于您的系统,并且可能会延迟或加速,这取决于您正在进行的操作。
 
  1. (defun c:rotob( / e p a b c i)
  2. (vl-load-com)
  3. (setvar "cmdecho" 0)
  4. (setq e (vlax-ename->vla-object (car (entsel "\nSelect object: "))))
  5. (setq p (getpoint "\nSelect rotation point: "))
  6. (setq a 5    ; Number of revolutions
  7.    b 5    ; Degrees per increment (must be a factor of 360)
  8.    c 10    ; Delay between incremental rotation
  9.    i 0)    ; Counter
  10. (if (= 0 (rem (setq d (/ 360 b)) 1))
  11.    (while (< i a)
  12.      (repeat d
  13.    (vla-rotate e (vlax-3d-point p) (* (/ pi 180.0) b))
  14.    (vl-cmdf "delay" c "regen")
  15.    )
  16.      (setq i (1+ i))
  17.      )
  18.    )
  19. )
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 11:06:14 | 显示全部楼层
嘿,这可能会让你开始!
我不久前写的只是为了好玩。。。
  1. (defun c:spin (/ obj rot rot+)
  2. (setq obj (vlax-ename->vla-object (car (entsel))))
  3. (setq rot (vla-get-rotation obj))
  4. (setq rot+ (/ (* 2 pi) 500))
  5. (repeat 500
  6.    (setq rot (+ rot+ rot))
  7.    (vla-put-rotation obj rot)
  8.    (vla-update obj)
  9.    )
  10. (vlax-release-object obj)
  11. (princ)
  12. )
回复

使用道具 举报

djw

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:09:40 | 显示全部楼层
再次感谢。。
好吧,我是lisp写作新手,所以我很慢,我有一个我在视频中尝试做什么的例子,蓝色的螺栓在移动时需要旋转/旋转。
(1) 如何选择螺栓。
(2) 如何一次将lisp应用于一个螺栓。
墨西哥湾漏油、管帽
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 11:12:25 | 显示全部楼层
这根本不是我想的。
 
回复

使用道具 举报

djw

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 11:16:15 | 显示全部楼层
视频,没有上传。。请参阅PDF
管道固定。pdf
回复

使用道具 举报

20

主题

344

帖子

325

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 11:20:36 | 显示全部楼层
那是另一个蜡球。
 
我建议您使用发布的代码,并尝试对其进行调整,使其围绕特定轴旋转(您需要为3D指定此选项)。然后,您应该能够添加额外的数据以获得所需的翻译。一旦您完成了一个对象的代码,您应该能够为其余对象复制它。
回复

使用道具 举报

20

主题

338

帖子

323

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
100
发表于 2022-7-6 11:22:09 | 显示全部楼层
alanjt:
 
你想上传你的旋转/移动的东西的Lisp程序吗?
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 11:51 , Processed in 0.426305 second(s), 83 queries .

© 2020-2025 乐筑天下

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