马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 marting 于 2018-8-30 23:11 编辑
 - (defun XD::Mat:Block2WCS (ename / elst ang norm mat)
- (if (= (type ename) 'vla-object)
- (setq ename (vlax-vla-object->ename ename))
- )
- (setq elst (entget ename)
- ang (cdr (assoc 50 elst))
- norm (cdr (assoc 210 elst))
- )
- (apply
- 'xd::mat:disptomatrix
- (list
- (setq mat (XD::Mat:m*m
- (mapcar (function (lambda (v) (trans v 0 norm T)))
- '((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0))
- )
- (XD::Mat:m*m
- (list (list (cos ang) (- (sin ang)) 0.0)
- (list (sin ang) (cos ang) 0.0)
- '(0.0 0.0 1.0)
- )
- (list (list (cdr (assoc 41 elst)) 0.0 0.0)
- (list 0.0 (cdr (assoc 42 elst)) 0.0)
- (list 0.0 0.0 (cdr (assoc 43 elst)))
- )
- )
- )
- )
- (mapcar '-
- (trans (cdr (assoc 10 elst)) norm 0)
- (XD::Mat:M*V
- mat
- (cdr (assoc 10 (tblsearch "BLOCK" (cdr (assoc 2 elst)))))
- )
- )
- )
- )
- )
|