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