马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
代码仅为WCS下的等比块,对非等比块可以用 vla-copyobjects 制作一个新的匿名块, vla-insertblock 后 Transform
 - (defun c:tt (/ e p1 p2 mat box box1 el nel)
- (if (and (setq e (car (xdrx_entsel "\nPick Insert: " '((0 . "insert")))))
- (setq p1 (getpoint "\nFirst Corner: "))
- (setq p2 (getcorner p1 "\nSecond Corner: "))
- )
- (progn
- (setq mat (xdrx_getpropertyvalue e "BlockTransForm")
- box (xdrx_points_box p1 p2)
- box1 (xdrx_points_transform box (xdrx_matrix_inverse mat))
- el (xdrx_getpropertyvalue
- (xdrx_getpropertyvalue e "Owner")
- "AllEntities"
- )
- )
- (if (setq nel
- (vl-remove-if-not
- '(lambda (x)
- (XD::Pnts:IsInPolyWithPnts (xdrx_entity_box x) box1)
- )
- el
- )
- )
- (progn
- (xdrx_setmark)
- (mapcar '(lambda (x)
- (xdrx_entity_transformedcopy x mat)
- )
- nel
- )
- (if (setq ss (xdrx_getss))
- (vl-cmdf ".move" ss "" p1)
- )
- )
- )
- )
- )
- (princ)
- )
|