Đến nội dung


Hình ảnh

Chuyển Dtext Thành Mtext Và Setp Justify Cho Mtext Vừa Chuyển


  • Please log in to reply
5 replies to this topic

#1 mrphuocvie

mrphuocvie

    biết vẽ ellipse

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

Đã gửi 24 February 2016 - 09:07 PM

(defun c:mc()
	(setq ss (ssget '((0 . "*TEXT"))))
	(foreach en (acet-ss-to-list ss)
		(command "_txt2mtxt" en "")
		(acet-tjust en "MC"); set justify cho Mtext vua moi chuyen thanh
		)
)

Em tìm thấy code chuyển Dtext thành Mtext, nhưng em không tìm thấy nút để trả lời bên topic đó nên mạo mụi tạo topic này.

Tình hình là em muốn setup justify cho Mtext vừa được tạo ra nhưng làm hoài không được. Nhờ mọi người sửa giúp!

Cảm ơn!

(defun c:mc()
    (setq ss (ssget '((0 . "*TEXT"))))
    (foreach en (acet-ss-to-list ss)
        (command "_txt2mtxt" en "")
        (acet-tjust en "MC"); set justify cho Mtext vua moi chuyen thanh
        )
)


Bài viết đã được chỉnh sửa nội dung bởi mrphuocvie: 24 February 2016 - 09:09 PM

  • 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 25 February 2016 - 08:20 AM

Quick code.
- Đánh dấu entlast e cuối cùng trước khi thực hiện lệnh txt2mtxt
- Sau khi thực hiện lệnh txt2mtxt thì tìm tất cả các entity mới sinh bằng hàm _getNews (entnext từ e đến hết)

- Put align point của Mtext mới thành 5 (Middle center)
- À mình sửa dòng command để biến tất cả thành 1 Mtext, nếu bạn thích biến từng text một thì giữ nguyên dòng command nhé

(defun c:mc(/ ss e _getNews)
	;Quick collect after e :
	(defun _getNews (e / l)
		(cond (e (while (setq e (entnext e))(setq l (cons e l)))))
	)
	(setq ss (ssget '((0 . "*TEXT"))) e (entlast))   
    (command "_txt2mtxt" ss "")	
	(foreach e (mapcar 'vlax-ename->vla-object  (_getNews e))
		(vla-put-AttachmentPoint e 5)
	)
)

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

mrphuocvie

    biết vẽ ellipse

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

Đã gửi 25 February 2016 - 03:05 PM

 

Quick code.
- Đánh dấu entlast e cuối cùng trước khi thực hiện lệnh txt2mtxt
- Sau khi thực hiện lệnh txt2mtxt thì tìm tất cả các entity mới sinh bằng hàm _getNews (entnext từ e đến hết)

- Put align point của Mtext mới thành 5 (Middle center)
- À mình sửa dòng command để biến tất cả thành 1 Mtext, nếu bạn thích biến từng text một thì giữ nguyên dòng command nhé

(defun c:mc(/ ss e _getNews)
	;Quick collect after e :
	(defun _getNews (e / l)
		(cond (e (while (setq e (entnext e))(setq l (cons e l)))))
	)
	(setq ss (ssget '((0 . "*TEXT"))) e (entlast))   
    (command "_txt2mtxt" ss "")	
	(foreach e (mapcar 'vlax-ename->vla-object  (_getNews e))
		(vla-put-AttachmentPoint e 5)
	)
)

Thật làm phiền anh quá! Nhờ a sửa lại giúp. Em muốn chuyển từng text một.


  • -1

#4 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 25 February 2016 - 04:31 PM

 

(defun c:mc()
	(setq ss (ssget '((0 . "*TEXT"))))
	(foreach en (acet-ss-to-list ss)
		(command "_txt2mtxt" en "")
		(acet-tjust en "MC"); set justify cho Mtext vua moi chuyen thanh
		)
)

Em tìm thấy code chuyển Dtext thành Mtext, nhưng em không tìm thấy nút để trả lời bên topic đó nên mạo mụi tạo topic này.

Tình hình là em muốn setup justify cho Mtext vừa được tạo ra nhưng làm hoài không được. Nhờ mọi người sửa giúp!

Cảm ơn!

(defun c:mc()
    (setq ss (ssget '((0 . "*TEXT"))))
    (foreach en (acet-ss-to-list ss)
        (command "_txt2mtxt" en "")
        (acet-tjust en "MC"); set justify cho Mtext vua moi chuyen thanh
        )
)

 

Cấu trúc hàm  (acet-tjust ss A) trong đó : ss là tập selection set.

Do đó code của bạn chỉnh lại :) :

(defun c:mc(/ ss s)
    (setq ss (ssget '((0 . "TEXT"))) s (ssadd))
    (foreach en (acet-ss-to-list ss)
        (command "_txt2mtxt" en "") (setq s (ssadd (entlast) s)) )
        (acet-tjust s "MC"); set justify cho Mtext vua moi chuyen thanh
       )


  • 1

#5 mrphuocvie

mrphuocvie

    biết vẽ ellipse

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

Đã gửi 25 February 2016 - 04:44 PM

Cấu trúc hàm  (acet-tjust ss A) trong đó : ss là tập selection set.

Do đó code của bạn chỉnh lại :) :

(defun c:mc(/ ss s)
    (setq ss (ssget '((0 . "TEXT"))) s (ssadd))
    (foreach en (acet-ss-to-list ss)
        (command "_txt2mtxt" en "") (setq s (ssadd (entlast) s)) )
        (acet-tjust s "MC"); set justify cho Mtext vua moi chuyen thanh
       )

Tối hôm qua, em cũng tìm cách chọn lại đối tượng vừa được chọn từ selectionset ss nhưng không biết cách.

Thanks pphung183.


  • 0

#6 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 February 2016 - 05:52 PM

Thêm cách dùng JUSTIFYTEXT

(defun c:mc()
    (setq ss (ssget '((0 . "TEXT"))))
    (foreach en (acet-ss-to-list ss)
        (command "_txt2mtxt" en "" "JUSTIFYTEXT" "L" "" "MC")
        )
)

  • 1