明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: highflybir

[【高飞鸟】] 【越飞越高讲堂15】用LISP论矩阵

    [复制链接]
发表于 2013-10-11 15:13:49 | 显示全部楼层
highflybir 发表于 2013-10-11 15:07
测试你的图纸也没问题。

这就奇怪了,一会儿在别人的电脑里面试试
发表于 2013-10-12 14:59:29 | 显示全部楼层
留个足迹,方便以后看
发表于 2013-11-19 18:25:58 | 显示全部楼层
关于矩阵的lsp先收藏了,谢谢分享
发表于 2013-11-22 17:24:05 | 显示全部楼层
顶,不顶对不起人了!!!
发表于 2014-1-16 16:53:18 | 显示全部楼层
这样的帖子不能下沉  初学者的福音
发表于 2014-2-16 19:24:40 | 显示全部楼层
看的要跪倒,强大的搜集精神啊,学习
发表于 2014-5-3 18:30:22 | 显示全部楼层
很好,很好,变换群,坚决支持用计算机的语言和数学结合起来
发表于 2014-7-6 17:34:55 | 显示全部楼层
十分的佩服。。学习了
发表于 2014-7-8 16:27:30 | 显示全部楼层
最近也研究了一下highflybird版主的矩阵坐标转换,也试着改了一段由俯视图变为侧试图的代码。
  1. (defun c:test (/ ss p1 p2 mat1 mat2 mat3 i e o)
  2.   (if (setq ss (ssget))                                                ;选择物体
  3.     (progn
  4.       (initget "L R")
  5.       (setq key (getkword "左侧视[L];右侧视[R]:<L>"))
  6.       (if (not key)
  7.         (setq key "L")
  8.         )
  9.       (initget 1)
  10.       (setq P1 (getpoint "\n基点:"))                                ;指定基点
  11.       (setq p1 (trans p1 1 0))                                  ;把输入得到的点转化为世界坐标系的点
  12.       (setq mat1 (MAT:TRANSLATEBY2P p1 '(0 0 0)))                            ;从P1位移到坐标原点的位移矩阵
  13.       (setq mat2 (MAT:ISO 0 (* 0.5 pi)))                                     ;绕X轴旋转90度
  14.       (cond ((= key "L")(setq mat3 (MAT:ISO (+(* 0.25 pi)) (- (* 0.25 pi)))));绕Z轴旋转45度绕X轴旋转-45度
  15.             ((= key "R")(setq mat3 (MAT:ISO (-(* 0.25 pi)) (- (* 0.25 pi)))));绕Z轴旋转-45度绕X轴旋转-45度
  16.             )
  17.       (setq mat4 (MAT:TRANSLATEBY2P  '(0 0 0) p1))              ;从原点移到P1点位移矩阵
  18.       (setq mat  (mat:mxm mat4 (mat:mxm mat3 (mat:mxm mat2 mat1))))            ;须按照先后顺序从里到外这样相乘
  19.       (setq mat  (vlax-tmatrix mat))                            ;用vlax-tmatrix把变换矩阵从表转化为ActiveX数组表达的矩阵
  20.       (command "undo" "be")
  21.       (setq i 0)
  22.       (repeat (sslength ss)                                       
  23.         (setq e (ssname ss i))                                        ;获得图元名
  24.         (setq o (vlax-ename->vla-object e))                        ;获得ActiveX对象
  25.         (vla-transformby o mat)                                        ;用vla-transformby函数对之变换
  26.         (setq i (1+ i))
  27.       )
  28.       (command "undo" "e")
  29.     )
  30.   )
  31.   (princ)
  32. )
发表于 2014-8-15 00:08:35 | 显示全部楼层
关于矩阵的先收藏了,做个记号,谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 16:32 , Processed in 0.151628 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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