Đến nội dung


Hình ảnh

Hỏi về Block thuộc tính


  • Please log in to reply
22 replies to this topic

#21 tanpopo

tanpopo

    Chưa sử dụng CAD

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

Đã gửi 19 December 2011 - 04:56 PM


Mình cũng ko chắc nhưng có lẽ là do dynamic block nen nó ko làm việc dc???
bạn có thể xài cái lisp mình viết, lisp này chỉ yêu cầu bạn chọn block mẫu, sau đó tự nó làm việc. Xong rồi bạn có thể test lại bằng lệnh attsync xem nó có bị nữa ko nhá!


(defun c:lo(/ ent dtc dt1 sdt id sl nd1 lst1 lt)
(setq dtc(car (entsel "\nchon block:")))
(get-block dtc)
(setq
sdt (sslength dt1)
id 0
lt (list))
(repeat sdt
(setq ent (ssname dt1 id)
id (1+ id)
nd1 (assoc 1 (entget (entnext ent)))
lt (cons nd1 lt)
)
)
(command "attsync" "s" dtc "y")
(setq sl -1
id (- id 1)
)
(repeat sdt
(setq ent (ssname dt1 id)
id (1- id)
lst1 (entget (entnext ent))
lst1 (subst (nth (+ sl 1) lt) (assoc 1 lst1) lst1)
)
(setq sl (+ sl 1))
(entmod lst1)

)
)

;;;;;;;;;;;;;;;;;;;;;;;
(defun get-block(entm / sdtb idb ent2 entb dtm namem name BBB entb)
(setq dtm (vlax-ename->vla-object entm))
(setq namem (if(vlax-property-available-p dtm 'effectivename)
(vla-get-effectivename dtm)
(vla-get-name dtm)
));;;
(setq BBB(SSGET "all" (list(cons 0 "INSERT") (assoc 8 (entget entm))))
sdtb (sslength BBB)
idb 0
dt1 (ssadd)
)
(repeat sdtb;;repeat
(setq entb (ssname BBB idb)
idb (1+ idb)
)
(setq ent2(vlax-ename->vla-object entb))
(setq name (if(vlax-property-available-p ent2 'effectivename)
(vla-get-effectivename ent2)
(vla-get-name ent2)
))
(if (= name namem)
(setq dt1 (ssadd entb dt1))
)
);;repeat
)


sadiwediwỉiewr

Các bác cho em hỏi chút về block ATT
Trong bản vẽ em đã chèn rất nhiều block thuộc tính, bây giờ em muốn thay đổi vị trí hiển thị text thuộc tính. Nhưng các block đã chèn nó không thay đổi theo.
Em muốn hỏi làm cách nào để khi dùng lệnh Bedit chỉnh sửa block thì vị trí ghi thuộc tính của block cũng được cập nhật theo.
Cảm ơn các bác.


m hỏi chút về block ATT
Trong bản vẽ em đã chèn rất nhiều block thuộc tính, bây giờ em muốn thay đổi vị trí hiển thị text thuộc tính. Nhưng các block đã chèn nó không thay đổi theo.
Em muốn hỏi làm cách nào để khi dùng lệnh Bedit chỉnh sửa block thì vị trí ghi thuộc tính của block cũng được cập nhật theo.
Cảm ơn các bác.

cai này hay nha. chắc chắn mình sẽ làm thử rồi.!!!!!!!!!!!!!!! thanks các pác nha
re
  • 0

#22 angelofmine

angelofmine

    biết vẽ pline

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

Đã gửi 20 December 2011 - 12:11 AM

Mình cũng ko chắc nhưng có lẽ là do dynamic block nen nó ko làm việc dc???
bạn có thể xài cái lisp mình viết, lisp này chỉ yêu cầu bạn chọn block mẫu, sau đó tự nó làm việc. Xong rồi bạn có thể test lại bằng lệnh attsync xem nó có bị nữa ko nhá!


(defun c:lo(/ ent dtc dt1 sdt id sl nd1 lst1 lt)
(setq dtc(car (entsel "\nchon block:")))
(get-block dtc)
(setq
sdt (sslength dt1)
id 0
lt (list))
(repeat sdt
(setq ent (ssname dt1 id)
id (1+ id)
nd1 (assoc 1 (entget (entnext ent)))
lt (cons nd1 lt)
)
)
(command "attsync" "s" dtc "y")
(setq sl -1
id (- id 1)
)
(repeat sdt
(setq ent (ssname dt1 id)
id (1- id)
lst1 (entget (entnext ent))
lst1 (subst (nth (+ sl 1) lt) (assoc 1 lst1) lst1)
)
(setq sl (+ sl 1))
(entmod lst1)

)
)

;;;;;;;;;;;;;;;;;;;;;;;
(defun get-block(entm / sdtb idb ent2 entb dtm namem name BBB entb)
(setq dtm (vlax-ename->vla-object entm))
(setq namem (if(vlax-property-available-p dtm 'effectivename)
(vla-get-effectivename dtm)
(vla-get-name dtm)
));;;
(setq BBB(SSGET "all" (list(cons 0 "INSERT") (assoc 8 (entget entm))))
sdtb (sslength BBB)
idb 0
dt1 (ssadd)
)
(repeat sdtb;;repeat
(setq entb (ssname BBB idb)
idb (1+ idb)
)
(setq ent2(vlax-ename->vla-object entb))
(setq name (if(vlax-property-available-p ent2 'effectivename)
(vla-get-effectivename ent2)
(vla-get-name ent2)
))
(if (= name namem)
(setq dt1 (ssadd entb dt1))
)
);;repeat
)


Cảm ơn bác nhiều.
Cái Lisp của bác quá tuyệt. Sau khi dùng nó thì đã có thể thay ATTSYNC và không lỗi nữa.
  • 0
*** Đời thay đổi khi chúng ta thay đổi ***

#23 minhtri2701

minhtri2701

    biết lệnh copy

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

Đã gửi 29 February 2016 - 11:12 AM

Chào các Bạn

Các bạn vui lòng cho mình hỏi 1 vấn đề liên quan đến thuộc tính của Block như sau:

- Mình muốn thêm thuộc tính mới  hoặc xóa thuộc tính cho 1 block đã có sẵn thuộc tính thì phải làm sau ?, mong Anh em hướng dẫn (vui lòng xem file đính kèm)

cảm ơn http://www.cadviet.c...s/5/64990_1.dwg


  • 0