Chuyển đến nội dung
Diễn đàn CADViet
huyhoa255

edit nhanh 1 nhóm text trong cad

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

Chào các bạn , mình đang có vấn đề này nhờ các bạn gỡ dùng . Mình có 1 bản vẽ cốt thép bị lỗi như sau : 1 loại thép số hiệu 10 phi 32a200 , nhưng cũng với thép số hiệu là 10 nhưng có chỗ là phi20a200 hoặc phi 32a150 . Bây giờ mình muốn sửa tất cả thép số hiệu 10 là phi32a200 thì có cách nào nhanh ko ? nếu làm thủ công thì lâu quá.. :D do có rất nhiều bản vẽ , mình đang cần phải nộp gấp , mong các bạn giúp mình !

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
Chào các bạn , mình đang có vấn đề này nhờ các bạn gỡ dùng . Mình có 1 bản vẽ cốt thép bị lỗi như sau : 1 loại thép số hiệu 10 phi 32a200 , nhưng cũng với thép số hiệu là 10 nhưng có chỗ là phi20a200 hoặc phi 32a150 . Bây giờ mình muốn sửa tất cả thép số hiệu 10 là phi32a200 thì có cách nào nhanh ko ? nếu làm thủ công thì lâu quá.. :D do có rất nhiều bản vẽ , mình đang cần phải nộp gấp , mong các bạn giúp mình !

Bạn sử dụng chức năng Replace All trong hộp thoại Find and Replace

 

Chúc thành công

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
Bạn sử dụng chức năng Replace All trong hộp thoại Find and Replace

 

Chúc thành công

cad mình còn gà lắm , bạn có thể nói rõ cho mình được ko ? vì mình phải kiểm tra tất cả các số hiệu khác nữa . Thanks bạn nhiều

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
cad mình còn gà lắm , bạn có thể nói rõ cho mình được ko ? vì mình phải kiểm tra tất cả các số hiệu khác nữa . Thanks bạn nhiều

 

Bạn dùg lệnh Find sau đó thực hiện thế này :

>

:D

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

dùng cách Find and Replace không khả thi, và co bất cập, vì như vậy chỉ thay thế tất cả các ký tự "10" thành "32a150"

===> chưa giải quyết được vấn đề.

 

Nếu bản vẽ của bạn chỉ có 1 loại thép 10-32a150, bạn có thể ẩn hết các đương kích thước đi, rồi copy text theo lệnh TC

(defun copy-add-text-content (mode / err oer sta res sel mtx dim chc chg
		      hig sor rdw dec temp
		      sou data)
;											
 (defun err(s)
   (if (and (/= s "Function cancelled")(/= s "quit / exit abort"))
     (princ (strcat "\n--->> Error: " s))
     )
   (res)
   )
;											
 (defun res()
   (if hig (setvar "HighLight" hig))
   (if sor (setvar "Sortents" sor))
   (if pst (setvar "Pickstyle" pst))
   (if rdw (chc 0))
   (command "_.Undo" "_End")
   (setq *error* oer)
   (setvar "Cmdecho" 1)
   (princ)
   )
;											
 (defun sta()
   (setq oer *error*
  *error* err
  hig (getvar "HighLight")
  sor (getvar "Sortents")
  pst (getvar "Pickstyle")
  dec (getvar "Dimdec")
  )
   (setvar "Cmdecho" 0)
   (command "_.Undo" "_Group")
   (setvar "HighLight" 1)
   (setvar "Sortents" 1)
   (setvar "Pickstyle" 0)
   (graphscr)
   )
;											
 (defun sel(/ loop lis typ intro)
   (if (null del-mode)(setq del-mode "0"))
   (if (null mat-mode)(setq mat-mode "0"))
   (setq loop T
  lis '("TEXT" "MTEXT" "DIMENSION" "ARCALIGNEDTEXT")
  )
   (if (= mode 0)
     (setq intro "\nSelect copy source text ")
     (setq intro "\nSelect additon source text ")
     )
   (while loop
     (initget "Exit Delete Match MD DM")
     ;(setq del T);;;
     (setq sou (entsel (strcat intro "[Delete source("del-mode")/Match properties("mat-mode")]: ")))
     (cond
((= sou "Exit")(exit))
((null sou)(exit))
((= sou "Delete")
 (if (= del-mode "0")
   (setq del-mode "1")
   (setq del-mode "0")
   )
 )
((= sou "Match")
  (if (= mat-mode "0")
   (setq mat-mode "1")
   (setq mat-mode "0")
   )
  )
((or (= sou "MD")(= sou "DM"))
  (progn
    (if (= del-mode "0")
      (setq del-mode "1")
      (setq del-mode "0")
      )
    (if (= mat-mode "0")
      (setq mat-mode "1")
      (setq mat-mode "0")
      )
    )
  )
((progn
   (setq data (entget (car sou))
	 typ (cdr (assoc 0 data))
	 )
   (if (not (member typ lis))
     (princ "Invalid selection.")
     (progn
       (setq temp (assoc 1 data)
	     loop nil
	     )
       (cond
	 ((= typ "MTEXT")(mtx))
	 ((= typ "DIMENSION")(dim))
	 )
       )
     ); if end
   ))
); cond end
     )
   (chc 1)
   (setq rdw T)
   )
;											
 (defun mtx(/ con test)
   (setq con (cdr temp)
  test (substr con 1 1)
  )
   (if (= test "\\")(setq temp (cons 1 (substr con 5))))
   )
;											
 (defun dim(/ con)
   (setq con (cdr temp))
   (if (or (= con "")(= con "<>"))
     (setq temp (cons 1 (rtos (cdr (assoc 42 data)) 2 dec)))
     )
   )
;											
 (defun chc(mode / col)
   (cond
     ((and (= del-mode "1") (= mat-mode "0"))(setq col "230"))
     ((and (= del-mode "0") (= mat-mode "1"))(setq col "110"))
     ((and (= del-mode "1") (= mat-mode "1"))(setq col "30"))
     ((setq col "140"))
     )
   (if (= mode 0)
     (progn
(command "_.Chprop" sou "" "_Color" "BYLAYER" "")
(redraw (car sou) 4)
)
     (progn
(command "_.Chprop" sou "" "_Color" col "")
(redraw (car sou) 3)
)
     )
   )
;											
 (defun chg(/ ss inc data-)
   (if (= mode 0)
     (princ "\nSelect destiantion texts to change: ")
     (princ "\nSelect destiantion texts to add: ")
     )
   (setq ss (ssget '((-4 . "<OR")
	      (0 . "TEXT")(0 . "MTEXT")(0 . "DIMENSION")(0 . "ARCALIGNEDTEXT")
	      (-4 . "OR>")
	      )))
   (if (null ss)(exit))
   (setq inc 0)
   (repeat (sslength ss)
     (setq data- (entget (ssname ss inc))
    inc (1+ inc))
     (if (= mode 1)
(setq temp (cons 1 (strcat (cdr (assoc 1 data-)) "x" (cdr temp))))
)
     (entmod (subst temp (assoc 1 data-) data-))
     )
   (if (= mat-mode "1")
     (progn
(if rdw (chc 0))
(command "_.MatchProp" sou ss "")
)
     )
   (if (= del-mode "1")
     (progn
(entdel (car sou))
(setq rdw nil)
)
     )
   )
;											
 (sta)
 (sel)
 (chg)
 (res)
 )

(defun c:TC()(copy-add-text-content 0))
(defun c:TD()(copy-add-text-content 1))
(princ)

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

dùng cách Find and Replace không khả thi, và co bất cập, vì như vậy chỉ thay thế tất cả các ký tự "10" thành "32a150"

===> chưa giải quyết được vấn đề.

 

Nếu bản vẽ của bạn chỉ có 1 loại thép 10-32a150, bạn có thể ẩn hết các đương kích thước đi, rồi copy text theo lệnh TC

 

(defun copy-add-text-content (mode / err oer sta res sel mtx dim chc chg
hig sor rdw dec temp
sou data)
;
(defun err(s)
(if (and (/= s "Function cancelled")(/= s "quit / exit abort"))
(princ (strcat "\n--->> Error: " s))
)
(res)
)
;
(defun res()
(if hig (setvar "HighLight" hig))
(if sor (setvar "Sortents" sor))
(if pst (setvar "Pickstyle" pst))
(if rdw (chc 0))
(command "_.Undo" "_End")
(setq *error* oer)
(setvar "Cmdecho" 1)
(princ)
)
;
(defun sta()
(setq oer *error*
*error* err
hig (getvar "HighLight")
sor (getvar "Sortents")
pst (getvar "Pickstyle")
dec (getvar "Dimdec")
)
(setvar "Cmdecho" 0)
(command "_.Undo" "_Group")
(setvar "HighLight" 1)
(setvar "Sortents" 1)
(setvar "Pickstyle" 0)
(graphscr)
)
;
(defun sel(/ loop lis typ intro)
(if (null del-mode)(setq del-mode "0"))
(if (null mat-mode)(setq mat-mode "0"))
(setq loop T
lis '("TEXT" "MTEXT" "DIMENSION" "ARCALIGNEDTEXT")
)
(if (= mode 0)
(setq intro "\nSelect copy source text ")
(setq intro "\nSelect additon source text ")
)
(while loop
(initget "Exit Delete Match MD DM")
;(setq del T);;;
(setq sou (entsel (strcat intro "[Delete source("del-mode")/Match properties("mat-mode")]: ")))
(cond
((= sou "Exit")(exit))
((null sou)(exit))
((= sou "Delete")
(if (= del-mode "0")
(setq del-mode "1")
(setq del-mode "0")
)
)
((= sou "Match")
(if (= mat-mode "0")
(setq mat-mode "1")
(setq mat-mode "0")
)
)
((or (= sou "MD")(= sou "DM"))
(progn
(if (= del-mode "0")
(setq del-mode "1")
(setq del-mode "0")
)
(if (= mat-mode "0")
(setq mat-mode "1")
(setq mat-mode "0")
)
)
)
((progn
(setq data (entget (car sou))
typ (cdr (assoc 0 data))
)
(if (not (member typ lis))
(princ "Invalid selection.")
(progn
(setq temp (assoc 1 data)
loop nil
)
(cond
((= typ "MTEXT")(mtx))
((= typ "DIMENSION")(dim))
)
)
); if end
))
); cond end
)
(chc 1)
(setq rdw T)
)
;
(defun mtx(/ con test)
(setq con (cdr temp)
test (substr con 1 1)
)
(if (= test "\\")(setq temp (cons 1 (substr con 5))))
)
;
(defun dim(/ con)
(setq con (cdr temp))
(if (or (= con "")(= con "<>"))
(setq temp (cons 1 (rtos (cdr (assoc 42 data)) 2 dec)))
)
)
;
(defun chc(mode / col)
(cond
((and (= del-mode "1") (= mat-mode "0"))(setq col "230"))
((and (= del-mode "0") (= mat-mode "1"))(setq col "110"))
((and (= del-mode "1") (= mat-mode "1"))(setq col "30"))
((setq col "140"))
)
(if (= mode 0)
(progn
(command "_.Chprop" sou "" "_Color" "BYLAYER" "")
(redraw (car sou) 4)
)
(progn
(command "_.Chprop" sou "" "_Color" col "")
(redraw (car sou) 3)
)
)
)
;
(defun chg(/ ss inc data-)
(if (= mode 0)
(princ "\nSelect destiantion texts to change: ")
(princ "\nSelect destiantion texts to add: ")
)
(setq ss (ssget '((-4 . "<OR")
(0 . "TEXT")(0 . "MTEXT")(0 . "DIMENSION")(0 . "ARCALIGNEDTEXT")
(-4 . "OR>")
)))
(if (null ss)(exit))
(setq inc 0)
(repeat (sslength ss)
(setq data- (entget (ssname ss inc))
inc (1+ inc))
(if (= mode 1)
(setq temp (cons 1 (strcat (cdr (assoc 1 data-)) "x" (cdr temp))))
)
(entmod (subst temp (assoc 1 data-) data-))
)
(if (= mat-mode "1")
(progn
(if rdw (chc 0))
(command "_.MatchProp" sou ss "")
)
)
(if (= del-mode "1")
(progn
(entdel (car sou))
(setq rdw nil)
)
)
)
;
(sta)
(sel)
(chg)
(res)
)

(defun c:TC()(copy-add-text-content 0))
(defun c:TD()(copy-add-text-content 1))
(princ)

lisp này dùng tốt rồi nhưng nếu muốn đổi màu các đối tuợng đã thay đổi giá trị thì làm sao nhỉ

nhờ các bạn giúp đỡ với

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ìm cách filer lọc chọn nguyên lấy các đối tượng text cần quan tâm. Rồi vào property (ctrl+1) tìm mục content paste cái d32a200 vào đó thì tất cả các text sẽ có cùng 1 nội dung mon muốn mà ko cần lisp. Thâ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

Tìm cách filer lọc chọn nguyên lấy các đối tượng text cần quan tâm. Rồi vào property (ctrl+1) tìm mục content paste cái d32a200 vào đó thì tất cả các text sẽ có cùng 1 nội dung mon muốn mà ko cần lisp. Thân!

lisp này mình có dùng cho nhiều trường hợp nữa chứ ko phải chỉ thay 1 giá trị bằng giá trị khác (cái này tất nhiên cad cũng làm được nhưng lisp nó tiện hơn thôi)

vì thế nên mình cần đánh dấu các giá trị text thay đổi

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


×