版本n多.这个是明经的版本,我加了doslib.供参考.

- (defun C:wzq (/ E EN FH FV IN PT1 PT2 S XYZ-WZQ);;;改TEXT,ATTDEF对齐方式;;;
- (undo_begin)
- (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode") '(0 4 4 32 0))
- (SETQ k-wzq(if k-wzq k-wzq "L"))
- (while (progn
- (prompt "\n选择要改 对齐方式 的TEXT,ATTDEF实体【不选=退出】:")
- (setq s(ssget '((0 . "TEXT,ATTDEF")))))
- (setq xyz-wzq '("左(L)""中间(M)""右(R)""中心(C)""对齐(F)"
- "左上(TL)""中上(TC)""右上(TR)"
- "左中(ML)""正中(MC)""右中(MR)"
- "左下(BL)""中下(BC)""右下(BR)")
- k-wzq(dos_combolist "--by陈勇--" "选择一种新的对齐方式" xyz-wzq (if k-wzq k-wzq "左(L)")))
- (cond
- ((= k-wzq "中间(M)") (setq fh 4 fv 0))
- ((= k-wzq "左(L)") (setq fh 0 fv 0))
- ((= k-wzq "中心(C)") (setq fh 1 fv 0))
- ((= k-wzq "右(R)") (setq fh 2 fv 0))
- ((= k-wzq "对齐(F)") (setq fh 4 fv 0))
- ((= k-wzq "左上(TL)")(setq fh 0 fv 3))
- ((= k-wzq "中上(TC)")(setq fh 1 fv 3))
- ((= k-wzq "右上(TR)")(setq fh 2 fv 3))
- ((= k-wzq "左中(ML)")(setq fh 0 fv 2))
- ((= k-wzq "正中(MC)")(setq fh 1 fv 2))
- ((= k-wzq "右中(MR)")(setq fh 2 fv 2))
- ((= k-wzq "左下(BL)")(setq fh 0 fv 1))
- ((= k-wzq "中下(BC)")(setq fh 1 fv 1))
- ((= k-wzq "右下(BR)")(setq fh 2 fv 1))
- )
- (setq in 0)
- (repeat (sslength s)
- (setq e(ssname s in)en(entget e)
- pt1(dxf 10 en) in(1+ in)
- en(subst (cons 72 fh)(assoc 72 en)en)
- en(subst (cons 73 fv)(assoc 73 en)en))
- (entmod en)
- (setq pt2 (dxf 10 (entget e)))
- (mapcar 'setvar '("pickbox""aperture""osmode") '(0 1 0))
- (command "_move" e "" "non" pt2 "non" pt1)
- (mapcar 'setvar '("pickbox""aperture""osmode") '(4 4 32))
- )
- )
- (mapcar 'setvar '("cmdecho""pickbox""aperture""osmode""blipmode")
- '(1 4 4 32 1))
- (undo_end)(princ)
- )
|