Đến nội dung


Hình ảnh
- - - - -

Lisp sửa bề rộng text của block thuôc tính????


  • Please log in to reply
21 replies to this topic

#1 kokono939

kokono939

    biết vẽ line

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

Đã gửi 18 September 2010 - 02:48 PM

LÀm thế nào để sửa chiều rộng chữ của các đối tượng text ở nhiều đối tượng block thuộc tính 1lúc mà không phải làm thủ công, block vẫn giữ nguyên????
Các bác giúp mình với!
  • 0

#2 kokono939

kokono939

    biết vẽ line

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

Đã gửi 22 September 2010 - 05:22 PM

LÀm thế nào để sửa chiều rộng chữ của các đối tượng text ở nhiều đối tượng block thuộc tính 1lúc mà không phải làm thủ công, block vẫn giữ nguyên????
Các bác giúp mình với!



Hix, không bác nào giúp được em ah.!!!!
  • 0

#3 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 22 September 2010 - 05:29 PM

Hix, không bác nào giúp được em ah.!!!!

Kiên nhẫn chứ bạn. Đây bạn dùng thử xem.
(defun c:textblock (/ C40 ENT H I M N N40 SS SSN ENT1 SSN1)
(vl-load-com)
(princ "\nChon block")
(setq ss (ssget '((0 . "INSERT"))))
(setq i 0)
(setq n (sslength ss))
(setq m -1)
(setq h (getreal "\n Nhap chieu cao chu: "))
(while (< i n)
(setq ssn (ssname ss (setq m (1+ m))))
(setq ent (entget ssn))
(if(= (cdr(assoc 66 ent)) 1)
(progn
(setq ssn1(entnext ssn))
(setq ent1(entget ssn1))
(while (/= (cdr(assoc 0 ent1)) "SEQEND")
(setq c40 (assoc 40 ent1))
(setq n40 (cons 40 h))
(setq ent1 (subst n40 c40 ent1))
(entmod ent1)
(setq ssn1(entnext ssn1))
(setq ent1(entget ssn1))
)
)
)
(setq i (+ 1 i))
)
(vl-cmdf "regen")
(princ)
)

  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#4 kokono939

kokono939

    biết vẽ line

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

Đã gửi 24 September 2010 - 06:09 PM

Kiên nhẫn chứ bạn. Đây bạn dùng thử xem.

(defun c:textblock (/ C40 ENT H I M N N40 SS SSN ENT1 SSN1)
(vl-load-com)
(princ "\nChon block")
(setq ss (ssget '((0 . "INSERT"))))
(setq i 0)
(setq n (sslength ss))
(setq m -1)
(setq h (getreal "\n Nhap chieu cao chu: "))
(while (< i n)
(setq ssn (ssname ss (setq m (1+ m))))
(setq ent (entget ssn))
(if(= (cdr(assoc 66 ent)) 1)
(progn
(setq ssn1(entnext ssn))
(setq ent1(entget ssn1))
(while (/= (cdr(assoc 0 ent1)) "SEQEND")
(setq c40 (assoc 40 ent1))
(setq n40 (cons 40 h))
(setq ent1 (subst n40 c40 ent1))
(entmod ent1)
(setq ssn1(entnext ssn1))
(setq ent1(entget ssn1))
)
)
)
(setq i (+ 1 i))
)
(vl-cmdf "regen")
(princ)
)



Em cảm ơn, nhờ anh thêm phần bề rộng chữ, với cả đưa chữ về middle center không bị nhảy chữ nữa ah!
Như hình bên dưới ah.

http://www.cadviet.c...files/3/111.jpg
  • 0

#5 kokono939

kokono939

    biết vẽ line

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

Đã gửi 28 September 2010 - 11:24 AM

Em cảm ơn, nhờ anh thêm phần bề rộng chữ, với cả đưa chữ về middle center không bị nhảy chữ nữa ah!
Như hình bên dưới ah.

http://www.cadviet.c...files/3/111.jpg



Bác giup em phần bề rộng chữ với ạ!
  • 0

#6 kokono939

kokono939

    biết vẽ line

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

Đã gửi 01 October 2010 - 08:29 AM

Có bác nào giúp em với?
  • 0

#7 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 01 October 2010 - 08:39 AM

Có bác nào giúp em với?


Lệnh Battman
  • 0

#8 w1nDream

w1nDream

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 293 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 01 October 2010 - 09:50 AM

Lệnh Battman


Vậy có cách nào sửa được Block gốc trong Block thuộc tính hok pác?
Em có nhiều Block thuộc tính nhưng fần Block lại bé quá nên muốn chỉnh mà không biết làm thế nào!
:(
  • 0
__Tâm tựa lưu thủY__
Vi nhân nan

#9 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 01 October 2010 - 09:57 AM

Vậy có cách nào sửa được Block gốc trong Block thuộc tính hok pác?
Em có nhiều Block thuộc tính nhưng fần Block lại bé quá nên muốn chỉnh mà không biết làm thế nào!
:(

Lệnh refedit
  • 1

#10 kokono939

kokono939

    biết vẽ line

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

Đã gửi 01 October 2010 - 02:53 PM

Lệnh Battman


Lệnh battman chỉ sửa được block thuộc tính gốc; ko cập nhật thay đổi vào các blpck thuốc tính sao; khi dùng sync thì thay đổi tất cả các block sao trong bản vẽ về nội dung gốc, làm như thế ko được.
Mình thấy lisp của anh y' gần đúng ý em rồi, nhưng tiếc chỉ sửa được chiều cao text, ko sửa được bề rộng text.....( nội dung block vẫn giữ nguyên)
  • 0

#11 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 01 October 2010 - 03:18 PM

Lệnh battman chỉ sửa được block thuộc tính gốc; ko cập nhật thay đổi vào các blpck thuốc tính sao; khi dùng sync thì thay đổi tất cả các block sao trong bản vẽ về nội dung gốc, làm như thế ko được.
Mình thấy lisp của anh y' gần đúng ý em rồi, nhưng tiếc chỉ sửa được chiều cao text, ko sửa được bề rộng text.....( nội dung block vẫn giữ nguyên)

Dạo này bận quá nên không lên thường xuyên được mong bạn thông cảm.

(defun c:textblock (/ C40 ENT H I M N N40 SS SSN ENT1 SSN1 RONG C10 C11 C41 C72 C73 N41 N72 N73)
(vl-load-com)
(princ "\nChon block")
(setq ss (ssget '((0 . "INSERT"))))
(setq i 0)
(setq n (sslength ss))
(setq m -1)
(setq h (getreal "\n Nhap chieu cao chu: "))
(setq rong (getreal "\n Nhap be rong chu: "))
(while (< i n)
(setq ssn (ssname ss (setq m (1+ m))))
(setq ent (entget ssn))
(if(= (cdr(assoc 66 ent)) 1)
(progn
(setq ssn1(entnext ssn))
(setq ent1(entget ssn1))
(while (/= (cdr(assoc 0 ent1)) "SEQEND")
(setq c40 (assoc 40 ent1))
(setq n40 (cons 40 h))
(setq c41 (assoc 41 ent1))
(setq n41 (cons 41 rong))
(setq c11 (assoc 11 ent1))
(setq c10 (cons 11 (cdr(assoc 10 ent1))))
(setq c72 (assoc 72 ent1))
(setq c73 (assoc 73 ent1))
(setq n72 (cons 72 1))
(setq n73 (cons 73 2))
(setq ent1 (subst n40 c40 ent1))
(setq ent1 (subst n41 c41 ent1))
(setq ent1 (subst c10 c11 ent1))
(setq ent1 (subst n72 c72 ent1))
(setq ent1 (subst n73 c73 ent1))
(entmod ent1)
(setq ssn1(entnext ssn1))
(setq ent1(entget ssn1))
)
)
)
(setq i (+ 1 i))
)
(vl-cmdf "regen")
(princ)
)

  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#12 trinhvqh

trinhvqh

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 408 Bài viết
Điểm đánh giá: 222 (khá)

Đã gửi 01 October 2010 - 03:36 PM

Lệnh battman chỉ sửa được block thuộc tính gốc; ko cập nhật thay đổi vào các blpck thuốc tính sao; khi dùng sync thì thay đổi tất cả các block sao trong bản vẽ về nội dung gốc, làm như thế ko được.
Mình thấy lisp của anh y' gần đúng ý em rồi, nhưng tiếc chỉ sửa được chiều cao text, ko sửa được bề rộng text.....( nội dung block vẫn giữ nguyên)


Đúng là trong những trường hợp thế này không có Lisp thì không được.
Rút kinh nghiệm khỏi phải chờ lâu, lần sau bạn nên post sang Topic "Viết lisp theo yêu cầu"
Ở đó nhiều cao thủ lisp sẽ giúp bạn.
  • 1

#13 kokono939

kokono939

    biết vẽ line

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

Đã gửi 02 October 2010 - 08:25 AM

Dạo này bận quá nên không lên thường xuyên được mong bạn thông cảm.


(defun c:textblock (/ C40 ENT H I M N N40 SS SSN ENT1 SSN1 RONG C10 C11 C41 C72 C73 N41 N72 N73)
(vl-load-com)
(princ "\nChon block")
(setq ss (ssget '((0 . "INSERT"))))
(setq i 0)
(setq n (sslength ss))
(setq m -1)
(setq h (getreal "\n Nhap chieu cao chu: "))
(setq rong (getreal "\n Nhap be rong chu: "))
(while (< i n)
(setq ssn (ssname ss (setq m (1+ m))))
(setq ent (entget ssn))
(if(= (cdr(assoc 66 ent)) 1)
(progn
(setq ssn1(entnext ssn))
(setq ent1(entget ssn1))
(while (/= (cdr(assoc 0 ent1)) "SEQEND")
(setq c40 (assoc 40 ent1))
(setq n40 (cons 40 h))
(setq c41 (assoc 41 ent1))
(setq n41 (cons 41 rong))
(setq c11 (assoc 11 ent1))
(setq c10 (cons 11 (cdr(assoc 10 ent1))))
(setq c72 (assoc 72 ent1))
(setq c73 (assoc 73 ent1))
(setq n72 (cons 72 1))
(setq n73 (cons 73 2))
(setq ent1 (subst n40 c40 ent1))
(setq ent1 (subst n41 c41 ent1))
(setq ent1 (subst c10 c11 ent1))
(setq ent1 (subst n72 c72 ent1))
(setq ent1 (subst n73 c73 ent1))
(entmod ent1)
(setq ssn1(entnext ssn1))
(setq ent1(entget ssn1))
)
)
)
(setq i (+ 1 i))
)
(vl-cmdf "regen")
(princ)
)



Thank anh, nhưng em dùng nó lại bị nhảy chữ sau mỗi lần nhập bề rộng chữ, kể cả nhập bề rộng hiện hành cũng nhảy.Anh xem lại.Em post hình bên dưới!


http://www.cadviet.c...iles/3/1111.jpg
  • 0

#14 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 02 October 2010 - 08:33 AM

Thank anh, nhưng em dùng nó lại bị nhảy chữ sau mỗi lần nhập bề rộng chữ, kể cả nhập bề rộng hiện hành cũng nhảy.Anh xem lại.Em post hình bên dưới!
http://www.cadviet.c...iles/3/1111.jpg

Bạn upload block của bạn lên để mình tìm hiểu.
  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#15 kokono939

kokono939

    biết vẽ line

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

Đã gửi 05 October 2010 - 09:26 AM

Bạn upload block của bạn lên để mình tìm hiểu.



Em gửi bác file có block bác xem hộ em!

http://www.cadviet.c.../3/nhay_chu.dwg
  • 0

#16 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 05 October 2010 - 12:05 PM

Em gửi bác file có block bác xem hộ em!

http://www.cadviet.c.../3/nhay_chu.dwg

upload bị lỗi rồi bác ơi.
  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#17 kokono939

kokono939

    biết vẽ line

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

Đã gửi 06 October 2010 - 09:04 AM

upload bị lỗi rồi bác ơi.

Em up lai cho bac' đây ah!

http://www.cadviet.c.../nhay_chu_3.dwg
  • 0

#18 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 06 October 2010 - 10:10 AM

Em up lai cho bac' đây ah!

http://www.cadviet.c.../nhay_chu_3.dwg

Cũng không rõ nữa vẫn báo lỗi thế này.
Hình đã gửi
Nhưng thôi kệ nó đã. Bác test lại với block của bác nhé

(defun c:textblock (/ C40 ENT H I M N N40 SS SSN ENT1 SSN1 RONG C10 C11 C41 C72 C73 N41 N72 N73)
(vl-load-com)
(princ "\nChon block")
(setq ss (ssget '((0 . "INSERT"))))
(setq i 0)
(setq n (sslength ss))
(setq m -1)
(setq h (getreal "\n Nhap chieu cao chu: "))
(setq rong (getreal "\n Nhap be rong chu: "))
(while (< i n)
(setq ssn (ssname ss (setq m (1+ m))))
(setq ent (entget ssn))
(if(= (cdr(assoc 66 ent)) 1)
(progn
(setq ssn1(entnext ssn))
(setq ent1(entget ssn1))
(while (/= (cdr(assoc 0 ent1)) "SEQEND")
(setq c40 (assoc 40 ent1))
(setq n40 (cons 40 h))
(setq c41 (assoc 41 ent1))
(setq n41 (cons 41 rong))
(if (and(/= (cdr(assoc 72 ent1)) 1)(/=(cdr(assoc 73 ent1)) 2))
(progn
(setq c11 (assoc 11 ent1))
(setq c10 (cons 11 (cdr(assoc 10 ent1))))
(setq c72 (assoc 72 ent1))
(setq c73 (assoc 73 ent1))
(setq n72 (cons 72 1))
(setq n73 (cons 73 2))
(setq ent1 (subst c10 c11 ent1))
(setq ent1 (subst n72 c72 ent1))
(setq ent1 (subst n73 c73 ent1))
)
)
(setq ent1 (subst n40 c40 ent1))
(setq ent1 (subst n41 c41 ent1))
(entmod ent1)
(setq ssn1(entnext ssn1))
(setq ent1(entget ssn1))
)
)
)
(setq i (+ 1 i))
)
(entupd ssn)
(princ)
)
Nếu còn bị nhảy thì báo lại cho mình nhé.
  • 1
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#19 vtd_xd

vtd_xd

    biết vẽ circle

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

Đã gửi 06 October 2010 - 11:41 AM

Cũng không rõ nữa vẫn báo lỗi thế này.
Hình đã gửi
Nhưng thôi kệ nó đã. Bác test lại với block của bác nhé


(defun c:textblock (/ C40 ENT H I M N N40 SS SSN ENT1 SSN1 RONG C10 C11 C41 C72 C73 N41 N72 N73)
(vl-load-com)
(princ "\nChon block")
(setq ss (ssget '((0 . "INSERT"))))
(setq i 0)
(setq n (sslength ss))
(setq m -1)
(setq h (getreal "\n Nhap chieu cao chu: "))
(setq rong (getreal "\n Nhap be rong chu: "))
(while (< i n)
(setq ssn (ssname ss (setq m (1+ m))))
(setq ent (entget ssn))
(if(= (cdr(assoc 66 ent)) 1)
(progn
(setq ssn1(entnext ssn))
(setq ent1(entget ssn1))
(while (/= (cdr(assoc 0 ent1)) "SEQEND")
(setq c40 (assoc 40 ent1))
(setq n40 (cons 40 h))
(setq c41 (assoc 41 ent1))
(setq n41 (cons 41 rong))
(if (and(/= (cdr(assoc 72 ent1)) 1)(/=(cdr(assoc 73 ent1)) 2))
(progn
(setq c11 (assoc 11 ent1))
(setq c10 (cons 11 (cdr(assoc 10 ent1))))
(setq c72 (assoc 72 ent1))
(setq c73 (assoc 73 ent1))
(setq n72 (cons 72 1))
(setq n73 (cons 73 2))
(setq ent1 (subst c10 c11 ent1))
(setq ent1 (subst n72 c72 ent1))
(setq ent1 (subst n73 c73 ent1))
)
)
(setq ent1 (subst n40 c40 ent1))
(setq ent1 (subst n41 c41 ent1))
(entmod ent1)
(setq ssn1(entnext ssn1))
(setq ent1(entget ssn1))
)
)
)
(setq i (+ 1 i))
)
(entupd ssn)
(princ)
)
Nếu còn bị nhảy thì báo lại cho mình nhé.



Text không nhảy nữa, nhưng cho tôi hỏi, nếu trong Block đó có nhiều text ATTRIBUTE thi nó đều thay đổi hết, bạn thử chỉnh lại nếu kich vào text nào trong block thì chỉ có text đó thay đổi thôi
Thank bạn
  • 0
Chuc vui ve

#20 w1nDream

w1nDream

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 293 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 06 October 2010 - 01:34 PM

Lệnh refedit


Thks Pác nha.Thật đơn giản mà hiệu quả.
:cheers:
  • 0
__Tâm tựa lưu thủY__
Vi nhân nan