Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
36 replies to this topic

#1 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 07:04 AM

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


  • -1

#2 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 09:06 AM

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é :)


  • 0

#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 25 June 2015 - 11:30 AM

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ề,.....


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 12:51 PM

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é.


  • 0

#5 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 12:57 PM

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...iew?usp=sharing

 


  • 0

#6 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 25 June 2015 - 04:59 PM

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...iew?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))
)
 

  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#7 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 05:54 PM

 

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.


  • 0

#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 25 June 2015 - 06:42 PM

Lỗi do diễn đàn. Sửa giúp bạn đây.

http://www.cadviet.c...67029_trale.zip


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#9 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 06:49 PM

Lỗi do diễn đàn. Sửa giúp bạn đây.

http://www.cadviet.c...67029_trale.zip

He

Để mình thử xem. Vừa repply xong mà đã có trả lời này.

Test luôn


  • 0

#10 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 09:48 PM

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.


  • 0

#11 nhatminhrd

nhatminhrd

    biết vẽ circle

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

Đã gửi 25 June 2015 - 11:18 PM

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.

  • 0

#12 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2015 - 09:19 AM

http://www.cadviet.c...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é.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#13 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 26 June 2015 - 11:41 AM

Ớ, có công cụ của cháu và bác Hạ viết r mà nhỉ ^^
  • 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


#14 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2015 - 02:12 PM

 

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.suikawi...org/string?s=É


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#15 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2015 - 02:23 PM

Ớ, 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ử....


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 26 June 2015 - 02:35 PM

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

http://www.cadviet.c..._convert_ha.zip


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#17 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 26 June 2015 - 02:39 PM

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

 


  • 0

#18 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2015 - 03:46 PM

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 ???


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#19 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2015 - 03:49 PM

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

http://www.cadviet.c..._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 ạ.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#20 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 26 June 2015 - 06:47 PM

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 :)


  • 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