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

[Yêu Cầu] Lisp Thay Text Theo Từ Điển Có Sẵn

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

Chào cả nhà. Em nhờ các bác giúp viết lisp thực hiện việc sau:

(Em dùng CAD 2014 và Office 2013)

 

+ Bản vẽ CAD có nhiều text tiếng Anh.

+ File excel có 2 cột ENG và VIE

+ Gọi Lisp load từ điển (LTD)

+ Gọi Lisp thực hiện (TTD)

+ Chọn text muốn thay --> thay hết từ text ENGn thành VIEn tương ứng.

 

Minh hoạ:

 

Ex_zpsvwmbroxq.png

 

CAD_zpsffxp28vm.png

  • Vote giảm 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

Bác nào có kinh nghiệm và thời gian giúp em với. Em cám ơn nhiều ạ. CF nhé :)

Hề hề hề,

File excel của bạn là file csv hay xls hay xlsx ......

Có thể gửi cái file đó lên không hay là thuộc bí mật " cuốc ra "

Yêu cầu không quá khó nhưng vốn lười nên chả muốn lập từ điển làm chi.

Hề hề hề,.....

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âng thank bác quan tâm nhé.

 

+ File Excel thông thường thôi, *.xlsx (gửi kèm ví dụ, để em copy thêm vào nữa là ok thôi, chắc tầm 100 dòng là cùng). Gồm 2 cột, cột A là ENG, cột B là VIE - không áp  dụng file dạng từ điển đâu ạ, làm cái này cho mọi người cùng tham gia được, copy & paste là được - thông minh như học sinh lớp vỡ lòng cũng làm được :)

+ File CAD mẫu gửi kèm

 

Thank bác nhiều nhé.

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

File gửi kèm đây bác nhé.

 

Up file lên CADVIET chạy một tẹo lại dừng hình, em up tạm lên Google Drive nhé.

 

https://drive.google.com/file/d/0BynyU6Yz8YzXME9VVEV2anBtRW8/view?usp=sharing

Hề hề hề,

Có một vấn đề là trên file bản vẽ bạn sử dụng font của text là fonts Arial. 

Khi chuyển text tiếng Việt từ file excel sang bản vẽ thì bị hiển thị sai. Do đó trong file từ điển của bạn phải nhập sẵn các text tiếng Việt theo mà Unicode thì khi chuyển sang CAD mới đúng được bạn ạ.

Đây là lisp mình viết, bạn hãy dùng thử nó với file data.csv mà mình chuyển một phần của file data.xlsx của bạn sang các mả unicode mà mình biết nhé.

 

(defun c:trale ()
(setq  fn (getfiled "Select Data File" "" "csv" 0)
            f (open fn "r")
            txl nil
)
(while  (/= (setq str (read-line f)) nil) 
(setq tls (separate str ","))
(setq txl (append txl (list tls)))
)
(setq sst (acet-ss-to-list (ssget (list (cons 0 "text")))))
(foreach txt sst
   (foreach tl txl
       (if (= (cdr (assoc 1 (entget txt))) (car tl))
           (entmod (subst (cons 1 (cadr tl)) (assoc 1 (entget txt)) (entget txt)))
       )
   )
)
)
 
;;;;;;;;;;;;;;;;;;;;;
(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
      (setq i (1+ i) ch (substr S i 1))
      (if (= ch sym) (progn
(setq
     L (append L (list (substr S 1 (- i 1))))
     S (substr S (1+ i) (- (strlen S) i))
     i 0
)
      )) 
)
(append L (list S))
)
 

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

 

Hề hề hề,

Có một vấn đề là trên file bản vẽ bạn sử dụng font của text là fonts Arial. 

Khi chuyển text tiếng Việt từ file excel sang bản vẽ thì bị hiển thị sai. Do đó trong file từ điển của bạn phải nhập sẵn các text tiếng Việt theo mà Unicode thì khi chuyển sang CAD mới đúng được bạn ạ.

Đây là lisp mình viết, bạn hãy dùng thử nó với file data.csv mà mình chuyển một phần của file data.xlsx của bạn sang các mả unicode mà mình biết nhé.

(defun c:trale ()
(setq  fn (getfiled "Select Data File" "" "csv" 0)
            f (open fn "r")
            txl nil
)
(while  (/= (setq str (read-line f)) nil) 
(setq tls (separate str ","))
(setq txl (append txl (list tls)))
)
(setq sst (acet-ss-to-list (ssget (list (cons 0 "text")))))
(foreach txt sst
   (foreach tl txl
       (if (= (cdr (assoc 1 (entget txt))) (car tl))
           (entmod (subst (cons 1 (cadr tl)) (assoc 1 (entget txt)) (entget txt)))
       )
   )
)
)
 
;;;;;;;;;;;;;;;;;;;;;
(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
      (setq i (1+ i) ch (substr S i 1))
      (if (= ch sym) (progn
(setq
     L (append L (list (substr S 1 (- i 1))))
     S (substr S (1+ i) (- (strlen S) i))
     i 0
)
      )) 
)
(append L (list S))
)
 

 

 

Mình load AP cái lisp lên bình thường. Khi gọi lệnh thì báo lỗi này là sao bạn?

Command: ; error: syntax error

 

Thank bạn.

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

Thank các bác, Lisp đã chạy được rồi. Mỗi tội chưa hiển thị đúng font tiếng việt do sai mã.

 

Bây giờ phải làm sao tạo được cái file CSV mà chứa được mã unicode dùng cho font Arial ??? Để ngâm cứu tiếp. Bác nào biết hướng dẫn giúp cho nhanh với.

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

Hic hic

 

:( Đã mần lên xuống Google, dùng Not++ để edit nhưng vẫn chưa tạo được file CSV một cách hoàn chỉnh. Khi LISP hoạt động vẫn còn một số ký tự không hiển thị đúng tiếng Việt như là: ả ế ự ... bị chuyển thành dấu ""?""

 

Lẽ nào phải bỏ qua mấy ký tự này???  :unsure:

 
Có cách nào khắc phục không? Các cao thủ chỉ giáo với.

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

http://www.cadviet.com/upfiles/5/5194_data.rar

 

 

Hic hic

 

:( Đã mần lên xuống Google, dùng Not++ để edit nhưng vẫn chưa tạo được file CSV một cách hoàn chỉnh. Khi LISP hoạt động vẫn còn một số ký tự không hiển thị đúng tiếng Việt như là: ả ế ự ... bị chuyển thành dấu ""?""

 

Lẽ nào phải bỏ qua mấy ký tự này???  :unsure:

 
Có cách nào khắc phục không? Các cao thủ chỉ giáo với.

 

Hề hề hề,

 

ả = \U+1EA3

ế = 

ự = \U+1EF1

 

Các ký tự khác mình vẫn chưa biết hết nên không giúp bạn được. Bạn chịu khó sưu tầm thêm nhé.

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

 

Hic hic

 

:( Đã mần lên xuống Google, dùng Not++ để edit nhưng vẫn chưa tạo được file CSV một cách hoàn chỉnh. Khi LISP hoạt động vẫn còn một số ký tự không hiển thị đúng tiếng Việt như là: ả ế ự ... bị chuyển thành dấu ""?""

 

Lẽ nào phải bỏ qua mấy ký tự này???  :unsure:

 
Có cách nào khắc phục không? Các cao thủ chỉ giáo với.

 

Hề hề hề,

Bạn có thể vào địa chỉ sau để tra cứu các ký tự Unicode tương ứng với những ký tự bạn cần, mình cũng vừa mò thấy.

 

http://chars.suikawiki.org/string?s=E%CC%81

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

Ớ, có công cụ của cháu và bác Hạ viết r mà nhỉ ^^

Hề hề hề,

Đúng là có cái file vlx của bác ĐoanVanHa đã viết nhưng hơi khó xài. Nếu bác ketxu có cái nào giản tiện hơn, dễ tra cứu hơn có thể share cho mọi người xài thử....

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

Gõ bằng bộ Gõ Tiếng việt của tác giả Kỳ Nam nhỉ, bật lên là gõ thoải mái tự nó nhảy sang hexa.

G\U+00F5 b\U+1EB1ng b\U+1ED9 g\U+00F5 ti\U+1EBFng Vi\U+1EC7t c\U+1EE7a t\U+00E1c gi\U+1EA3 K\U+1EF3 Nam nh\U+1EC9, b\U+1EADt l\U+00EAn v\U+00E0 g\U+00F5 tho\U+1EA3i m\U+00E1i t\U+1EF1 n\U+00F3 nh\U+1EA3y sang HeXa

141736_gtv4.gif

 

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

Gõ bằng bộ Gõ Tiếng việt của tác giả Kỳ Nam nhỉ, bật lên là gõ thoải mái tự nó nhảy sang hexa.

G\U+00F5 b\U+1EB1ng b\U+1ED9 g\U+00F5 ti\U+1EBFng Vi\U+1EC7t c\U+1EE7a t\U+00E1c gi\U+1EA3 K\U+1EF3 Nam nh\U+1EC9, b\U+1EADt l\U+00EAn v\U+00E0 g\U+00F5 tho\U+1EA3i m\U+00E1i t\U+1EF1 n\U+00F3 nh\U+1EA3y sang HeXa

141736_gtv4.gif

hề hề hề, 

Bạn có phần mềm này và có thể chia sẻ cho mọi người xài không??? Hay là phải có phí ??? Phí bao nhiêu vậy ???

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

Có gì mà khó xài trời? Xài lại thử mê mẩn người!  :D

http://www.cadviet.com/upfiles/5/67029_convert_ha.zip

Hề hề hề,

Có nhẽ tại mình vẫn xài Cad2004 nên nó không hiển thị các text theo bảng mã đó ra được. Trên giao diện hộp thoại chỉ có các mã mà không biết mã đó tương ứng với ký tự nào bá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

Trong bô lisplib ketxu cũng gắn sẵn nó vào rồi.

Nếu tool nhỏ riêng ketxu cũng post lâu rồi, ở đây, hay đây . Cùng trong topic đó còn nhiều vấn đề đang thảo luận dở 

Dùng bộ GoTiengViet như bác Tháistreet đã chia sẻ cũng hay n có cái dở là lúc nhìn lại để sửa ...

Lisp của bác Hạ thì dùng sẵn trong CAD rồi, bác cũng có thể sử dụng cũng được. Lúc chuyển qua lại giữa màn hình vlide và màn hình lệnh convert hơi vướng tí thôi

Nhưng nói chung thì dùng cách nào cũng coi như thỏa mãn yêu cầu rồi nên k ai thảo luận thêm nữa :)

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

Có gì mà khó xài trời? Xài lại thử mê mẩn người!  :D

http://www.cadviet.com/upfiles/5/67029_convert_ha.zip

 

MÌNH download VÀ DÙNG CÁI NÀY SAO NÓ BÁO NIL NHỈ?

( ĐÃ ĐƯA EXEL VỀ *.CSV RỒI VÀ NHẬP ĐƯỢC FILE TỪ ĐIỂN)

NHỜ CÁC CAO NHÂN CỈ GIÁO!

TRÂN TRỌNG!

  • Vote tăng 2

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

À MÌNH XÀI CÁI TRALE.LSP CỦA ANH HẠ CHỈNH LẠI ẤY!

1). Tôi đang tâm sự về unicode chuyển qua hexa, không liên quan gì tới file csv hay xls.

2). Nếu tôi nhớ không nhầm thì chưa từng viết lisp nào có tên là "TRALE.LSP". 

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

MÌNH download VÀ DÙNG CÁI NÀY SAO NÓ BÁO NIL NHỈ?

( ĐÃ ĐƯA EXEL VỀ *.CSV RỒI VÀ NHẬP ĐƯỢC FILE TỪ ĐIỂN)

NHỜ CÁC CAO NHÂN CỈ GIÁO!

TRÂN TRỌNG!

Bạn đang hỏi cái gì? Lisp này không liên quan tới csv hay xls.

File trale.lsp là tôi sửa do lỗi forum, chứ không phải của tôi.

Cuối cùng là tôi vẫn không hiểu bạn đang nói gì, cần gì, hay tranh luận vấn đề gì.

  • 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

×