| 
本帖最后由 st788796 于 2016-2-23 17:38 编辑
×
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
    
  
(defun c:tt (/ p1 p2 ss lst s)
  (if (and (setq p1 (getpoint "\nFirset Corner: "))
           (setq p2 (getcorner p1 "\nOrther Corner: "))
           (setq ss (ssget "C" p1 p2 '((0 . "insert"))))
      )
    (progn
      (setq lst
             (mapcar '(lambda (x / l ll)
                        (setq l         (xdrx_getpropertyvalue
                                   x
                                   "BlockTableRecord"
                                   "BlockTransform"
                                 );_获取块定义和 Insert 的变换矩阵
                              ll (vl-remove-if
                                   '(lambda (a)
                                      (and
                                        (/=
                                          (xdrx_getpropertyvalue
                                            a
                                            "IsA"
                                          )
                                          "AcDbText"
                                        );_判断是否是需要类型
                                        (not
                                          (apply
                                            'xdrx_point_isinside
                                            (list
                                              (xdrx_point_transform
                                                (xdrx_getpropertyvalue
                                                  a
                                                  "Position"
                                                )
                                                p1
                                                p2
                                              )
                                            )
                                          );_条件筛选
                                        )
                                      )
                                    )
                                   (xdrx_getpropertyvalue
                                     (cadar l)
                                     "allEntities"
                                   );_块定义内所有实体
                                 )
                        )
                        (if ll
                          (progn
                            (xdrx_entity_setcolor
                              (xdrx_entity_transformedcopy ll (cadr l));_将符合条件的实体复制一份到模型空间,注意有些实体不支持非等比矩阵变换 
                              1
                            )
                          )
                        )
                      )
                     (xdrx_pickset->ents ss)
             )
      )
    )
  )
  (princ)
)
 |