Đến nội dung


Hình ảnh
- - - - -

[Yêu Cầu]Thay đổi Text trong Block (Text không phải thuộc tính)


  • Please log in to reply
6 replies to this topic

#1 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 22 January 2014 - 08:00 AM

Hi anh em,

Mình có một Block có chứa một chuỗi Text (Text này không phải là Attribute nhé). Vậy có lisp nào có thể thay đổi nội dụng của Text này hay ko nhỉ? (Cách làm tay thì mình đã biết, nhưng do số lượng bản vẽ chứa Block n ày n hiều nên mình muốn tự động công việc này)

Nếu được xin ội người giúp đỡ nhé.

Thanks so much!


  • 0

Thanks and Best Regards

Skype : dinhvantrang73


#2 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 22 January 2014 - 08:23 AM

Bấm lệnh BE, CHọn block. Rồi sửa thôi


  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#3 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 22 January 2014 - 08:43 AM

Nếu muốn thay hàng loạt thì bạn gởi bản vẽ lên, nêu rõ yêu cầu thay A bằng B như thế nào nhé. Lisp làm được chuyện này.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#4 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 22 January 2014 - 09:02 AM

Nếu muốn thay hàng loạt thì bạn gởi bản vẽ lên, nêu rõ yêu cầu thay A bằng B như thế nào nhé. Lisp làm được chuyện này.

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

Đây Mr Hà ơi, bên Layout mình có khung tên, là một Block mình muốn thay đổi chữ "CONTRACTOR" thành chữ "SUB-CONTRACTOR".Phiền Mr Hà và mọi người quá mục và giúp đỡ mình nhé

Thanks so much!


  • 0

Thanks and Best Regards

Skype : dinhvantrang73


#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 22 January 2014 - 09:14 AM

Bạn có thể đưa 1 ví dụ tổng quát tí, chứ chỉ 1 khung thì sao phải lisp?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#6 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 22 January 2014 - 10:15 AM

Hi anh em,

Mình có một Block có chứa một chuỗi Text (Text này không phải là Attribute nhé). Vậy có lisp nào có thể thay đổi nội dụng của Text này hay ko nhỉ? (Cách làm tay thì mình đã biết, nhưng do số lượng bản vẽ chứa Block n ày n hiều nên mình muốn tự động công việc này)

Nếu được xin ội người giúp đỡ nhé.

Thanks so much!

Lisp EditText sử dụng cho :

- Text và MText

- Text trong Dim

- Text trong block (thay đổi tất cả Text của block có trong bản vẽ)

- Text trong block attribute

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
	  (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
	  (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
	  (/= str ""))
      (progn
	(vla-StartUndoMark doc)
	(vla-put-TextString obj str)
	(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
	(vla-EndUndoMark doc)  )))
  (princ))

 

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))
 
(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))
 

  • 3

#7 dinhvantrang

dinhvantrang

    biết lệnh copy

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

Đã gửi 22 January 2014 - 10:52 AM

Lisp EditText sử dụng cho :

- Text và MText

- Text trong Dim

- Text trong block (thay đổi tất cả Text của block có trong bản vẽ)

- Text trong block attribute

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
	  (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
	  (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
	  (/= str ""))
      (progn
	(vla-StartUndoMark doc)
	(vla-put-TextString obj str)
	(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
	(vla-EndUndoMark doc)  )))
  (princ))

 

(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))
 
(defun c:EditText ( / doc e obj str)
  ;; By : Gia_Bach 2014  
  (vl-load-com) 
  (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  (while (setq e (car (nentsel)))
    (if (and
 (wcmatch (vla-get-ObjectName (setq obj(vlax-ename->vla-object e))) "*Text,*Attribute")
 (setq str (getstring T (strcat "Input new value <" (vla-get-TextString obj) "> : ")))
 (/= str ""))
      (progn
(vla-StartUndoMark doc)
(vla-put-TextString obj str)
(vla-regen (vla-get-ActiveDocument (vlax-get-acad-object)) acAllViewports)
(vla-EndUndoMark doc)  )))

Thanks Gia_Bach nhiều nhé


  • 0

Thanks and Best Regards

Skype : dinhvantrang73