Lệnh ED2
Cho phép Edit nhanh Text/Mtext, thay thế trình Editor mặc định của AutoCAD
Lisp mã nguồn mở, miễn phí do AJS sưu tầm!
Đổi font chữ
Hiện lệnh ED2 đang hiển thị tốt đối với Text, bảng mã Unicode. Đối với Mtext phức tạp, bảng mã TCVN và VNI, thì các hiển thị sẽ không chính xác!
Mọi người có thể dùng CHANGETEXTSTYLE (của tác giả HNP) để đổi Font chữ (bảng mã)!
Download CHANGETEXTSTYLE tại https://www.lisp.vn/2025/03/lisp-chuyen-textstyle-mien-phi-doi-bang.html
Mã nguồn ED2
Mã nguồn mở được sưu tầm bởi lisp.vn
1 Thêm class ED2_.lsp
Lưu mã sau dưới dạng tệp tin ED2_.lsp
Code:
;;;;;;edit text, mtext, attribute, text in block
(defun C:ED2 (/ DCLEDITTEXT CURCMD ATT OLDVAL TEXT EDITEXT.DCL FILE_DCL LL)
(setq *ERROR* (defun MY-ERR (MSG)
(cond ((= MSG "Function cancelled") (princ "\t\tUser abort"))
(t (progn (princ MSG) (princ)))
) ;_ end cond
(setq *ERROR* NIL)
(princ)
) ;_ defun
) ;_ end setq
(defun GET-GC (GROUP ENTITY) (cdr (assoc GROUP (entget ENTITY))))
(defun PUT-GC (VALUE GROUP ENTITY / PROPERTIES)
(setq PROPERTIES (entget ENTITY))
(setq PROPERTIES (subst (cons GROUP VALUE) (assoc GROUP PROPERTIES) PROPERTIES))
(entmod PROPERTIES)
) ;_ end defun
(vl-load-com)
(setq DCLEDITTEXT
(list "EDIT: dialog {label = \"Edit text\";initial_focus = \"text\";"
":edit_box {label = \"Text:\"; allow_accept = true; edit_width = 60; key = \"text\";}"
"spacer_1;"
"ok_cancel;}"
) ;_ end list
) ;_ end setq
(setq CURCMD (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(while (/= (setq ATT (car (nentselp "\nSelect Attribute for edit: "))) NIL)
(if (or (= (GET-GC 0 ATT) "ATTRIB")
(= (GET-GC 0 ATT) "TEXT")
(= (GET-GC 0 ATT) "MTEXT")
(= (GET-GC 0 ATT) "DIMENSION")
) ;_ end or
(progn
(setq OLDVAL (GET-GC 1 ATT))
(setq EDITEXT.DCL (vl-filename-mktemp "EditText.dcl")
FILE_DCL (open EDITEXT.DCL "w")
) ;_ end setq
(foreach LL DCLEDITTEXT (write-line LL FILE_DCL))
(close FILE_DCL)
(if (> 0 (setq DCL_ID (load_dialog EDITEXT.DCL)))
(progn (alert "not found file EditText.DCL") (exit))
) ;_ if
(if (not (new_dialog "EDIT" DCL_ID))
(progn (alert "not found EDIT dialog") (exit))
) ;_ if
(set_tile "text" OLDVAL)
(action_tile "accept" "(setq TEXT (get_tile \"text\"))(done_dialog)")
(action_tile "cancel" "(setq TEXT OLDVAL)")
(start_dialog)
(unload_dialog DCL_ID)
(PUT-GC TEXT 1 ATT)
) ;_ end progn
(princ "Select ATTRIB/TEXT/MTEXT/DIMENSION")
) ;_ end if
) ;_ end while
(setvar "CMDECHO" CURCMD)
(vl-file-delete EDITEXT.DCL)
(setq *ERROR* NIL)
(princ)
)hoặc tải từ Mediafire theo link dưới đây =>
Link tải (MediaFire)
---------------------------------------------------------------------------------------------
Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:
Đăng nhận xét