quocmanh04tt
-
Số lượng nội dung
1123 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
153
Bài đăng được đăng bởi quocmanh04tt
-
-
17 phút trước, loststars đã nói:Hoặc là lisp tự nhận những chữ "Ế Ị Í Ó" trong tcvn3 là những chữ "Õ Þ Ý ã" thuộc bảng unicode rồi nên lips không convert nữa.
Thêm 1 chút nữa:
1. Bạn gõ 1 text có các ký tự: "Ế Ị Í Ó" bằng TCVN3 (font mà mã) trong cad (không bao gồm các ký tự khác nhé - chỉ các ký tự bị lỗi).
2. Dùng lisp này:
(defun c:tt (/ e)
(if (setq e (car (entsel "\nPick Text: ")))
(vl-string->list (cdr (assoc 1 (entget e))))))Pick vào text, sẽ có kết quả ở command, copy nó và gửi lên đây!
-
Bạn làm theo sau và gửi thông tin mình kiểm tra nhé!
1. Chọn 1 dòng text trên file của bạn (dòng text mà sẽ bị lỗi khi convert) - (đây là text kiểm tra - "TKT").
2. Copy "TKT" ra và convert, được "TCV" (cái này sẽ lỗi 1 số ký tự như bạn nói).
3. Copy "TCV" ra và hiệu chỉnh lại các lỗi ký tự được "THC".
4. Tải lisp này:
5. Chọn 3 text ở trên, lisp sẽ xuất ra 1 file .txt, chứa ký tự nội dung của 3 text trên.
6. Bạn chụp màn hình nội dung file .txt đó, và gửi file .txt đó kèm theo hình cho mình. Mình sẽ kiểm tra giúp bạn.
-
1
-
-
-
18 giờ trước, loststars đã nói:
E test thử cho nhiều máy, thì máy đc máy không ạ. font unicode thì hiện tại em khá đủ r. k lẽ Arial là font cơ bản nhất máy cũng thiếu ạ :|
Với lại e gõ trong cad vẫn ra bình thường ạ nên em đang nghĩ có thể là cad đang encode sai ạ.Bạn thử lisp dưới đây xem sao! Nếu không được nữa thì có lẽ nên thay Cad, Win, hoặc máy... hehehe...
P/s: Chỉ dùng cho TCVN3 -> UNICODE.
-
1
-
-
Bạn thử làm theo hướng dẫn này xem có thay đổi gì không nhé!
Tải lisp ở dưới.
1. Hoặc: load lisp convert trước, sau đó load lisp của mình, => rồi dùng lệnh.
2. Hoặc copy nội dung trong lisp của mình, paste vào lisp convert (vào vị trí cuối của lisp convert nhé!).
-
1
-
-
1- Bạn đang dùng hệ điều hành gì? Nếu là win8, 10 thì thử xem có giống thế này không? (ảnh dưới).
2- Tại sao không copy thẳng từ trang này rồi cho vào vlide, mà phải qua nhiều bước vậy?
3- Ở bài trên, sau khi convert 1 số chữ vẫn bị lỗi, bạn gửi file dwg đã convert và chỉnh sửa cho mình xem nào!
P/s: Ở ý 1, nếu là hệ điều hành khác thì bạn thử tìm hiểu qua từ khóa "setting code page" xem sao.
-
1
-
-
3 giờ trước, loststars đã nói:e dùng file vlx mà bác. cái lsp của bác e chỉ check lại xem thôi. e nghĩ nó vẫn đang bị encode sai khi gọi lệnh vào cad.
Với file dwg của bạn, bạn thử cách này xem sao nhé!
- Load lisp ở trên.
- Copy đoạn này: (defun DetectFont (str) "tcvn") Paste vào command, rồi enter.
- Dùng các lệnh CF...
P/s: Ngoài ra còn cách khác (Auto hơn), nhưng bạn cứ thử cách đó xem sao đã (để xem encode... như bạn nói nó thế nào).
-
2
-
-
2 phút trước, Doan Nguyen Van đã nói:Đối với bản vẽ này thì đúng là có thể quét 1 phát được, nhưng em phòng trường hợp ở bản vẽ khác có các Polyline khác nằm trong khung bao. Bác có cao kiến gì ở trường hợp đó không?
- Tất nhiên nó không hoàn toàn cho mọi trường hợp, bởi vậy cần chuẩn hóa...!
- Kiểu bản vẽ này, pline bao ngoài nằm ở layer "Defpoints" (Mình đoán: mục đích là để không in ra) -> khác biệt với pline khác.
-
Không hiểu sao... Mình thì lại thích quét 1 phát!???
-
1
-
-
-
Nhìn code đã bung, với người biết lisp thì ... không còn gì để nói nữa.
-
Dựa vào ý tưởng trên, mình viết lại tổng hợp lại thành 1 lệnh, tổng hợp các trường hợp canh lề (và bổ sung thêm Spacing), áp dụng cho Text và Mtext. Lệnh CLT.
-
1
-
1
-
-
LISP SO SÁNH
trong AutoLisp
Quá tam 3 bận. Em xin rút lui để nhường chỗ cho các bác! Dạo này cái đầu của em nó tối tăm quá!
-
27 phút trước, dotuanth đã nói:file này anh dùng phần mềm gì để nó hiển thị được như vậy ạ.
-
LISP SO SÁNH
trong AutoLisp
-
LISP SO SÁNH
trong AutoLisp
Lỗi ở khâu trình bày vấn đề. Mình đoán mò và trượt.
-
1
-
-
LISP SO SÁNH
trong AutoLisp
Bạn thử lại cái này xem sao:
(defun c:tt (/ e l m s _n) (setq _n (lambda (txt / str) (setq str (cdr (assoc 1 (entget txt)))) (substr str (1+ (strlen (vl-string-right-trim "0123456789" str)))))) (if (setq s (ssget '((0 . "TEXT")))) ((lambda (n) (while (and (setq e (ssname s 0)) (ssdel e s)) (setq l (cons e l))) (while (> (length l) 1) (setq m 0) (if (> (strlen (_n (car l))) 0) (foreach x (cdr l) (if (eq (_n x) (_n (car l))) (progn (entmod (append (entget x) (list (cons 62 n)))) (setq l (vl-remove x l)) (setq m (1+ m)))))) (if (> m 0) (progn (entmod (append (entget (car l)) (list (cons 62 n)))) (setq n (cond ((< n 254) (1+ n)) (2))))) (setq l (cdr l)))) 2)) (princ)) -
LISP SO SÁNH
trong AutoLisp
Chủ thớt thử cái này xem (quét 1 phát):
(defun c:tt (/ e lst m n ss)
(if (setq ss (ssget '((0 . "TEXT"))))
(progn (setq n 2)
(while (and (setq e (ssname ss 0)) (ssdel e ss)) (setq lst (cons e lst)))
(setq lst (vl-sort lst
'(lambda (a b) (< (strlen (cdr (assoc 1 (entget a)))) (strlen (cdr (assoc 1 (entget b))))))))
(while (> (length lst) 1)
(setq m 0)
(foreach x (cdr lst)
(if (wcmatch (cdr (assoc 1 (entget x))) (strcat "*" (cdr (assoc 1 (entget (car lst))))))
(progn (entmod (append (entget x) (list (cons 62 n))))
(setq lst (vl-remove x lst))
(setq m (1+ m)))))
(if (> m 0)
(progn (entmod (append (entget (car lst)) (list (cons 62 n))))
(setq n (cond ((< n 254) (1+ n))
(2)))))
(setq lst (cdr lst)))))
(princ))-
1
-
-
Tuân Tử nói:
“Người chê ta mà chê phải là thầy của ta, người khen ta mà khen phải là bạn ta, những kẻ vuốt ve, nịnh bợ chính là kẻ thù của ta vậy”.
P/s: Mình không quen Tuân Tử nhé!

-
AUTOCAD 2020
trong Sử dụng AutoCAD
-
Còn đây là file lisp "chuyển đổi" từ 2 file .dll ở trên, có thể chạy trên các đời cad (tuy nhiên phụ thuộc 2 file gốc ở trên của tác giả).
-
1
-
-
Trên diễn đàn chưa thấy (hoặc chưa tìm thấy) code xuất ra file text (.txt, .csv) Unicode từ HEXA, nếu các bác ủng hộ mình sẽ viết 1 tut hướng dẫn cụ thể tạo string để write to unicode (chỉ hướng dẫn, còn code thì các bác tự làm). (Nếu có rồi, hoặc biết rồi thì xin bỏ qua).
P/s: - Không cần hỗ trợ của VB, code chính thì đã có trên diễn đàn (của Admin)- chỉ có string chưa phù hợp thì nó ra chữ Tàu, và mình đọc trong topic đó không xuống hàng được (break line).
-
1
-
-
54 phút trước, Danh Cong đã nói:Ví dụ đơn giản cho việc chèn point vào text.
Trong đây có tất cả các thứ bạn cần. Hãy tự tìm hiểu.
(defun c:CP ( / ENAME OBJECT PT)
(setq object (ssget '((0 . "TEXT"))))
(repeat (sslength object)
(progn
(setq Ename (ssname object 0))
(if (= (assoc 10 (entget Ename)) "nil")
(setq PT (cdr (assoc 10 (entget Ename))))
(setq PT (cdr (assoc 11 (entget Ename))))
); end if
(command "Point" PT)
(ssdel Ename object)
); end progn
); end repeat
(princ)
)Có khi nào có trường hợp này xảy ra đối với TEXT không ta: (= (assoc 10 (entget Ename)) "nil") ???
-
1
-
-
Hehehe... Người ta muốn 0, cho 0 không được thì cho 1. Thoáng quá!...


Lisp Chuyển Đổi Mã Font Chữ Trong Autocad
trong AutoLisp
Đã đăng · Trả lời báo cáo
Text nguồn của nó gồm những chữ gì?