Chuyển đến nội dung
Diễn đàn CADViet
khanhtrinhcmb

Xin giúp đỡ về font unicode trong Lisp

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

Em chào các Anh/Chị.

Em nhờ Anh/Chị giúp đỡ em vấn đề sau ạ. Em đang sử dụng cái lisp để vẽ cái mặt cắt chuyên môn, trước giờ thì font chữ của nó là VNI, giờ cty áp dụng mẫu font thống nhất, em vào đổi font qua unicode mà nó báo lỗi.

Để khắc phục lỗi này em phải làm như thế nào ạ, em cảm ơn các Anh/Chị nhiều.

loi font.jpg

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ôi không biết viết Lisp, chỉ thấy cái nào phù hợp rồi mò sửa thôi.

Vấn đề của bạn tôi mò ra được trang web như hình đính kèm

Ví dụ chữ Bề dày lớpbạn phải viết là B\U+1EC1 d\U+00E0y l\U+1EDBp. Nhớ dấu \ trước chữ U nha

 

Capture.PNG

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
4 giờ trước, vietduc147258 đã nói:

Tôi không biết viết Lisp, chỉ thấy cái nào phù hợp rồi mò sửa thôi.

Vấn đề của bạn tôi mò ra được trang web như hình đính kèm

Ví dụ chữ Bề dày lớpbạn phải viết là B\U+1EC1 d\U+00E0y l\U+1EDBp. Nhớ dấu \ trước chữ U nha

 

Capture.PNG

Không hiểu sao bác luôn viết câu "Tôi không biết viết Lisp" làm chi vậy bác? Đâu có ai yêu cầu đâu nhỉ! !))

  • Like 1

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 giờ trước, 7o7 đã nói:

Không hiểu sao bác luôn viết câu "Tôi không biết viết Lisp" làm chi vậy bác? Đâu có ai yêu cầu đâu nhỉ! !))

Có ý định nhờ vả đó. Tôi cũng định nhờ viết dùm đó mà. Ai biết mảng nào thì giúp nhau mảng đó thôi.

Bạn đó viết được cái main là lisp... còn tôi chỉ giúp được cái chữ hiển thị. Cũng không biêt ngoài cách đó ra còn có cách nào khác không? Vì không học gì về lisp cả

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

Vấn đề của bạn có 2 thứ cần lưu ý:

- Lsp file chỉ đọc thành công ở định dạng ANSI, chỉ hỗ trợ đến 256 ký tự (tàn tích của hệ điều hành cũ). Tiếng Việt có dấu nằm ngoài vùng này nên không thể lưu thành Ansi encode được vì vậy khi vượt quá 256 cần phải có 1 tập hợp 7 ký tự để đại diện cho 1 ký tự unicode, thực chất chỉ có 4 ký tự phía sau là khác . VD: 'ề" = '\U+1EC1"

- Gõ Unicode vào lsp file như thế nào cho tiện: Nếu có hàm chuyển mã vni->unicode thì bọc luôn chuỗi ký tự cần chuyển mã, nếu không có thì nên gõ 1 dòng DTEXT mà bạn cần chuyển vào Cad, dùng lệnh CCL để copy nội dung sang clipboard rồi paste nó vào lisp. 

Dòng "MẶT BẰNG TẦNG 1" sẽ ra như vậy: "M\U+1EB6T B\U+1EB0NG T\U+1EA6NG 1"

 

(defun SetClipText(str / html result)
    (if (= 'STR (type str))
        (progn
            (setq html   (vlax-create-object "htmlfile")
                result (vlax-invoke (vlax-get (vlax-get html 'ParentWindow) 'ClipBoardData) 'setData "Text" str)
            )
            (vlax-release-object html)
            str
        )
    );end if
)

(defun c:CCL ()
  
         (SetClipText (acet-dxf 1 (entget (car (entsel "\nChon text copy clipboard") ))))
  )

  • Like 1
  • Vote tăng 1

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

×