Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
almodeus

Chuyển text sẵn có thành ATT

Các bài được khuyến nghị

nghiautc    18

có cách nào chuyển text sẵn có sang ATT không các bạn, có thể viết lisp giúp mình ko

http://www.mediafire.com/?buh6hcr6aob3lhm

bạn download xuống dùng ap vào dùng lệnh att

:=================

Sub Att()

On Error Resume Next

Dim Att As AcadAttribute

Dim ObjText As AcadText

ThisDrawing.Utility.GetEntity ObjText, basePnt, vbCr & "Chon Text"

ThisDrawing.ModelSpace.AddAttribute ObjText.Height, acAttributeModeVerify, ObjText.TextString, ObjText.InsertionPoint, ObjText.TextString, ObjText.TextString

ObjText.Delete

End Sub

:=================

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
ketxu    2.652

ko dung duoc ban oi tét lai zum minh nhe...

Search là thấy ngay cho bạn đây ^^

 

;free lisp from cadviet.com posted by ketxu
(defun c:t2att (/ ss i en ed)
 (while (not ss)
        (princ "\nChon text de chuyen thanh ATT :")
        (setq ss (ssget (list (cons 0 "TEXT")
                              (if (getvar "CTAB")
                                  (cons 410 (getvar "CTAB"))
                                  (cons 67 (- 1 (getvar "TILEMODE"))))))))

 (setq i (sslength ss))
 (while (not (minusp (setq i (1- i))))
        (setq en (ssname ss i)
              ed (entget en))
        (if (wcmatch (cdr (assoc 1 ed)) "* *")
            (alert "\nDay ky tu chua khoang trong, khong thuc hien duoc")
            (progn
              (entmake (list (cons 0 "ATTDEF")
                             (assoc 8 ed)
                             (assoc 10 ed)
                             (assoc 11 ed)
                             (assoc 7 ed)
                             (assoc 40 ed)
                             (assoc 41 ed)
                             (assoc 50 ed)
                             (assoc 51 ed)
                             (cons 70 0)
                             (assoc 71 ed)
                             (assoc 72 ed)
                             (cons 74 (cdr (assoc 73 ed)))
                             (assoc 210 ed)
                             (cons 1 "")
                             (cons 2 (cdr (assoc 1 ed)))
                             (cons 3 (cdr (assoc 1 ed)))
                             (if (assoc 6 ed) (assoc 6 ed)'(6 . "BYLAYER"))
                             (if (assoc 39 ed) (assoc 39 ed)'(39 . 0))
                             (if (assoc 62 ed) (assoc 62 ed)'(62 . 256))))
              (entdel en))))
 (redraw)
 (prin1))

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
trungnv61    10

mình cần cái lisp chuyển đối tượng att thành text. nhìu bản vẽ bên kiến trúc chuyển sang k hỉu sao họ để tên trục là att mà cũng k phải block nên khi mình xref các att k hiện lên.........bác nào có lisp chuyển các đối tượng att này thành text làm ơn share cho mình với nha!!!!!!!!chân thành cảm ơn

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.678

Của thằng Tây, bạn dùng nhé.

 

(defun C:A2T (/ eset1 blkcnt en enlist vl space)
  (setq eset1  (ssget (list (cons 0 "ATTDEF")))
blkcnt 0)
  (if eset1
    (while (<= blkcnt (- (sslength eset1) 1))
      (setq en    (ssname eset1 blkcnt)
   enlist (entget en)
   space  (cdr (assoc 67 enlist)))
      (setq vl (list
(cons 0 "TEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(assoc 7 enlist)
(assoc 8 enlist)
(assoc 10 enlist)
(assoc 40 enlist)
(cond ((assoc 62 enlist))
      ((cons 62 256)))
(cons 1 (cdr (assoc 2 enlist)))
(if (= space nil)
  (cons 67 0)
  (cons 67 space))))
      (entdel en)
      (entmake vl)
      (setq blkcnt (1+ blkcnt)))))
 
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Doan Van Ha    2.678

Có lẽ do forum bị lỗi. Bạn down lại nhé.

 

(defun C:A2T (/ eset1 blkcnt en enlist vl space)
  (setq eset1  (ssget (list (cons 0 "ATTDEF")))
blkcnt 0)
  (if eset1
    (while (<= blkcnt (- (sslength eset1) 1))
      (setq en    (ssname eset1 blkcnt)
   enlist (entget en)
   space  (cdr (assoc 67 enlist)))
      (setq vl (list
(cons 0 "TEXT")
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(assoc 7 enlist)
(assoc 8 enlist)
(assoc 10 enlist)
(assoc 40 enlist)
(cond ((assoc 62 enlist))
      ((cons 62 256)))
(cons 1 (cdr (assoc 2 enlist)))
(if (= space nil)
  (cons 67 0)
  (cons 67 space))))
      (entdel en)
      (entmake vl)
      (setq blkcnt (1+ blkcnt)))))
  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
minhtanx2    3

E vẫn không gọi đc lệnh. Nó báo  có lỗi gì đó bác ạ

Command: 43 APPLOAD a2t.lsp successfully loaded.
Command: ; error: syntax error

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×