Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Xin lisp chuyển text thuộc tính att thành text thường


  • Please log in to reply
8 replies to this topic

#1 dieptit

dieptit

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 08 May 2013 - 10:21 AM

Mình đang làm trên 1 file nền mà text cao độ nền địa hình lại bị làm thành bock thuộc tính att. Khi chạy các phần mềm tính toán nó không nhận cao độ nền nên mình muốn xin các bạn chia sẻ cho mình xin lisp chuyển các text thuộc tính att này sang text như bình thường với. Chân thành cảm ơn các bạn


  • 0

#2 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 08 May 2013 - 10:34 AM

Lệnh: burst.


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#3 dieptit

dieptit

    biết vẽ circle

  • Members
  • PipPip
  • 30 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 08 May 2013 - 08:35 PM

Mình vừa dùng lệnh bạn nói. Nó chọn text và xử lý sau đó thì nó vẫn là text thuộc tính att. Bạn có cách nào # nữa k 


  • 0

#4 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 643 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 08 May 2013 - 09:08 PM

Mình vừa dùng lệnh bạn nói. Nó chọn text và xử lý sau đó thì nó vẫn là text thuộc tính att. Bạn có cách nào # nữa k 

Mình đảm bảo là được tuy tuy nhiên đó là lệnh phá một block chứa ATT về các đối tượng đơn lẻ(gần giống Explore) nhưng hơn ở chỗ ATT được chuyển về Text(không thay đổi nội dung,vị trí,...)

Do vậy nếu dùng lệnh này với đối tượng không phải là block thì hông được, bạn Ktra lại xem, có thể là do lỗi này hoặc có thể do phần Express Tools của bạn hỏng rồi


  • 0

#5 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 09 May 2013 - 08:22 AM

Dùng với block chứa att chứ không phải dùng với att


  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#6 vanhoa20052

vanhoa20052

    Chưa sử dụng CAD

  • Members
  • Pip
  • 2 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 02 November 2016 - 11:18 AM

Xin Khẩn!!

 

Xin lisp chuyển Text Att đã bị explode (chứ không phải dùng lệnh Burst) Thành Text thường

 

Giải thích thêm Text ATT đã đc tạo block, Có 2 trường hợp explode:

 

1- Text Att bị Explode bằng lệnh EX thì text này không còn là text thường nữa. VD: ta dùng lisp đánh số thứ tự cho text att này thì số không tăng dần đc

 

2- Text Att bị Explode bằng lệnh Burst thì text thường. VD: ta dùng lisp đánh số thứ tự cho text att này thì số tăng dần đc

 

Xin cảm ơn các anh chị diễn đàn cho xin lisp sớm.


  • -1

#7 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 02 November 2016 - 11:44 AM

Xin Khẩn!!

 

Xin lisp chuyển Text Att đã bị explode (chứ không phải dùng lệnh Burst) Thành Text thường

 

Giải thích thêm Text ATT đã đc tạo block, Có 2 trường hợp explode:

 

1- Text Att bị Explode bằng lệnh EX thì text này không còn là text thường nữa. VD: ta dùng lisp đánh số thứ tự cho text att này thì số không tăng dần đc

 

2- Text Att bị Explode bằng lệnh Burst thì text thường. VD: ta dùng lisp đánh số thứ tự cho text att này thì số tăng dần đc

 

Xin cảm ơn các anh chị diễn đàn cho xin lisp sớm.

Hỏi ảnh GO trước đi. Heizz. Code này ngon nhé.^_^

(defun c:AttDef2Text ( / ss )
  ;; © Lee Mac  ~  01.06.10
  (vl-load-com)

  (if (setq ss (ssget "_:L" '((0 . "ATTDEF"))))
    (
      (lambda ( i / e o )
        (while (setq e (ssname ss (setq i (1+ i))))
          (if
            (
              (if (and (vlax-property-available-p
                         (setq o (vlax-ename->vla-object e)) 'MTextAttribute)
                       (eq :vlax-true (vla-get-MTextAttribute o)))

                MAttDef2MText AttDef2Text
              )
              (entget e)
            )
            (entdel e)
          )
        )
      )
      -1
    )
  )
  (princ)
)

(defun AttDef2Text ( eLst / dx74 dx2 )
  ;; © Lee Mac  ~  01.06.10

  (setq dx74 (cdr (assoc 74 eLst)) dx2 (cdr (assoc 2 eLst)))

  (entmake
    (append '( (0 . "TEXT") ) (RemovePairs '(0 100 1 2 3 73 74 70 280) eLst)
      (list
        (cons 73 dx74)
        (cons  1  dx2)
      )
    )
  )
)

(defun MAttDef2MText ( eLst )
  ;; © Lee Mac  ~  01.06.10

  (entmake
    (append '( (0 . "MTEXT") (100 . "AcDbEntity") (100 . "AcDbMText") )
      (RemoveFirstPairs '(40 50 41 7 71 72 71 72 73 10 11 11 210)
        (RemovePairs '(-1 102 330 360 5 0 100 101 1 2 3 42 43 51 74 70 280) eLst)
      )
      (list (cons 1 (cdr (assoc 2 eLst))))
    )
  )
)

(defun RemoveFirstPairs ( pairs lst )
  ;; © Lee Mac

  (defun foo ( pair lst )
    (if lst
      (if (eq pair (caar lst))
        (cdr lst)
        (cons (car lst) (foo pair (cdr lst)))
      )
    )
  )

  (foreach pair pairs
    (setq lst (foo pair lst))
  )
  lst
)


(defun RemovePairs ( pairs lst )
  ;; © Lee Mac
  (vl-remove-if
    (function
      (lambda ( pair )
        (vl-position (car pair) pairs)
      )
    )
    lst
  )
)

  • 0

#8 VlaObject

VlaObject

    biết pan

  • Members
  • Pip
  • 6 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 02 November 2016 - 03:17 PM

 

Hỏi ảnh GO trước đi. Heizz. Code này ngon nhé. ^_^

(defun c:AttDef2Text ( / ss )
  ;; © Lee Mac  ~  01.06.10
  (vl-load-com)

  (if (setq ss (ssget "_:L" '((0 . "ATTDEF"))))
    (
      (lambda ( i / e o )
        (while (setq e (ssname ss (setq i (1+ i))))
          (if
            (
              (if (and (vlax-property-available-p
                         (setq o (vlax-ename->vla-object e)) 'MTextAttribute)
                       (eq :vlax-true (vla-get-MTextAttribute o)))

                MAttDef2MText AttDef2Text
              )
              (entget e)
            )
            (entdel e)
          )
        )
      )
      -1
    )
  )
  (princ)
)

(defun AttDef2Text ( eLst / dx74 dx2 )
  ;; © Lee Mac  ~  01.06.10

  (setq dx74 (cdr (assoc 74 eLst)) dx2 (cdr (assoc 2 eLst)))

  (entmake
    (append '( (0 . "TEXT") ) (RemovePairs '(0 100 1 2 3 73 74 70 280) eLst)
      (list
        (cons 73 dx74)
        (cons  1  dx2)
      )
    )
  )
)

(defun MAttDef2MText ( eLst )
  ;; © Lee Mac  ~  01.06.10

  (entmake
    (append '( (0 . "MTEXT") (100 . "AcDbEntity") (100 . "AcDbMText") )
      (RemoveFirstPairs '(40 50 41 7 71 72 71 72 73 10 11 11 210)
        (RemovePairs '(-1 102 330 360 5 0 100 101 1 2 3 42 43 51 74 70 280) eLst)
      )
      (list (cons 1 (cdr (assoc 2 eLst))))
    )
  )
)

(defun RemoveFirstPairs ( pairs lst )
  ;; © Lee Mac

  (defun foo ( pair lst )
    (if lst
      (if (eq pair (caar lst))
        (cdr lst)
        (cons (car lst) (foo pair (cdr lst)))
      )
    )
  )

  (foreach pair pairs
    (setq lst (foo pair lst))
  )
  lst
)


(defun RemovePairs ( pairs lst )
  ;; © Lee Mac
  (vl-remove-if
    (function
      (lambda ( pair )
        (vl-position (car pair) pairs)
      )
    )
    lst
  )
)

 

Ông © Lee Mac này cái gì ổng cũng có.hahaha  :D


  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 02 November 2016 - 04:25 PM

Nên phân biệt rõ ràng AttDef (Attribute Definition) và Attribute đã nằm trong Insert :)


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC