Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
ssg

Hướng dẫn lập trình Lisp

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

Có khi một chữ cái của nó lại phải gõ tới dăm ba ký tự ấy chứ, thế thì chắc là cái hàm vl-string-translate nó ngoẻo là đúng thôi bạn ạ.

Chào bạn Tuanthietkedien.

Chữ cái của nó nhiều hơn dăm ba kí tự nhiều bác Bình à

Đó chính là nguyên nhân dẫn đến Lisp của bạn không chạy được.

 

Bạn gửi cái file của bạn lên đây có 2 chữ CAD-2008 gồm 2 dòng.

Bạn nói rằng :

Lúc đầu em nghĩ nếu chuyển được ABC thành 123 thì cũng có thể chuyển được ABC tiếng Anh thành ABC tiếng Nhật.

Phải chăng dòng đầu CAD-2008 là chữ tiếng Anh. Dòng thứ 2 : CAD-2008 là chữ Tiếng Nhật.

Và ý của bạn muốn biến chữ CAD tiếng Anh thành chữ CAD tiếng Nhật.

Và đoạn lệnh (vl-string-translate "ABC" "ABC" nd) này phải chăng "ABC" là chữ Tiếng Anh; "ABC" chính là chữ "ABC" tiếng Nhật.

Mong bạn hãy giải thích thật rõ ràng thì mọi người mới có thể giúp bạn được.

Chào 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
Chào bạn Tuanthietkedien.

Chữ cái của nó nhiều hơn dăm ba kí tự nhiều bác Bình à

Đó chính là nguyên nhân dẫn đến Lisp của bạn không chạy được.

 

Bạn gửi cái file của bạn lên đây có 2 chữ CAD-2008 gồm 2 dòng.

Bạn nói rằng :

 

Phải chăng dòng đầu CAD-2008 là chữ tiếng Anh. Dòng thứ 2 : CAD-2008 là chữ Tiếng Nhật.

Và ý của bạn muốn biến chữ CAD tiếng Anh thành chữ CAD tiếng Nhật.

Và đoạn lệnh (vl-string-translate "ABC" "ABC" nd) này phải chăng "ABC" là chữ Tiếng Anh; "ABC" chính là chữ "ABC" tiếng Nhật.

Mong bạn hãy giải thích thật rõ ràng thì mọi người mới có thể giúp bạn được.

Chào bạn.

 

Chào bạn Tue_NV

Đúng là dòng đầu CAD-2008 là chữ tiếng Anh. Dòng thứ 2 : CAD-2008 là chữ Tiếng Nhật. "ABC" là chữ Tiếng Anh; "ABC" chính là chữ "ABC" tiếng Nhật. Bạn thấy chữ tiếng Nhật trông nó mập hơn phải không, nhưng khi vào Autocad trông nó lại nhỏ gọn hơn chữ tiếng Anh.

Mình up lại file khác rõ ràng hơn. À, bạn copy bổ sung font này vào thư mục Font của CAD luôn nha.

Kết quả sau khi mình dùng Lisp 2 để chuyển "ABC" chữ Tiếng Anh thành "ABC" chữ tiếng Nhật thì nó ra như vậy: bD-2008 .

Mong mọi người chỉ giáo cách khắc phục.

 

http://www.cadviet.com/upfiles/Drawing2_13.dwg

http://www.cadviet.com/upfiles/extfont2.shx

 

@phamthanhbinh:

Mình không giận bạn đâu, mình đều là anh em trên diễn đàn hết mà, mọi người góp ý chứng tỏ là có sự quan tâm, sao mình lại giận được, có như vậy thì mình mới ngày càng tiến bộ được chứ.

Cám ơn bạn luôn quan tâm, giúp đỡ nha.

Chúc bạn và mọi người 1 tuần mới làm việc vui vẻ, thành công.

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

Em muốn số hóa nội dung trong text, cụ thể như A thành 1, B thành 2, C thành 3, D thành 4, E thành 5.

.........................

Ví dụ : Text nội dung là CAD-2008 sau khi chạy lisp chuyển thành 314-2008.

.............

 

Chào anh SSG

Trước tiên em đã dùng thử vl-string-translate, và viết được 2 cái lisp sau

1. Lisp chuyển ABC thành 123

.......................

 

2. Lisp chuyển ABC tiếng Anh thành ABC tiếng Nhật.

(defun c:hk ( / e d nd td )
;;;  (setq chuoi_tim (getstring t "Enter string to search for: ")
;;;	chuoi_thaythe (getstring t "Enter string to replace with: "))
 (setq chuoi_tim "A"
chuoi_thaythe "A")  
 (setq e (car(entsel))
d (entget e)
nd (cdr(assoc 1 d))
td (vl-string-subst chuoi_thaythe chuoi_tim nd)
d (subst (cons 1 td) (assoc 1 d) d)
)
 (entmod d)
 (princ)
 )

  • 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
Chào bạn Tue_NV

Đúng là dòng đầu CAD-2008 là chữ tiếng Anh. Dòng thứ 2 : CAD-2008 là chữ Tiếng Nhật. "ABC" là chữ Tiếng Anh; "ABC" chính là chữ "ABC" tiếng Nhật. Bạn thấy chữ tiếng Nhật trông nó mập hơn phải không, nhưng khi vào Autocad trông nó lại nhỏ gọn hơn chữ tiếng Anh.

Mình up lại file khác rõ ràng hơn. À, bạn copy bổ sung font này vào thư mục Font của CAD luôn nha.

Kết quả sau khi mình dùng Lisp 2 để chuyển "ABC" chữ Tiếng Anh thành "ABC" chữ tiếng Nhật thì nó ra như vậy: bD-2008 .

Mong mọi người chỉ giáo cách khắc phục.

Chào bạn Tuanthietkedien

Mở file bạn ra -> bấm lệnh ed (ddedit) thì chữ CAD-2008 trong Tiếng Nhật là chữ này :

\M+18262\M+18260\M+18263\M+1815B\M+18251\M+1824F\M+1824F\M+18257

Tức là chữ C trong tiếng Nhựt tương đương với chữ \M+18262 (trong tiếng Anh)

Tức là chữ A trong tiếng Nhựt tương đương với chữ \M+18260 (trong tiếng Anh)

Tức là chữ D trong tiếng Nhựt tương đương với chữ \M+18263 (trong tiếng Anh)

Ta có thể suy ra :

Chữ B trong tiếng Nhựt tương đương với chữ \M+18261 (trong tiếng Anh)

Chữ E trong tiếng Nhựt tương đương với chữ \M+18264 (trong tiếng Anh)

Tương tự, suy ra dấu -, chữ số 2; 0; 8 tương đương với chữ gì trong tiếng Anh

 

Nếu điều suy luận của mình là đúng thì bạn có thể dùng hàm vl-string-subst như bác gia bách đã chỉ

Hoặc có thể sử dụng như thế này : (if (= te1 "A") (setq te1 "\\M+18260"))

Tức là nếu biến te1 ="A" trong chữ tiếng Anh thì gán cho biến te1 bằng chữ "\M+18260" (tức là chữ "A" trong tiếng Nhựt)

 

Bạn hãy trả lời cho mình biết, những điều mình nói trên đúng hay không vì mình cũng đang có ý tưởng để trợ giúp cho bạn.

Chào bạn

  • 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
Chào bạn Tuanthietkedien

Mở file bạn ra -> bấm lệnh ed (ddedit) thì chữ CAD-2008 trong Tiếng Nhật là chữ này :

\M+18262\M+18260\M+18263\M+1815B\M+18251\M+1824F\M+1824F\M+18257

Tức là chữ C trong tiếng Nhựt tương đương với chữ \M+18262 (trong tiếng Anh)

Tức là chữ A trong tiếng Nhựt tương đương với chữ \M+18260 (trong tiếng Anh)

Tức là chữ D trong tiếng Nhựt tương đương với chữ \M+18263 (trong tiếng Anh)

Ta có thể suy ra :

Chữ B trong tiếng Nhựt tương đương với chữ \M+18261 (trong tiếng Anh)

Chữ E trong tiếng Nhựt tương đương với chữ \M+18264 (trong tiếng Anh)

Tương tự, suy ra dấu -, chữ số 2; 0; 8 tương đương với chữ gì trong tiếng Anh

 

Nếu điều suy luận của mình là đúng thì bạn có thể dùng hàm vl-string-subst như bác gia bách đã chỉ

Hoặc có thể sử dụng như thế này : (if (= te1 "A") (setq te1 "\\M+18260"))

Tức là nếu biến te1 ="A" trong chữ tiếng Anh thì gán cho biến te1 bằng chữ "\M+18260" (tức là chữ "A" trong tiếng Nhựt)

 

Bạn hãy trả lời cho mình biết, những điều mình nói trên đúng hay không vì mình cũng đang có ý tưởng để trợ giúp cho bạn.

Chào bạn

 

Chào bạn Tue_NV

Không hiểu sao khi mình dùng lệnh ed (ddedit) thì chữ CAD-2008 kiểu gõ Tiếng Nhật vẫn ra chữ CAD-2008 như bình thường. Dấu -, chữ số 2; 0; 8 vẫn hiện ra bình thường. Bạn thử xem lại máy đã cài font tiếng Nhật chưa ( trong Control Panel \ Regional and Language options ), bạn dùng đĩa cài WinXp bỏ vào ổ đĩa, sau đó vào đường dẫn mình đã chỉ rồi check vào cái ô mình khoanh tròn đỏ, sau đó nhấp Apply là cài được. Bạn cũng xem thử Text Style trong CAD có giống mình hay không nhe. Có lẽ vì thế mà máy của bạn nó thể hiện như vậy.

 

http://www.cadviet.com/upfiles/Book2_2.xls

 

Sau khi bạn cài xong rồi xem lại thử xem có còn tình trạng như vậy hay không nhé.

 

@Bác gia_bach:

Em giải thích lý do làm cái lisp thay thế chữ này để bác hiểu thêm. Tất cả những bản vẽ công ty làm sẽ gửi qua bên Nhật, do đó họ yêu cầu dùng kiểu gõ tiếng Nhật. Vậy để đảm bảo tất cả text trong bản vẽ đều là kiểu gõ tiếng Nhật nên em muốn làm 1 lisp tự động tìm và thay thế tất cả những ký tự tiếng Anh thành những ký tự tiếng Nhật.

Khi tạo bất kỳ 1 text và nhập nội dung, bởi vì phải chuyển đổi giữa 2 kiểu gõ nên nhiều khi sẽ có sơ suất. Ví dụ như text có nội dung AUTOCAD là không được vì lẫn lộn có kiểu gõ tiếng Anh ( chữ AU và CAD là kiểu gõ tiếng Anh). Sau khi dùng lisp sẽ chuyển thành như sau AUTOCAD ( toàn bộ ký tự đã chuyển sang kiểu gõ tiếng Nhật ).

Do đó nếu text có nội dung "A là B" ---> kết quả nhận được "1 là 2" thì đúng là kết quả không được mong đợi nhưng mục đích chính của em là cái lisp thứ 2, cái lisp 1 em chỉ làm thử nghiệm thôi.

Cái lisp của bác sửa lại cho em chạy rất OK nhưng ý của em là muốn lisp kiểm tra từng ký tự trong nội dung của tập hợp các text được chọn rồi sẽ thay thế luôn. Và nội dung text thì rất là nhiều chứ không chỉ lúc nào cũng là CAD-2008, cái này em chỉ nêu ra làm ví dụ thôi.

 

Nếu có gì chưa hiểu rõ thì bác gia_bach và bạn Tue_NV hỏi thêm nha.

Xin cám ơn đã nhiệt tình giúp đỡ.

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

Sau khi dùng lisp sẽ chuyển thành như sau AUTOCAD ( toàn bộ ký tự đã chuyển sang kiểu gõ tiếng Nhật ).

.....................

Chào bạn tuan_thietkedien!

Ví dụ minh họa chuyển từ kiểu gõ tiếng Anh sang kiểu gõ tiếng Nhật.

LISP chỉ chuyển các kí tự : "A" "B" "C" "D" "0" "1" "2" "8" "9" "-" sang kiểu gõ tiếng Nhật.

Bạn có thể bổ sung các kí tự khác vào biến list_tim list_thay.

 

(defun ReplaceString (str str1 str2 / m)
 (setq m 0)
 (while (setq m (vl-string-search str1 str m))
   (setq str (vl-string-subst str2 str1 str m))
   (setq m (1+ m))
   ) ;_ end of while
 str
 ) ;_ end of defun

;;;TxtFR : Text Find and Replace
(defun c:TxtFR (/ list_tim list_thay ss i en ed str str_thay)
 (setq list_tim  (list "A" "B" "C" "D" "0" "1" "2" "8" "9" "-"))
 (setq list_thay (list "A" "B" "C" "D" "0" "1" "2" "8" "9" "ー"))

 (setq ss (ssget  '((0 . "TEXT")))
i  0) 

 (while (< i (sslength ss))
   (setq en (ssname ss i)
  ed (entget en)
  str (cdr (assoc 1 ed)) )
   (foreach str_tim list_tim
     (if (vl-string-search str_tim str)
(setq str_thay (nth (vl-position str_tim list_tim)list_thay )
      str (ReplaceString str str_tim str_thay))
)
     )
   (setq ed (subst (cons 1 str) (assoc 1 ed) ed))
   (entmod ed)
;;;    (entupd (cdr (assoc -1 ed)))	   
   (setq i (1+ i))
   )  
 (gc)
)

  • 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
Chào bạn tuan_thietkedien!

Ví dụ minh họa chuyển từ kiểu gõ tiếng Anh sang kiểu gõ tiếng Nhật.

LISP chỉ chuyển các kí tự : "A" "B" "C" "D" "0" "1" "2" "8" "9" "-" sang kiểu gõ tiếng Nhật.

Bạn có thể bổ sung các kí tự khác vào biến list_tim list_thay.

 

(defun ReplaceString (str str1 str2 / m)
 (setq m 0)
 (while (setq m (vl-string-search str1 str m))
   (setq str (vl-string-subst str2 str1 str m))
   (setq m (1+ m))
   ) ;_ end of while
 str
 ) ;_ end of defun

;;;TxtFR : Text Find and Replace
(defun c:TxtFR (/ list_tim list_thay ss i en ed str str_thay)
 (setq list_tim  (list "A" "B" "C" "D" "0" "1" "2" "8" "9" "-"))
 (setq list_thay (list "A" "B" "C" "D" "0" "1" "2" "8" "9" "ー"))

 (setq ss (ssget  '((0 . "TEXT")))
i  0) 

 (while (< i (sslength ss))
   (setq en (ssname ss i)
  ed (entget en)
  str (cdr (assoc 1 ed)) )
   (foreach str_tim list_tim
     (if (vl-string-search str_tim str)
(setq str_thay (nth (vl-position str_tim list_tim)list_thay )
      str (ReplaceString str str_tim str_thay))
)
     )
   (setq ed (subst (cons 1 str) (assoc 1 ed) ed))
   (entmod ed)
;;;    (entupd (cdr (assoc -1 ed)))	   
   (setq i (1+ i))
   )  
 (gc)
)

 

Chào bác gia_bach

Lisp mà bác viết cho em chạy Ok lắm, hoàn toàn đúng ý của em. Có vài chỗ, vài hàm mới em chưa biết nên sau khi em tìm hiểu nếu có gì không rõ mong bác chỉ thêm. Hầu như lisp dùng hàm vl- , mà mấy hàm này em lại mù tịt.

1 lần nữa xin cám ơn bác và mọi người đã nhiệt tình giúp đỡ.

:cry:

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
Chào bạn Tue_NV

Không hiểu sao khi mình dùng lệnh ed (ddedit) thì chữ CAD-2008 kiểu gõ Tiếng Nhật vẫn ra chữ CAD-2008 như bình thường. Dấu -, chữ số 2; 0; 8 vẫn hiện ra bình thường. Bạn thử xem lại máy đã cài font tiếng Nhật chưa ( trong Control Panel \ Regional and Language options ), bạn dùng đĩa cài WinXp bỏ vào ổ đĩa, sau đó vào đường dẫn mình đã chỉ rồi check vào cái ô mình khoanh tròn đỏ, sau đó nhấp Apply là cài được. Bạn cũng xem thử Text Style trong CAD có giống mình hay không nhe. Có lẽ vì thế mà máy của bạn nó thể hiện như vậy.

 

http://www.cadviet.com/upfiles/Book2_2.xls

 

Sau khi bạn cài xong rồi xem lại thử xem có còn tình trạng như vậy hay không nhé.

 

@Bác gia_bach:

Em giải thích lý do làm cái lisp thay thế chữ này để bác hiểu thêm. Tất cả những bản vẽ công ty làm sẽ gửi qua bên Nhật, do đó họ yêu cầu dùng kiểu gõ tiếng Nhật. Vậy để đảm bảo tất cả text trong bản vẽ đều là kiểu gõ tiếng Nhật nên em muốn làm 1 lisp tự động tìm và thay thế tất cả những ký tự tiếng Anh thành những ký tự tiếng Nhật.

Khi tạo bất kỳ 1 text và nhập nội dung, bởi vì phải chuyển đổi giữa 2 kiểu gõ nên nhiều khi sẽ có sơ suất. Ví dụ như text có nội dung AUTOCAD là không được vì lẫn lộn có kiểu gõ tiếng Anh ( chữ AU và CAD là kiểu gõ tiếng Anh). Sau khi dùng lisp sẽ chuyển thành như sau AUTOCAD ( toàn bộ ký tự đã chuyển sang kiểu gõ tiếng Nhật ).

Do đó nếu text có nội dung "A là B" ---> kết quả nhận được "1 là 2" thì đúng là kết quả không được mong đợi nhưng mục đích chính của em là cái lisp thứ 2, cái lisp 1 em chỉ làm thử nghiệm thôi.

Cái lisp của bác sửa lại cho em chạy rất OK nhưng ý của em là muốn lisp kiểm tra từng ký tự trong nội dung của tập hợp các text được chọn rồi sẽ thay thế luôn. Và nội dung text thì rất là nhiều chứ không chỉ lúc nào cũng là CAD-2008, cái này em chỉ nêu ra làm ví dụ thôi.

 

Nếu có gì chưa hiểu rõ thì bác gia_bach và bạn Tue_NV hỏi thêm nha.

Xin cám ơn đã nhiệt tình giúp đỡ.

Chào bạn Tuanthietkedien

Mình đã cài rồi mà tại sao cái chữ CAD-2008 Tiếng Nhật vẫn không hiện được

chữ CAD-2008 tiếng Nhật nó ra như cũ thế này : \M+18262\M+18260\M+18263\M+1815B\M+18251\M+1824F\M+1824F\M+18257

và theo mình suy luận như trên :

Tức là chữ C trong tiếng Nhựt tương đương với chữ \M+18262 (trong tiếng Anh)

Tức là chữ A trong tiếng Nhựt tương đương với chữ \M+18260 (trong tiếng Anh)

Tức là chữ D trong tiếng Nhựt tương đương với chữ \M+18263 (trong tiếng Anh)

Không hiểu sao chữ Nhật nó không hiện. Và mình đã viết đoạn Lisp này và đã chạy thành công.

Bạn thử xem nhé :

(defun c:STRR()
(Setq stri (entget(car(entsel))))
(setq str (cdr(assoc 1 stri)))
(setq n (strlen str) i 1 te "")
(while (
(setq te1 (substr str i 1))

(if (= te1 "A") (setq te1 "\\M+18260"))
(if (= te1 "B") (setq te1 "\\M+18261"))
(if (= te1 "C") (setq te1 "\\M+18262"))
(if (= te1 "D") (setq te1 "\\M+18263"))
(setq te (strcat te te1))

(setq i (+ i 1))

)

(setq stri (subst (cons 1 te) (assoc 1 stri) stri))
(entmod stri)
)

LISP chỉ chuyển các kí tự : "A" "B" "C" "D" tiếng Anh sang kiểu gõ tiếng Nhựt.

Cái chữ \\M+18260 chính là chữ "A" trong tiếng Nhựt đó.

 

Dòng (if (= te1 "A") (setq te1 "\\M+18260"))

thì "A" là kí tự tìm thấy và "\\M+18260" (chính là chữ "A") tiếng Nhựt.

Và bạn hãy thay "\\M+18260" (chữ "A") của Tiếng Nhật do mình bị lỗi Font

 

Bạn hãy bổ sung thêm kí tự tìm thấy và kí tự thay thế để hoàn thành tốt công việc của bạn.

 

Bạn hãy chạy thử và cho biết ý kiến nhé.

Chúc thành công. :cry:

  • 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
Chào bạn Tuanthietkedien

Mình đã cài rồi mà tại sao cái chữ CAD-2008 Tiếng Nhật vẫn không hiện được

chữ CAD-2008 tiếng Nhật nó ra như cũ thế này : \M+18262\M+18260\M+18263\M+1815B\M+18251\M+1824F\M+1824F\M+18257

và theo mình suy luận như trên :

Tức là chữ C trong tiếng Nhựt tương đương với chữ \M+18262 (trong tiếng Anh)

Tức là chữ A trong tiếng Nhựt tương đương với chữ \M+18260 (trong tiếng Anh)

Tức là chữ D trong tiếng Nhựt tương đương với chữ \M+18263 (trong tiếng Anh)

Không hiểu sao chữ Nhật nó không hiện. Và mình đã viết đoạn Lisp này và đã chạy thành công.

Bạn thử xem nhé :

(defun c:STRR()
(Setq stri (entget(car(entsel))))
(setq str (cdr(assoc 1 stri)))
(setq n (strlen str) i 1 te "")
(while (<= i n)

(setq te1 (substr str i 1))

(if (= te1 "A") (setq te1 "\\M+18260"))
(if (= te1 "B") (setq te1 "\\M+18261"))
(if (= te1 "C") (setq te1 "\\M+18262"))
(if (= te1 "D") (setq te1 "\\M+18263"))
(setq te (strcat te te1))

(setq i (+ i 1))

)

(setq stri (subst (cons 1 te) (assoc 1 stri) stri))
(entmod stri)
)

LISP chỉ chuyển các kí tự : "A" "B" "C" "D" tiếng Anh sang kiểu gõ tiếng Nhựt.

Cái chữ \\M+18260 chính là chữ "A" trong tiếng Nhựt đó.

 

Dòng (if (= te1 "A") (setq te1 "\\M+18260"))

thì "A" là kí tự tìm thấy và "\\M+18260" (chính là chữ "A") tiếng Nhựt.

Và bạn hãy thay "\\M+18260" (chữ "A") của Tiếng Nhật do mình bị lỗi Font

 

Bạn hãy bổ sung thêm kí tự tìm thấy và kí tự thay thế để hoàn thành tốt công việc của bạn.

 

Bạn hãy chạy thử và cho biết ý kiến nhé.

Chúc thành công. :cry:

 

Chào bạn Tue_NV

Hôm nay mình hơi bận nên sau khi mình dùng thử liền sẽ nhắn bạn biết kết quả nha.

Cám ơn bạn nhiều và chúc bạn thành công.

:cry:

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
LISP chỉ chuyển các kí tự : "A" "B" "C" "D" tiếng Anh sang kiểu gõ tiếng Nhựt.

Cái chữ \\M+18260 chính là chữ "A" trong tiếng Nhựt đó.

 

Dòng (if (= te1 "A") (setq te1 "\\M+18260"))

thì "A" là kí tự tìm thấy và "\\M+18260" (chính là chữ "A") tiếng Nhựt.

Và bạn hãy thay "\\M+18260" (chữ "A") của Tiếng Nhật do mình bị lỗi Font

 

Bạn hãy bổ sung thêm kí tự tìm thấy và kí tự thay thế để hoàn thành tốt công việc của bạn.

 

Bạn hãy chạy thử và cho biết ý kiến nhé.

Chúc thành công. :cry:

 

Chào bạn Tue_NV

Lisp bạn viết chạy Ok lắm, nó vẫn thể hiện tiếng Nhật như bình thường. Hiện tại mình dùng Cad2004, không biết bạn dùng Cad bao nhiêu.

Mình đã thử viết thêm vài dòng để lisp ứng dụng cho 1 tập hợp text, khi này mình dùng thêm 1 vòng while để xét từng text thì không hiểu sao không chạy được, không biết có phải do 2 cái vòng while cùng chạy là không được hay không.

Bạn góp ý cho mình với 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

Chào bác gia_bach, bạn Tue_NV

Khi bổ sung thêm các ký tự còn lại thì kết quả không được như ý muốn lắm.

Lisp của bác gia_bach mấy con số nó chuyển thành những ký tự abc gì đó.

Lisp của bạn Tue_NV có lẽ do mình dùng con số không chính xác nên nó nhảy lung tung.

 

http://www.cadviet.com/upfiles/TxtFR.lsp

http://www.cadviet.com/upfiles/STRR.lsp

http://www.cadviet.com/upfiles/Phan_biet_k..._tieng_Nhat.dwg

 

Bác gia_bach, bạn Tue_NV xem lại dùm em 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

Còn 1 vấn đề này xin hỏi mọi người.

 

Làm thế nào để mình xác định được tọa độ những điểm giao nhau do các đường thẳng tạo thành.

Ví dụ khi vẽ 1 đoạn thẳng A dài khỏang 10m. Nếu đoạn thẳng A cắt những đoạn thẳng khác có sẵn trong bản vẽ sẽ tạo ra các giao điểm. Và bây giờ muốn lấy ra tọa độ của các giao điểm ấy.

 

Xin cám ơ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
Chào bạn Tue_NV

Lisp bạn viết chạy Ok lắm, nó vẫn thể hiện tiếng Nhật như bình thường. Hiện tại mình dùng Cad2004, không biết bạn dùng Cad bao nhiêu.

Mình đã thử viết thêm vài dòng để lisp ứng dụng cho 1 tập hợp text, khi này mình dùng thêm 1 vòng while để xét từng text thì không hiểu sao không chạy được, không biết có phải do 2 cái vòng while cùng chạy là không được hay không.

Bạn góp ý cho mình với nhé.

Chào bạn Tuan_thietkedien,

Không có chuyện hai vòng lặp while thì không cùng chạy được bạn ạ, bạn nên kiểm tra kỹ cấu trúc vòng lặp hoặc điều kiện lặp thôi. Nếu có thể, hãy post cái bạn viết lên mọi người sẽ góp ý cho bạn ạ.

Chúc bạn khỏe và vui.

  • 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
Còn 1 vấn đề này xin hỏi mọi người.

 

Làm thế nào để mình xác định được tọa độ những điểm giao nhau do các đường thẳng tạo thành.

Ví dụ khi vẽ 1 đoạn thẳng A dài khỏang 10m. Nếu đoạn thẳng A cắt những đoạn thẳng khác có sẵn trong bản vẽ sẽ tạo ra các giao điểm. Và bây giờ muốn lấy ra tọa độ của các giao điểm ấy.

 

Xin cám ơn.

Bạn hãy tìm kiếm thêm trên diễn đàn nhé. Vấn đề này đã có và được trao đổi nhiều. Mình nhớ có các lisp của bác Hoành, bác SSG rồi, trong đó không chỉ tìm giao của các line mà còn của cả các loại đối tượng khác nữa bạn ạ. Bạn hãy tham khảo và tùy nghi cải thiện theo cái bạn cần. Chúc bạn thành công. Nếu có gì chưa rõ lại post lên nhé.

  • 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
Chào bác gia_bach, bạn Tue_NV

Khi bổ sung thêm các ký tự còn lại thì kết quả không được như ý muốn lắm.

Lisp của bác gia_bach mấy con số nó chuyển thành những ký tự abc gì đó.

Lisp của bạn Tue_NV có lẽ do mình dùng con số không chính xác nên nó nhảy lung tung.

 

http://www.cadviet.com/upfiles/TxtFR.lsp

http://www.cadviet.com/upfiles/STRR.lsp

http://www.cadviet.com/upfiles/Phan_biet_k..._tieng_Nhat.dwg

 

Bác gia_bach, bạn Tue_NV xem lại dùm em nhé.

Chào bạn tuanthietkedien

Cái Lisp của mình là do bị lỗi Font nên dòng này (if (= te1 "A") (setq te1 "\\M+18260"))

Cái chữ "\\M+18260" này bạn phải thay đúng bằng chữ Tiếng Nhựt của bạn chứ? tức là thay cái chữ "\\M+18260" bằng cái chữ này nè : "A" cái chữ A của tiếng Nhật đó. Bạn hiểu không? (Do máy mình bị lỗi font chữ mà)

 

Còn việc tìm giao điểm của các đoạn thẳng bạn có thể tham khảo thêm hàm inters của AutoLisp

Chúc thành công. :cry:

  • 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
Bạn hãy tìm kiếm thêm trên diễn đàn nhé. Vấn đề này đã có và được trao đổi nhiều. Mình nhớ có các lisp của bác Hoành, bác SSG rồi, trong đó không chỉ tìm giao của các line mà còn của cả các loại đối tượng khác nữa bạn ạ. Bạn hãy tham khảo và tùy nghi cải thiện theo cái bạn cần. Chúc bạn thành công. Nếu có gì chưa rõ lại post lên nhé.

 

Cám ơn bạn đã nhắc nha. Mình đã tìm được cái lisp ấy rồi.

Đôi khi mình cũng quên mất phải search trước khi hỏi nữa, hihi..

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

Khi bổ sung thêm các ký tự còn lại thì kết quả không được như ý muốn lắm.

Lisp của bác gia_bach mấy con số nó chuyển thành những ký tự abc gì đó.

....................

Chào bạn tuan_thietkedien.

Bạn thử dùng lại LISP này nhé.

Hy vọng kết quả khả quan hơn.

(defun ReplaceString (str str1 str2 / m)
 (setq m 0)
 (while (setq m (vl-string-search str1 str m))
   (setq str (vl-string-subst str2 str1 str m))
   (setq m (1+ m))
   ) ;_ end of while
 str
 ) ;_ end of defun

;;;TxtFR : Text Find and Replace
(defun c:TxtFR (/ list_tim list_thay ss i en ed str str_thay)
 (setq list_tim  (list "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
		"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
		"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
		"-" "(" ")" "/" "." ","	 ))
 (setq list_thay (list "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
		"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
		"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
		"ー" "(" ")" "/" "。" "、" ))
 (setq ss (ssget  '((0 . "TEXT")))
i  0) 
 (while (< i (sslength ss))
   (setq en (ssname ss i)
  ed (entget en)
  str (cdr (assoc 1 ed)) )
   (foreach str_tim list_tim
     (if (vl-string-search str_tim str)
(setq str_thay (nth (vl-position str_tim list_tim)list_thay )
      str (ReplaceString str str_tim str_thay))
)
     )
   (setq ed (subst (cons 1 str) (assoc 1 ed) ed))
   (entmod ed)
   (setq i (1+ i))
   )  
 (gc)
)

  • 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
Chào bạn tuan_thietkedien.

Bạn thử dùng lại LISP này nhé.

Hy vọng kết quả khả quan hơn.

(defun ReplaceString (str str1 str2 / m)
 (setq m 0)
 (while (setq m (vl-string-search str1 str m))
   (setq str (vl-string-subst str2 str1 str m))
   (setq m (1+ m))
   ) ;_ end of while
 str
 ) ;_ end of defun

;;;TxtFR : Text Find and Replace
(defun c:TxtFR (/ list_tim list_thay ss i en ed str str_thay)
 (setq list_tim  (list "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
		"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
		"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
		"-" "(" ")" "/" "." ","	 ))
 (setq list_thay (list "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M"
		"N" "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
		"0" "1" "2" "3" "4" "5" "6" "7" "8" "9"
		"ー" "(" ")" "/" "。" "、" ))
 (setq ss (ssget  '((0 . "TEXT")))
i  0) 
 (while (< i (sslength ss))
   (setq en (ssname ss i)
  ed (entget en)
  str (cdr (assoc 1 ed)) )
   (foreach str_tim list_tim
     (if (vl-string-search str_tim str)
(setq str_thay (nth (vl-position str_tim list_tim)list_thay )
      str (ReplaceString str str_tim str_thay))
)
     )
   (setq ed (subst (cons 1 str) (assoc 1 ed) ed))
   (entmod ed)
   (setq i (1+ i))
   )  
 (gc)
)

 

Chào bác gia_bach, bạn Tue_NV

Sau khi thử chạy lisp vào file Cad kèm dưới dây thì kết quả là:

 

Chữ có kiểu gõ tiếng Anh --> chữ có kiểu gõ tiếng Nhật.

Chữ có kiểu gõ tiếng Nhật --> chữ có kiểu gõ tiếng Nhật.

 

Số có kiểu gõ tiếng Anh --> số có kiểu gõ tiếng Nhật.

Số có kiểu gõ tiếng Nhật --> xxx

 

Vậy những con số tiếng Nhật này làm lisp chạy không ổn định, không biết có cách khắc phục không.

 

http://www.cadviet.com/upfiles/Drawing2_14.dwg

 

@Bạn Tue_NV

Mình có thử viết thêm chút ít để lisp chạy cho 1 tập hợp text, bạn xem thử góp ý cho mình với nhe.

 

http://www.cadviet.com/upfiles/STRR_1.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
@Bạn Tue_NV

Mình có thử viết thêm chút ít để lisp chạy cho 1 tập hợp text, bạn xem thử góp ý cho mình với nhe.

 

http://www.cadviet.com/upfiles/STRR_1.lsp

Đoạn Lisp trên của bạn chạy tốt.

Nhưng mình lưu ý với bạn một chút là với font chữ .Vn...H. Ví dụ .VNtimeH, .VnarialH, .VnnarrowH......

thì chữ mình có viiét thường thì nó cũng hiểu là chữ hoa. Và những chữ viết thường trở thành chữ hoa thì Lisp sẽ không thay thế đâu bạn nhé.

  • 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
Chào bạn Tuanthietkedien.

Chữ cái của nó nhiều hơn dăm ba kí tự nhiều bác Bình à

Đó chính là nguyên nhân dẫn đến Lisp của bạn không chạy được.

 

Bạn gửi cái file của bạn lên đây có 2 chữ CAD-2008 gồm 2 dòng.

Bạn nói rằng :

 

Phải chăng dòng đầu CAD-2008 là chữ tiếng Anh. Dòng thứ 2 : CAD-2008 là chữ Tiếng Nhật.

Và ý của bạn muốn biến chữ CAD tiếng Anh thành chữ CAD tiếng Nhật.

Và đoạn lệnh (vl-string-translate "ABC" "ABC" nd) này phải chăng "ABC" là chữ Tiếng Anh; "ABC" chính là chữ "ABC" tiếng Nhật.

Mong bạn hãy giải thích thật rõ ràng thì mọi người mới có thể giúp bạn được.

Chào bạn.

Tôi không phải là dân xây dựng nhưng cũng dùng đến CAD nhiều vì làm về xây lắp điện, Nhưng trình cad còn non nên không hiểu lập trình autolisp có ứng dụng gì? Anh em trong diễn đàn ai có tài liệu gì về nó thì up lên tôi tham khả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
Chào bác gia_bach, bạn Tue_NV

Sau khi thử chạy lisp vào file Cad kèm dưới dây thì kết quả là:

 

Chữ có kiểu gõ tiếng Anh --> chữ có kiểu gõ tiếng Nhật.

Chữ có kiểu gõ tiếng Nhật --> chữ có kiểu gõ tiếng Nhật.

 

Số có kiểu gõ tiếng Anh --> số có kiểu gõ tiếng Nhật.

Số có kiểu gõ tiếng Nhật --> xxx

 

Vậy những con số tiếng Nhật này làm lisp chạy không ổn định, không biết có cách khắc phục không.

 

http://www.cadviet.com/upfiles/Drawing2_14.dwg

 

@Bạn Tue_NV

Mình có thử viết thêm chút ít để lisp chạy cho 1 tập hợp text, bạn xem thử góp ý cho mình với nhe.

 

http://www.cadviet.com/upfiles/STRR_1.lsp

Lisp của bạn tôi sửa đã khắc phục lỗi số có kiểu gõ tiếng Nhật như sau:

(defun c:STRR ( / ss i j str stri n te te1 asc)
(setq 	ss (ssget '((0 . "TEXT,MTEXT")))	j 0	)

(while
	(< j (sslength ss))
	(setq 		stri (ssname ss j)		stri (entget stri)		)
	(setq str (cdr(assoc 1 stri)))
	(setq n (strlen str) i 1 te "")

	(while (<= i n)
		(setq te1 (substr str i 1) asc (ascii te1))
		(if (and (> asc 127)(or (< asc 160) (> asc 223)))
			(setq te1 (substr str i 2) i (1+ i))
			(progn
				(if (= te1 "1") (setq te1 "1"))(if (= te1 "7") (setq te1 "7"))
				(if (= te1 "2") (setq te1 "2"))(if (= te1 "8") (setq te1 "8"))
				(if (= te1 "3") (setq te1 "3"))(if (= te1 "9") (setq te1 "9"))
				(if (= te1 "4") (setq te1 "4"))(if (= te1 "-") (setq te1 "-"))
				(if (= te1 "5") (setq te1 "5"))(if (= te1 "x") (setq te1 "x"))
				(if (= te1 "6") (setq te1 "6"))(if (= te1 "0") (setq te1 "0"))

				(if (= te1 "A") (setq te1 "A"))(if (= te1 "N") (setq te1 "N"))
				(if (= te1 "B") (setq te1 "B"))(if (= te1 "O") (setq te1 "O"))
				(if (= te1 "C") (setq te1 "C"))(if (= te1 "P") (setq te1 "P"))
				(if (= te1 "D") (setq te1 "D"))(if (= te1 "Q") (setq te1 "Q"))
				(if (= te1 "E") (setq te1 "E"))(if (= te1 "R") (setq te1 "R"))
				(if (= te1 "F") (setq te1 "F"))(if (= te1 "S") (setq te1 "S"))
				(if (= te1 "G") (setq te1 "G"))(if (= te1 "T") (setq te1 "T"))
				(if (= te1 "H") (setq te1 "H"))(if (= te1 "U") (setq te1 "U"))
				(if (= te1 "I") (setq te1 "I"))(if (= te1 "V") (setq te1 "V"))
				(if (= te1 "J") (setq te1 "J"))(if (= te1 "W") (setq te1 "W"))
				(if (= te1 "K") (setq te1 "K"))(if (= te1 "X") (setq te1 "X"))
				(if (= te1 "L") (setq te1 "L"))(if (= te1 "Y") (setq te1 "Y"))
				(if (= te1 "M") (setq te1 "M"))(if (= te1 "Z") (setq te1 "Z"))
			)
		)
		(setq te (strcat te te1))
		(setq i (1+ i))
	)
	(setq stri (subst (cons 1 te) (assoc 1 stri) stri))
	(entmod stri)

	(setq j (+ j 1))

)

(princ)
)

Hoặc dùng lisp này vừa ngắn, lại đầy đủ hơn

(defun c:STRRnew ( / ss i j k str stri n te te1 asc)
(setq En "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-(){}/.,?~!@#$%^&*()_=" )
(setq Jp "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789ー(){}/。、~?!@#$%^&*()_=" )
(setq 	ss (ssget '((0 . "TEXT,MTEXT")))	j 0	)

(while
	(< j (sslength ss))
	(setq 		stri (ssname ss j)		stri (entget stri)		)
	(setq str (cdr(assoc 1 stri)))
	(setq n (strlen str) i 1 te "")

	(while (<= i n)
		(setq te1 (substr str i 1) asc (ascii te1))
		(if (and (> asc 127)(or (< asc 160) (> asc 223)))
			(setq te1 (substr str i 2) i (1+ i))
			(if (setq k (vl-string-search te1 En))
				(setq te1 (substr Jp (+ k k 1) 2))
			)
		)
		(setq te (strcat te te1))
		(setq i (1+ i))
	)
	(setq stri (subst (cons 1 te) (assoc 1 stri) stri))
	(entmod stri)

	(setq j (+ j 1))

)
(princ)
)

  • Vote tăng 3

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

Xin Chào.

 

Nhờ các pác cao thủ giúp em cách tạo 1 lisp mới từ 2 lisp sau

 

1.Lisp chèn Block vào giao điểm các đoạn thẳng.

http://www.cadviet.com/upfiles/chen_Block_..._doan_thang.lsp

 

2.Lisp cắt đoạn thẳng tại giao điểm các đoạn thẳng

http://www.cadviet.com/upfiles/cat_doan_thang.lsp

 

Em muốn tạo 1 lisp mới (lisp12)có khả năng khi mình quét khối vùng chọn, lisp12 sẽ tìm ra các giao điểm của đoạn thẳng ( theo cách của lisp 1), sau đó lisp12 sẽ cắt tại các giao điểm ấy theo cách của lisp 2.

 

Nếu có chỗ nào chưa rõ xin phản hồi lại, xin cám ơn nhiều.

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
Xin Chào.

 

Nhờ các pác cao thủ giúp em cách tạo 1 lisp mới từ 2 lisp sau

 

1.Lisp chèn Block vào giao điểm các đoạn thẳng.

http://www.cadviet.com/upfiles/chen_Block_..._doan_thang.lsp

 

2.Lisp cắt đoạn thẳng tại giao điểm các đoạn thẳng

http://www.cadviet.com/upfiles/cat_doan_thang.lsp

 

Em muốn tạo 1 lisp mới (lisp12)có khả năng khi mình quét khối vùng chọn, lisp12 sẽ tìm ra các giao điểm của đoạn thẳng ( theo cách của lisp 1), sau đó lisp12 sẽ cắt tại các giao điểm ấy theo cách của lisp 2.

 

Nếu có chỗ nào chưa rõ xin phản hồi lại, xin cám ơn nhiều.

Tue_NV chưa hiểu ý của bạn lắm.

Có lẽ bạn nên trình bày thật rõ ràng, thật chi tiết trong 1 file .dwg rồi upload lên đây.

Bạn nhớ mô tả kỹ nhé : kiểu cắt X, Y, khoảng cách cắt : là gì......

Mục đích bạn muốn đạt được, dữ liệu đầu vào -> xử lý -> dữ liệu đầu ra. (Lisp 1 , Lisp2, Lisp 12)

Bạn nhớ trình bày thật đủ, rõ ràng và chi tiết, tránh làm mất thời gian. Bạn làm như thế nào thì làm miễn sao để ai đọc cũng hiểu được ý của bạn muốn nói cái gì và mục đích sau cùng bạn muốn đạt được.

Chào bạn. Chúc bạn vui.

  • 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
Tue_NV chưa hiểu ý của bạn lắm.

Có lẽ bạn nên trình bày thật rõ ràng, thật chi tiết trong 1 file .dwg rồi upload lên đây.

Bạn nhớ mô tả kỹ nhé : kiểu cắt X, Y, khoảng cách cắt : là gì......

Mục đích bạn muốn đạt được, dữ liệu đầu vào -> xử lý -> dữ liệu đầu ra. (Lisp 1 , Lisp2, Lisp 12)

Bạn nhớ trình bày thật đủ, rõ ràng và chi tiết, tránh làm mất thời gian. Bạn làm như thế nào thì làm miễn sao để ai đọc cũng hiểu được ý của bạn muốn nói cái gì và mục đích sau cùng bạn muốn đạt được.

Chào bạn. Chúc bạn vui.

 

Mình sẽ giải thích về lisp 2

- Nhập lệnh : cat

- Nhập kiểu cắt :

* X là cắt đoạn thằng nằm ngang , giống như trục X vậy.

* Y là cắt đoạn thằng nằm dọc , giống như trục Y vậy.

- Nhập khoảng cách cắt : 100 ( tùy ý người dùng )

- Chọn đối tượng :

* Nếu kiểu cắt là X phải chọn đối tượng theo phương X

* Nếu kiểu cắt là Y phải chọn đối tượng theo phương Y

- Nhập điểm ( là điểm giao nhau các đoạn thẳng )

--> Kết quả tham khảo file đính kèm. http://www.cadviet.com/upfiles/Drawing2_17.dwg

 

Cái nhược điểm ở cái lisp 2 là sau khi nhập kiểu cắt và khoảng cách cắt,

người dùng phải chọn đoạn thẳng , rồi chọn từng giao điểm của các đoạn thẳng.

Vậy nếu có mấy chục cái giao điểm thì làm rất lâu.

 

Do đó, mình thấy có cái lisp 1 tự động tìm giao điểm của đường thẳng,

nhưng mày mò hoài cũng không tài nào ghép 2 cái lisp này với nhau được.

 

Rút kinh nghiệm về sau phải cố gắng giải thích thật kỹ cho mọi người dễ hiểu.

Chắc mình không làm giáo viên được rùi quá. hihi

 

Còn chỗ nào chưa rõ xin phản hồi lại nha.

 

Cám ơ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
Mình sẽ giải thích về lisp 2

- Nhập lệnh : cat

- Nhập kiểu cắt :

* X là cắt đoạn thằng nằm ngang , giống như trục X vậy.

* Y là cắt đoạn thằng nằm dọc , giống như trục Y vậy.

- Nhập khoảng cách cắt : 100 ( tùy ý người dùng )

- Chọn đối tượng :

* Nếu kiểu cắt là X phải chọn đối tượng theo phương X

* Nếu kiểu cắt là Y phải chọn đối tượng theo phương Y

- Nhập điểm ( là điểm giao nhau các đoạn thẳng )

--> Kết quả tham khảo file đính kèm. http://www.cadviet.com/upfiles/Drawing2_17.dwg

 

Cái nhược điểm ở cái lisp 2 là sau khi nhập kiểu cắt và khoảng cách cắt,

người dùng phải chọn đoạn thẳng , rồi chọn từng giao điểm của các đoạn thẳng.

Vậy nếu có mấy chục cái giao điểm thì làm rất lâu.

 

Do đó, mình thấy có cái lisp 1 tự động tìm giao điểm của đường thẳng,

nhưng mày mò hoài cũng không tài nào ghép 2 cái lisp này với nhau được.

 

Rút kinh nghiệm về sau phải cố gắng giải thích thật kỹ cho mọi người dễ hiểu.

Chắc mình không làm giáo viên được rùi quá. hihi

 

Còn chỗ nào chưa rõ xin phản hồi lại nha.

 

Cám ơn.

Bạn hãy đọc những đoạn Code này của mình. Hy vọng bạn tự xây dựng được chương trình :

Hỏi về lệnh Break

Chúc thành công nhé :cheers:

  • 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


×