单选图块在位图元
;;; Nentsel;;; function : to nentsel a entity In situ
;;; arg : string to princ in command-line
;;; return : a list ( ename point is-of-block? )
;;; Note : if the ename is of a block , the routine copy a similar entity , so you must entdel it later
;;; by GSLS(SS)
;;;
(defun ss-Nentsel (msg / en en1 pt mat ins mat ent)
(setq en (Nentsel msg))
(if (= (length en) 4)
(progn
(setq en1 (car en)
pt (cadr en)
mat (caddr en)
ins (last mat)
mat (reverse (cdr (reverse mat)))
mat (append
(mapcar '(lambda (x y)
(append x (list y))
)
mat
ins
)
'((0. 0. 0. 1.))
)
ent (entget en1 '("*"))
ent (vl-remove (assoc -1 ent) ent)
en1 (entmakex ent)
)
(if en1
(progn
(setq obj (vlax-ename->vla-object en1))
(vla-TransformBy obj (vlax-tmatrix mat))
(setq en1 (vlax-vla-object->ename obj))
)
)
(list en1 pt T)
)
(append en (list nil))
)
) 本帖最后由 chlh_jd 于 2011-4-5 13:20 编辑
应用举例:
未知命令呀,你这个是个什么功能?
不错,一个很有用的函数,谢谢分享 对矩阵 转换一直不懂,用相关的资料学习一下,多谢分享。。。 支持、学习、谢谢 好程序
一个字
很好用 好东西收藏了,多谢楼主分享 谁给解释一下该程序? chlh_jd:你好!当块的旋转角不等于0度或180度时,ss-Nentsel 函数得到图元不在原位,还需要旋转2倍的块旋转角才到达原位。
页:
[1]
2