本帖最后由 caoyin 于 2025-9-1 10:12 编辑
 - ;;; 我用更简单的代码实现你的前期功能,既然选择集已经选中,后期功能完全可以随机调用诸如移动、删除等命令
- (defun C:TT (/ X C D P1 P2 SS)
- (cond ((= (getvar 'TILEMODE) 1)
- (princ "\n先切换到布局。")
- )
- ((/= (getvar 'CVPORT) 1)
- (princ "\n先切换到图纸空间。")
- )
- ((not (setq X (entsel "\n选择视口: ")))
- (princ "\n没选择任何对象。")
- )
- ((/= (cdr (assoc 0 (setq X (entget (car X))))) "VIEWPORT")
- (princ "\n所选对象不是视口。")
- )
- (T
- (setq C (cdr (assoc 10 X))
- D (list (/ (cdr (assoc 40 X)) 2.0) (/ (cdr (assoc 41 X)) 2.0))
- P1 (mapcar '- C D)
- P2 (mapcar '+ C D)
- )
- (command "_.MSPACE")
- (setvar 'CVPORT (cdr (assoc 69 X)))
- (if (setq SS (ssget "_C" (trans (trans P1 3 2) 2 1) (trans (trans P2 3 2) 2 1)))
- (sssetfirst nil SS)
- )
- )
- )
- (princ)
- )
|