Đến nội dung


Hình ảnh
- - - - -

Nhờ Chỉnh Sửa Lisp Replac Text


  • Please log in to reply
7 replies to this topic

#1 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 27 August 2016 - 10:55 AM

;=========================================================================
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=18049
(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)

em sưu tầm trên diễn đàn cái lisp replace text rất hay, làm việc khá hiệu quả với nó. Em muốn nó có thể làm việc được với block att, Bác nào rảnh tay giúp em với. Em xin cám ơn, Chúc các bác luôn mạnh khỏe.


  • 0

#2 manhtung

manhtung

    Chưa sử dụng CAD

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

Đã gửi 27 August 2016 - 11:00 AM

e ko biết đăng bài mới uppp ké mong mọi người giúp đỡ

E có 1 tọa độ nhà máy nhưng khi xuất lisp nó ra lằng ngoằng ko đúng.Mợi người có cách nào sắp xếp tọa độ cho cho xuất Lisp thành 1 hình vẽ ko cắt kohttp://www.cadviet.c...6/155111_ny.txt

 

 

Thanks


  • 0

#3 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 27 August 2016 - 11:05 AM

e ko biết đăng bài mới uppp ké mong mọi người giúp đỡ

E có 1 tọa độ nhà máy nhưng khi xuất lisp nó ra lằng ngoằng ko đúng.Mợi người có cách nào sắp xếp tọa độ cho cho xuất Lisp thành 1 hình vẽ ko cắt kohttp://www.cadviet.c...6/155111_ny.txt

 

 

Thanks

bạn vào forum, kéo xuống dưới thấy mục autolisp, bạn vào đó, góc trên bên phải màn hình có chữ gửi bài mới, bạn vào đó đăng bài mới. ok, bạn vào đó đăng bài đúng quy định nhé.


  • 0

#4 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 29 August 2016 - 11:29 AM

;=========================================================================
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=18049
(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)

em sưu tầm trên diễn đàn cái lisp replace text rất hay, làm việc khá hiệu quả với nó. Em muốn nó có thể làm việc được với block att, Bác nào rảnh tay giúp em với. Em xin cám ơn, Chúc các bác luôn mạnh khỏe.

Hề hề, chắc các bác dạo này bận nên là chưa xem ngó qua được cái lisp cho em, hoặc lời văn của em tối nghĩa nên các bác chưa hiểu rõ yêu cầu, hì, em xin nói lại yêu cầu trợ giúp là: các bác có thể giúp em làm cho lisp có thể replace text của block att, yêu cầu của em nếu quá đáng thì các bác bỏ qua cho. Chúc các bác luôn mạnh khỏe, có nhiều cống hiến cho ngành kỹ thuật.


  • 0

#5 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 30 August 2016 - 03:48 PM

Hề hề, chắc các bác dạo này bận nên là chưa xem ngó qua được cái lisp cho em, hoặc lời văn của em tối nghĩa nên các bác chưa hiểu rõ yêu cầu, hì, em xin nói lại yêu cầu trợ giúp là: các bác có thể giúp em làm cho lisp có thể replace text của block att, yêu cầu của em nếu quá đáng thì các bác bỏ qua cho. Chúc các bác luôn mạnh khỏe, có nhiều cống hiến cho ngành kỹ thuật.

Hề hề hề,

Bạn đặt vấn đề không rõ ràng nên khó có kết quả. Bạn muốn text nguồn là attribute hay text đich là attribute???? Hay là cả nguồn và đích đều là attribute.???


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 30 August 2016 - 03:52 PM

Hề hề hề,

Bạn đặt vấn đề không rõ ràng nên khó có kết quả. Bạn muốn text nguồn là attribute hay text đich là attribute???? Hay là cả nguồn và đích đều là attribute.???

 

Cảm ơn bác đã hồi âm, em muốn text đích là attribute. Mong bác ra tay giúp đỡ. Cảm ơn bác và anh em cộng đồng cadviet nhiều.


  • 0

#7 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 30 August 2016 - 05:53 PM

Cảm ơn bác đã hồi âm, em muốn text đích là attribute. Mong bác ra tay giúp đỡ. Cảm ơn bác và anh em cộng đồng cadviet nhiều.

Hề hề hề,

Bạn dùng thủ cái này coi sao. Mình sửa lại một chút để có thể cả text nguồn và đích đều là các thuộc tính.

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/165503-nho-chinh-sua-lisp-replac-text/
;=========================================================================
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=18049
(defun copy-add-text-content (mode / err oer sta res sel mtx dim chc chg
     hig sor rdw dec temp a b 
     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 (nentsel (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")(0 . "INSERT")
     (-4 . "OR>")
     )))
    (if (null ss)(exit))
    (setq inc 0)
    (repeat (sslength ss)
      (setq data- (entget (ssname ss inc))
   inc (1+ inc))
       (setq a (ssname ss (1- inc)))
      (if (= (cdr (assoc 0 data-)) "INSERT")
          (progn
                
                 (alert "\n Doi tuong chon là block.")
                 (setq b (ssadd a))
                 (sssetfirst ss b)
                 (setq data- (entget (car (nentsel "\n  Ban hay pick lai thuoc tinh can thay doi"))))
           )
       )
      (if (= mode 1)
(setq temp (cons 1 (strcat (cdr (assoc 1 data-)) "x" (cdr temp))))
)
      (entmod (subst temp (assoc 1 data-) data-))
      (entupd a)
      )
    (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)

  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#8 jangboko

jangboko

    biết vẽ arc

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

Đã gửi 30 August 2016 - 08:49 PM

 

Hề hề hề,

Bạn dùng thủ cái này coi sao. Mình sửa lại một chút để có thể cả text nguồn và đích đều là các thuộc tính.

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/165503-nho-chinh-sua-lisp-replac-text/
;=========================================================================
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=18049
(defun copy-add-text-content (mode / err oer sta res sel mtx dim chc chg
     hig sor rdw dec temp a b 
     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 (nentsel (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")(0 . "INSERT")
     (-4 . "OR>")
     )))
    (if (null ss)(exit))
    (setq inc 0)
    (repeat (sslength ss)
      (setq data- (entget (ssname ss inc))
   inc (1+ inc))
       (setq a (ssname ss (1- inc)))
      (if (= (cdr (assoc 0 data-)) "INSERT")
          (progn
                
                 (alert "\n Doi tuong chon là block.")
                 (setq b (ssadd a))
                 (sssetfirst ss b)
                 (setq data- (entget (car (nentsel "\n  Ban hay pick lai thuoc tinh can thay doi"))))
           )
       )
      (if (= mode 1)
(setq temp (cons 1 (strcat (cdr (assoc 1 data-)) "x" (cdr temp))))
)
      (entmod (subst temp (assoc 1 data-) data-))
      (entupd a)
      )
    (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)

hề hề, thơm và ngon rồi, em cám ơn bác.


  • 0