马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - ;|
- 模拟ACAD的MIRROR命令,但要比执行命令MIRROR效率高
- ss ---- pickset
- p1 ---- point
- p2 ---- point
- tf ---- 0 copy ; 1 - delete
- |;
- (defun XD::Pickset:Mirror (ss p1 p2 mod / m0 m1 m2 mr s1)
- (setq m0 (xdrx_matrix_identity 3)
- m1 (xdrx_matrix_setmirror m0 '(0 0 0))
- m1 (xdrx_matrix_product m1 (xdrx_matrix_wcs2ucs))
- m1 (xdrx_matrix_product (xdrx_matrix_ucs2wcs) m1)
- m2 (xdrx_matrix_setmirror m0 (list p1 p2))
- mr (xdrx_matrix_product m1 m2)
- )
- (if (= mod 1)
- (progn (xdrx_entity_transform ss mr)
- ss
- )
- (progn
- (setq s1 (xdrx_entity_transformedcopy ss m0))
- (xdrx_entity_transform s1 mr)
- (xdrx_pickset_union s1 ss)
- )
- )
- )
示例:
 - (defun c:tt (/ ss p1 p2)
- (if (and (setq ss (ssget))
- (setq p1 (getpoint "\nFirst point: "))
- (setq p2 (getpoint p1 "\nSecond point: "))
- (setq tf (xdrx_yesorno "\n删除原实体" "Y"))
- )
- (XD::Pickset:Mirror ss p1 p2 tf)
- )
- (princ)
- )
|