Đến nội dung


Hình ảnh

edit nhanh 1 nhóm text trong cad


  • Please log in to reply
9 replies to this topic

#1 huyhoa255

huyhoa255

    biết zoom

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

Đã gửi 24 March 2010 - 11:46 PM

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 !
  • 0

#2 dinhcong

dinhcong

    biết vẽ arc

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

Đã gửi 25 March 2010 - 12:16 AM

Mình thấy câu hỏi này hay đấy? Pro nào trả lời giùm cái!
  • 0

#3 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 25 March 2010 - 05:02 AM

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
  • 0

#4 huyhoa255

huyhoa255

    biết zoom

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

Đã gửi 25 March 2010 - 10:29 AM

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
  • 0

#5 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 25 March 2010 - 01:51 PM

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 :
[img]
http://www.cadviet.com/upfiles/2/find.gif
[/img]
:D
  • 0
__Tâm tựa lưu thủY__
Vi nhân nan

#6 huyhoa255

huyhoa255

    biết zoom

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

Đã gửi 25 March 2010 - 02:23 PM

Bạn dùg lệnh Find sau đó thực hiện thế này :
[img]
http://www.cadviet.com/upfiles/2/find.gif
[/img]
:D

đây là file của mình , bạn xem cách thể hiện ghi cốt thép và giúp mình nhé
http://www.cadviet.com/upfiles/2/1_cau_ra_thap_1.rar
  • 0

#7 hdg2318

hdg2318

    biết lệnh mirror

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

Đã gửi 26 March 2010 - 10:05 PM

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)

  • 0

Có 2 cách để nhìn đời:
1 là : coi như chẳng có gì là huyền diệu
2 là : coi như mọi điều đều huyền diệu


Click here


#8 hoquangvinh

hoquangvinh

    biết lệnh mirror

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

Đã gửi 22 September 2016 - 10:07 AM

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


  • 0

#9 victor85

victor85

    biết lệnh stretch

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

Đã gửi 22 September 2016 - 10:35 AM

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!


  • 0

#10 hoquangvinh

hoquangvinh

    biết lệnh mirror

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

Đã gửi 22 September 2016 - 02:28 PM

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


  • 0