找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1688|回复: 7

[求助] lisp如何实现对象的非等比例变换

[复制链接]

已领礼包: 590个

财富等级: 财运亨通

发表于 2013-6-27 20:42:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
lisp如何实现对象的非等比例变换

已知一个最终变换矩阵,变换矩阵中包括平移,旋转、非等比例变换,
lisp如何实现对象的三维变换,这个是我一直不能实现的功能,到底能不能实现,CAD的新版的ET工具中ncopy实现了这一功能,不过没有公布方法。


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-27 20:52:00 | 显示全部楼层
论坛有好多种解决方法,也有比NCOPY功能更强的程序,先搜索下论坛,用 非等比例 做关键字。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-27 21:04:44 来自手机 | 显示全部楼层
你打开看过ncopy的lisp吗?知道他的算法吗?来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 590个

财富等级: 财运亨通

 楼主| 发表于 2013-6-27 23:58:06 | 显示全部楼层
不是单纯的非等比例变换
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-6-28 01:00:51 | 显示全部楼层
如果是正交非等比矩阵,可以通过矩阵计算出XYZ的缩放比例和旋转角,然后将对象制成无名块,按计算出的XYZ的缩放比例和旋转角插入到CAD,再炸开即可实现非等比矩阵缩放!
  1. ;; Decompose Matrix  -  Lee Mac
  2. ;; Decomposes a 4x4 transformation matrix into a list of
  3. ;; ((Sx Sy Sz) <angle> (x y z))
  4. ;;;(Decompose mat) mat为nentselp返回4X4矩阵由4X4矩阵计算((Sx Sy Sz) <angle> (x y z))
  5. ;;;(Decompose (caddr(nentselp "\n选择图块:"))) 返回:((xscale yscale zscale) rotation (xbase ybase zbase)
  6. (defun Decompose ( mat / sign)
  7.   (defun sign ( a ) (if (minusp a) -1.0 1.0))
  8.     (list
  9.         (list
  10.             (* (sign (caar mat))
  11.                (sqrt (+ (* (caar mat) (caar mat)) (* (caadr mat) (caadr mat))))
  12.             )
  13.             (* (sign (cadadr mat))
  14.                (sqrt (+ (* (cadar mat) (cadar mat)) (* (cadadr mat) (cadadr mat))))
  15.             )
  16.             (caddr (caddr mat))
  17.         )
  18.         (atan (caadr mat) (caar mat))
  19.         (mapcar '+ (mapcar 'last mat) '(0 0 0))
  20.     )
  21. )

如果是正交非等比矩阵,就不知道咋计算了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-6-28 08:11:11 | 显示全部楼层
本帖最后由 newer 于 2013-6-28 08:12 编辑
namezg 发表于 2013-6-27 23:58
不是单纯的非等比例变换

矩阵就是矩阵,怎么还分单纯不单纯一说。

非等比变换难点不是矩阵构造,而是如何TRANSFORM,组合矩阵,也没有什么难度,按照你的要求,矩阵左乘组合就是了。

楼主,最好你拿个例图说话,说下你想要什么。

你现在问题是组合矩阵写不出来?,还是最后变换不出来?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 590个

财富等级: 财运亨通

 楼主| 发表于 2013-7-1 23:00:32 | 显示全部楼层
本帖最后由 namezg 于 2013-7-2 21:38 编辑

上传一个测试的非等比例嵌套块,如何原位复制块内对象?

非等比例嵌套块.rar

30.13 KB, 下载次数: 7, 下载积分: D豆 -1 , 活跃度 1

点评

不明白何为原位复制?  详情 回复 发表于 2013-7-1 23:09
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-1 23:09:14 | 显示全部楼层
namezg 发表于 2013-7-1 23:00
上传一个测试的非等比例嵌套块,如何原位复制?

不明白何为原位复制?
  1. (vl-cmdf ".copy" (ssget) "" pause "@")
  2. (vl-cmdf ".explode" "L" "")

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 18:00 , Processed in 0.244698 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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