Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
5 replies to this topic

#1 tuvanthietke.hcm

tuvanthietke.hcm

    biết lệnh array

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

Đã gửi 22 February 2011 - 12:31 PM

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

Có nhiều text, và mtext có cách nào cộng chúng vào thành 1 mtext mới o?
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 22 February 2011 - 01:16 PM

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)
)

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 tuvanthietke.hcm

tuvanthietke.hcm

    biết lệnh array

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

Đã gửi 22 February 2011 - 02:18 PM

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

#4 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 22 February 2011 - 02:26 PM

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

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 tuvanthietke.hcm

tuvanthietke.hcm

    biết lệnh array

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

Đã gửi 22 February 2011 - 03:01 PM

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

#6 hieudesign

hieudesign

    biết pan

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

Đã gửi 19 May 2014 - 11:00 AM

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


  • 0