dxf72和dxf73,肯定可以。
下面的程序是从明经通道来的,稍微加了内部函数,你可以参考。如果想直接用,可以去mjtd下载原程序

- (defun C:wzq ;;;改字对齐方式;;;
- (/ E EN FH FV IN PT1 PT2 S XYZ-WZQ)
- (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 "----" "选择一种新的对齐方式" 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)
- )
|