Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
tuvanthietke.hcm

Có lisp nào biết các text đơn lẻ thành 1 mtext không?

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

ketxu    2.652

1.Lệnh txt2mtxt ( thuộc bộ Express ) bạn ạ

1.2 : explode tất cả Mtext ra r lại dùng txt2mtxt (to lisp ok)

Hoặc tạm dùng :

(defun C:jt (/ i ent obj  obj1 ss btwtxt)
(vl-load-com)  
(princ "\nSelect First Text or MText Entity: ")
(while (not (and (setq ss (ssget (list (cons 0 "TEXT,MTEXT"))))
			  (setq ent (ssname ss 0))
			  (setq obj1 (vlax-ename->vla-object ent))
		 )
	)
 (princ "\nError with selection please select again: ")  
)
(if(=(cdr(assoc 0 (entget ent))) "MTEXT")
 (setq btwtxt "\\P") ;Return in MText.
 (setq btwtxt " ")   ;Or space between Text selections.
)
(redraw(ssname(ssget "P")0)3) ;Highlight First selection.
(princ "\nSelect text or mtext entities to add to first: ")	  
(setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))
   ss (ssget ":S" (list (cons 0 "TEXT,MTEXT")))
   i 0 ;Start with first selection.
)
(if(ssmemb ent ss)(ssdel ent ss))
; Don't delete First selection if selected again.
(repeat (sslength ss)
 (vla-startundomark thisdrawing)
 (setq ent (ssname ss i)
	obj (vlax-ename->vla-object ent)
	i	 (1+ i) ;increment to next selection.
 )
 (if(= btwtxt " ")
  (while(vl-string-search "\\P" (vla-get-textstring obj))
(vla-put-textstring obj
(vl-string-subst " " "\\P" (vla-get-textstring obj))
)
  )
 )
 (vla-put-textstring obj1 
(strcat 
(vla-get-textstring obj1)
btwtxt
(vla-get-textstring obj)		  
) 
 )
 (vla-delete obj)
 (vla-endundomark thisdrawing)
)
(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

1.Lệnh txt2mtxt ( thuộc bộ Express ) bạn ạ

1.2 : explode tất cả Mtext ra r lại dùng txt2mtxt (to lisp ok)

Hoặc tạm dùng :

(defun C:jt (/ i ent obj  obj1 ss btwtxt)
(vl-load-com)  
(princ "\nSelect First Text or MText Entity: ")
(while (not (and (setq ss (ssget (list (cons 0 "TEXT,MTEXT"))))
			  (setq ent (ssname ss 0))
			  (setq obj1 (vlax-ename->vla-object ent))
		 )
	)
 (princ "\nError with selection please select again: ")  
)
(if(=(cdr(assoc 0 (entget ent))) "MTEXT")
 (setq btwtxt "\\P") ;Return in MText.
 (setq btwtxt " ")   ;Or space between Text selections.
)
(redraw(ssname(ssget "P")0)3) ;Highlight First selection.
(princ "\nSelect text or mtext entities to add to first: ")	  
(setq thisdrawing (vla-get-activedocument (vlax-get-acad-object))
   ss (ssget ":S" (list (cons 0 "TEXT,MTEXT")))
   i 0 ;Start with first selection.
)
(if(ssmemb ent ss)(ssdel ent ss))
; Don't delete First selection if selected again.
(repeat (sslength ss)
 (vla-startundomark thisdrawing)
 (setq ent (ssname ss i)
	obj (vlax-ename->vla-object ent)
	i	 (1+ i) ;increment to next selection.
 )
 (if(= btwtxt " ")
  (while(vl-string-search "\\P" (vla-get-textstring obj))
(vla-put-textstring obj
(vl-string-subst " " "\\P" (vla-get-textstring obj))
)
  )
 )
 (vla-put-textstring obj1 
(strcat 
(vla-get-textstring obj1)
btwtxt
(vla-get-textstring obj)		  
) 
 )
 (vla-delete obj)
 (vla-endundomark thisdrawing)
)
(princ)
)

 

 

Sao mình down lisp không được, còn cái txt2mtxt thì nó đâu giữ nguyên dòng cho các text đâu, nó chuyển thành mtext mà các text lại liền nhau, không như ý muố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
ketxu    2.652

1.Mình k trả lời được

2.Có người muốn gộp dòng, có người muốn tách dòng, Vậy tốt nhất bạn hãy trình bày ý tưởng của bạn = file CAD để người đọc có thể hiểu ý tưởng của bạn mà lại không làm tốn thời gian

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

1.Mình k trả lời được

2.Có người muốn gộp dòng, có người muốn tách dòng, Vậy tốt nhất bạn hãy trình bày ý tưởng của bạn = file CAD để người đọc có thể hiểu ý tưởng của bạn mà lại không làm tốn thời gian

 

Bạn có thể up file nên chỗ khác khác không? cảm ơ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
hieudesign    2

khi dùng lệnh txt2mtxt với 2 đoạn, 2 từ với nhau thì phải ở dạng dtext.-> sẽ trả về kết quả là dạng mtext

nếu bạn muốn nối theo dạng ghi chú, có nhiều dòng và một mtext có sự sắp xếp dòng trên dòng dưới thì theo cách đặt vị trí trước khi bạn nối là 0ke! 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ạ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

Đăng nhập để thực hiện theo  

×