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

Thaistreetz

Nhà quảng cáo
  • Số lượng nội dung

    905
  • Đã tham gia

  • Lần ghé thăm cuối

  • Ngày trúng

    30

Bài đăng được đăng bởi Thaistreetz


  1. P/S :

    Nhân tiện nói về con số 18 bác Thái Bụi đề cập, e nhận thấy CAD cũng có vấn đề nếu hiển thị liên tiếp 18 mã Unicode ^^.Trong file test e gửi kèm có mục ;, các bác bỏ đi và test sẽ thấy ^^ Vì vậy , cũng k nên lạm dụng TV quá ^^

    Kệ, mình lạm dụng hoài. Tiếng việt nhà mình là loại ngôn ngữ đơn âm, và chẳng có từ nào dài đến 18 ký tự. và nếu 1 ngày đẹp trời, ông nào đó phởn chí bổ sung vào từ điển tiếng việt 1 từ dài đến 18 ký tự thì mình cũng không tin là 18 ký tự đó đều là các ký tự riêng của tiếng việt. phải có nguyên âm và phụ âm chứ B)


  2. Nhân việc các bác đang gặp phải nhiều vấn đề về tiếng việc trong cad. Mình cũng thêm cho các bác 1 số thông tin mà mình nghĩ là hữu ích.

    Hiện tại có thể một số bác đã giải quyết xong xuôi vấn đề tiếng việt cho cad. tuy nhiên vẫn gặp 1 số rắc rối về bộ gõ.

    đa số chúng ta không sử dụng Unicode cho text trên bản vẽ mà vẫn dùng các bảng mã thuần việt (TCVN3, VNI, BKHCM...) trong khi các chuong trình khác như Office, trình duyệt, Chat... chúng ta lại sử dụng Unicode. Vì sự khác biệt này nên khi chuyển chuơng trình chúng ta phải đổi bảng mã của bộ gõ (vietkey, Unikey...) cho phù hợp.

    Mình giới thiệu với các bác 1 bộ gõ khá mới là GoTiengViet của tác giả Trần Kỳ Nam. Đây là bộ gõ tuơng đối hay và tác giả của nó vẫn đang tiếp tục phát triển. Có rất nhiều tính năng hữu ích trong đó có một chức năng rất đáng đồng tiền bát gạo đó là bộ gõ này có thể tự điều chỉnh bảng mã theo từng chương trình. Ví dụ:

    Trong khi vẽ, mỗi khi viết text thì nó tự động đặt bảng mã là TCVN3 nhưng khi chuyển sang cửa sổ Chat yahoo thì nó tự động chuyển bảng mã của bộ gõ về Unicode, hoặc khi lướt web nó tự động tắt chế độ gõ tiếng việt...Người dùng chỉ việc thiết lập cho phù hợp với nhu cầu của mình và gần như sẽ không bao giờ phải quan tâm đến bộ gõ nữa.

    Thông tin và chi tiết hướng dẫn sử dụng các bác có thể xem tại site http://k-n.co.cc/gotv/


  3. @bác Tue_NV: Em cũng đã và đang làm giống như bác DVH. bởi em nghĩ công việc gì đáng phải làm thủ công thì mới cần fải mất sức cho nó. còn công việc nào tự động hoá đuợc thì hãy để cho máy làm. so với sức mạnh của các cỗ máy tính bây giờ thì 1 đoạn text đâu có đáng gì.

    Cách của bác theo suy nghĩ chủ quan của em thì ưu điểm có nó chỉ là trên lý thuyết, và chúng ta gần như không cảm nhận đuợc những ưu điểm đó. Nguợc lại thì nhuợc điểm của nó là tác động tuơng đối lớn đối với bản thân nguời viết code:

    1. Mất nhiều công sức cho 1 đoạn text tiếng việt.

    2. Code không gọn, không trực quan nên nhỡ "có vui hay buồn" muốn sửa lại hơi lằng nhằng.

    Tất cả vấn đề mà các bác đang gặp phải em chỉ cần 2 hàm con (TCVN3-Unicode) và (Unicode-TCVN3). rất nhàn!

    Về TCVN3 trong trình soạn thảo: giống như mọi chuơng trình soạn thảo văn bản khác, đó là chuyện nội bộ của Vlide, không liên quan gì đến font hệ thống của window cả bác ạ. bác có thể tự kiểm chứng điều này

    @Bác DVH: bác chỉ cần kiểm tra mã của các ký tự đặc biệt mà tôi thống kê trên kia rồi so sánh với mã của các ký tự còn lại sẽ thấy sự khác biệt. hàm ascii dùng để kiểm tra mã của các ký tự.


  4. 4. Tôi vừa viết xong cái LSP để chuyển từ TCVN3 sang Unicode (cái này ghi từng dòng chứ không phải 1 dòng), nhưng làm chiều ngược lại (Unicode sang TCVN3) thì hiện thời chưa được.

    Chuyển từ Unicode sang TCVN3 vẫn áp dụng cách tuơng tự như cách chuyển từ TCVN3 sang Unicode nhưng theo chiều ngược lại và không áp dụng cho 18 ký tự sau:

    á à ã â é è ê í ì ó ò õ ô ú ù Â Ê và Ô.

    Gợi ý: với 18 ký tự đặc biệt trên, hãy kiểm tra mã của nó.


  5. Mình đã hiểu ý của bác DuongTrungHuy rồi. tuy nhiên trong trường hợp này thì hệ số cong bulge sẽ không phản ánh đúng vị trí của điểm cần xét nằm bên trái hay bên fải curve. nó chỉ đúng trong đa số trường hợp thôi. bác có thể xem bản vẽ minh họa này. giá trị bulge trong 2 truờng hợp này nguợc dấu nhau nhưng 2 điểm P1 và P2 vẫn nằm cùng 1 phía.

    cvr.jpg


  6. Sau khi chạy thì dù viết ở bảng mã nào, e thấy ghi ra file cũng 1 kết quả :) lạ thật

    P/S : tại sao lại phải ghi ra file bác nhỉ ??

    Mình vừa thử, nếu nguồn là TCVN3 thì nó giữ nguyên kết quả là TCVN3. còn nếu nguồn là Unicode thì nó xuất kết quả Unicode dạng hexstring.

    bác Tue_NV viết tool này bằng lisp. mà nếu để nguyên kết quả như thế thì lisp sẽ lại hiển thị chuỗi kết quả đó dạng bình thường => chuỗi nguồn và chuỗi đích giống hệt nhau.

    @Bác Tue_VN: Bác có thể tạo thêm một edit_box cho nó hiển thị chuỗi kết quả trong cùng 1 hộp thoại giống tool của Ketxu đã làm bằng cách thêm 1 dấu gạch chéo (\) vào trước các dấu gạch chéo (\) trong chuỗi kết quả.

    Ví dụ: Chuỗi kết quả là: Ti\U+1EBFng vi\U+1EC7t

    Thì chuỗi ghi vào edit_box là: Ti\\U+1EBFng vi\\U+1EC7t. khi đó edit_box sẽ hiển thị giống như trên.

    như thế có thể xem được kết quả luôn và cũng đỡ fải xuất ra file text cho lằng nhằng bác ạ.

    Và chậm hiểu chỗ này: mục đích để làm gì?

    Mục đích để copy kết quả trong file text rồi paste vào lisp của bác ấy. giúp chuơng trình lisp thực thi nhanh hơn 1 tý và tiết kiệm được 1 tý tài nguyên của hệ thống vì đỡ fải convert bác ạ. ngoài ra còn dùng vào các mục đích khác nếu cần fải sử dụng đến chỗi Unicode viết theo dạng này.


  7. Câu hỏi Ban làm Mình ngại trả lời vì không biết như thế này có nhanh nhất như Bạn yêu cầu không?

    Bạn thử xem 1 cung đi qua 3 điểm

    1-điểm đầu mút

    2-điểm gần nhất từ điểm bấm P đến đường cong (vlax-curve-getClosestPointTo ent P)

    3- điểm bấm P

    Rồi xem tham số bulge nếu âm hoặc dương gì đó thì bên phải hoặc trái!

    Hy vọng thành công.

    Bác có thể nói rõ hơn đuợc không? mình nghĩ mãi mà chưa thông đuợc ý của bác. nếu bác có thể code nó ra nữa thì tốt quá!

    @bác elleHCSC: Em cần kiểm tra với cả các đuờng thẳng và đuờng cong nên không dùng đuợc cách của bác. nhưng thuật toán của bác thực sự là rất hay.


  8. "Đánh một trân: sạch không kình ngạc!"

    "Đánh hai trận: tan tác chim muông!"

    Chịu khó nghiên cứu chút xíu thì bạn hiểu tất cả thôi mà. Nó đơn giản thôi. Chứ "đánh ba trận" thì không biết còn cái gì để "đánh" nữa không! Chúc bạn 1 ngày vui.

    Nó lặn lâu rồi bác ợ. giờ bác chúc thế nó hok nghe thấy đâu. :D

    người đào topic này lên là tvgtyb08 mà.

    Các bác cho hỏi sao máy em cài Cad2005 chạy Expresstool ra nó ko nhận lệnh, vào MENULOAD và load file acetmain.mns thì nó hiện Tab Express trên thanh Nenu rồi xong tắt đi mở lại Cad nó lại biến mất. Ko riêng gì chương trình đó một số cái khác khi load lên được nhưng khởi động lại Cad nó lại mất.

    Có bác nào biết cách xử lý chỉ giúp em với.

    Bạn thử quét virut bằng lisp của bác Hoành xem. có lần mình từng bị giống bạn, khi quét xong thì hết.

    • Vote tăng 1

  9. Đúng là lỗi tại (assoc 10 x). Trong đối tượng BLOCK thì các mã 10 và 11 là tọa độ OCS của ATTDEF. còn trong đối tượng INSERT thì nó là tọa độ WCS (hoặc UCS) của ATTRIB.

    Bạn chú ý là toạ độ của ATTRIB trong đối tượng INSERT không bị phụ thuộc vào toạ độ của ATTDEF trong BLOCK nhé. chính vì thế việc khai báo tọa độ không chuẩn có thể dẫn đến hình dạng đối tượng Insert không giống hình dạng đối tượng block gốc. lần đầu tiên tạo hàm con trên mình cũng gặp fải vấn đề này.

    Vậy nên khi entmake đối tượng Insert bằng 1 block có chứa ATTDEF thì ta fải khai báo tọa độ của ATTRIB được tạo ra trong WCS hoặc UCS. Còn khi dùng hàm command để chèn block att thì nó đã tính toán hộ ta tọa độ của ATTRIB rồi

    • Vote tăng 1

  10. Ketxu dùng cái này thay cho lệnh insert block thử xem

    Mình viết tổng quát, bạn có thể rút gọn nó cho fù hợp với nhu cầu

    trong code này thì tham số:

    list_att là list giá trị của các att (định dạng là string) muốn đưa vào block cần insert, Nếu block thường thì để tham số này là nil.

    ang là và góc xoay của block tính bằng radial.

    scale là tỷ lệ insert của block

    xdata là dữ liệu mở rộng, nhu cầu thông thường thì không cần cái này, bạn nên bỏ nó đi

    ;;;=============== Make insert block
    (defun DXF (code en)(cdr (assoc code (entget en))))
    (defun MakeInsert (Blkname inspoint scale ang list_att layer color xdata / lst obj i)
    (setq lst '() i -1 en (cdr (last (tblsearch "block" Blkname))) obj (entget en))
    (if (= (cdr(assoc 0 obj)) "ATTDEF")
    (setq lst (list (list
    	(cdr(assoc 10 obj))(cdr(assoc 11 obj))(cdr(assoc 50 obj))(cdr(assoc 8 obj))(cdr(assoc 62 obj))
    	(cdr(assoc 40 obj))(assoc 7 obj)(assoc 71 obj)(assoc 72 obj)(assoc 2 obj)))))
    (while (setq en (entnext en))
    (if (= (cdr(assoc 0 (setq obj(entget en)))) "ATTDEF")
    	(setq lst (cons (list
    	(cdr(assoc 10 obj))(cdr(assoc 11 obj))(cdr(assoc 50 obj))(cdr(assoc 8 obj))(cdr(assoc 62 obj))
    	(cdr(assoc 40 obj))(assoc 7 obj)(assoc 71 obj)(assoc 72 obj)(assoc 2 obj))lst))))
    (entmakex(list
    	'(0 . "INSERT")'(100 . "AcDbEntity")
    	(cons 8 (if Layer Layer (getvar "Clayer")))
    	(cons 62 (if Color Color 256))
    	'(100 . "AcDbBlockReference")
    	(if list_att '(66 . 1) '(66 . 0))
    	(cons 2 Blkname)
    	(cons 10 (trans inspoint 1 0))
    	(cons 41 scale)(cons 42 scale)(cons 43 scale)
    	(cons 50 Ang)
    	(cons -3 (if xdata (list xdata) nil))))
    (if lst
    (foreach LL (reverse lst)	(entmake(list
    	'(0 . "ATTRIB")'(100 . "AcDbEntity")(cons 8 (cadddr LL))
    	(if (nth 4 LL) (cons 62 (nth 4 LL))(cons 62 256))'(100 . "AcDbText")
    	(cons 10(mapcar'+(trans inspoint 1 0)(mapcar'(lambda(x)(* scale x))(polar'(0 0 0)(+(angle'(0 0 0)(car LL))ang)(distance'(0 0 0)(car LL))))))
    	(cons 40 (* scale (nth 5 LL)))
    	(cons 1 (nth (setq i (1+ i))list_att))
    	(cons 50 (+ ang (caddr LL)))
    	'(41 . 1.0)(nth 6 LL)(nth 7 LL)(nth 8 LL)
    	(if (= 0(cdr (nth 7 LL))(cdr(nth 8 LL)))(cons 11(list 0 0 0))
    	(cons 11(mapcar'+(trans inspoint 1 0)(mapcar'(lambda(x)(* scale x))(polar'(0 0 0)(+(angle'(0 0 0)(cadr LL))ang)(distance'(0 0 0)(cadr LL)))))))
    	'(100 . "AcDbAttribute")'(280 . 0)(last LL)'(70 . 0)'(280 . 1)))))
    (dxf 330 (entmakex (list '(0 . "SEQEND") (cons 8 (if Layer Layer (getvar "Clayer")))))))

    • Vote tăng 2

  11. sao lại fải mở lắm topic về cùng 1 vấn đề thế nhỉ? bác cứ post bài vào topic cũ thì có chết thằng tây nào đâu? hoặc nếu muốn đưa nội dung này lên đầu topic để mọi người dễ tiếp cận thông tin thì chỉ việc edit cái bài đầu tiên của topic kia (vì chính bác cũng là chủ topic). như thế vừa tiện để người vào sau có thể theo dõi, cũng vừa đỡ rác diễn đàn.

    Giờ ai đó mà search nội dung này sẽ thấy lòi ra tới ít nhất 4 cái topic (trong đó có 2 cái tạo cách nhau có mấy ngày bởi cùng 1 người)

    • Vote tăng 1

  12. Bạn post bản vẽ lên xem nào. Chú ý "Km:" phải viết đúng chữ hoa và chữ thường. Đã kiểm tra kỹ càng và chú ý những điều bạn nói

    Cái này bắt buộc fải thế à? sao không chuyển tất cả về chữ hoa hoặc chữ thuờng (dùng hàm strcase ấy). nguời dùng đỡ fải quan tâm cách nhập có fải suớng hơn không?

    @Bạn chủ topic: Excel có hỗ trợ tính toán với đinh dạng dữ liệu kiểu lý trình này thì fải. mình nhớ hồi sinh viên mình đã dùng nó khi làm đồ án tốt nghiệp. bạn thử kiểm tra trong fomat sells xem.

    • Vote tăng 1

  13. truớc giờ mình dùng nentselp. hôm này chuyển qua dùng cái này (ssget ":E" Point (list (cons 0 filter))) để làm cái hàm con với điều kiện lọc cho nhanh. Nhưng cấu trúc hàm như thế kia là sai. bác nào rành về cách sử dụng ssget giúp mình với.

    Ý mình là: Chọn 1 đối tượng tại 1 điểm cho trước với điều kiện lọc filter


  14. Mình cần các bác trợ giúp cho vấn đề này để tìm ra thuật toán nhanh nhất có thể: có 1 đường Pline hoặc 1 Curve hở và 1 điểm (điểm này được xác định khi người dùng pick chuột bên cạnh Curve nên nó sẽ không nằm quá xa về phía 2 đầu mút của Curve). Yêu cầu xác định điểm đó nằm bên trái hay bên phải so với chiều của Curve đó (tất nhiên là mình đang xét trong 2D)

    PS: mình đã thử xét góc tạo bởi đường thẳng vuông góc từ điểm đó đến curve và phương của pháp tuyến tại điểm vuông góc. tuy nhiên cách này hơi chậm nên không được hiệu quả lắm.


  15. Bác và Bác ThaiStreet đều "may mắn" là font trong Win mặc định là Unicode, chứ nhỡ Bác chuyển qua font khác là... Ả Rập ngay.

    Hề hề. mình áp dụng cái code của bác Hoành để hiển thị tiếng việt unicode từ cái hồi chưa ai đề cập đến vấn đề này, và chắc chắn không phải là mình may mắn, chỉ là mình nắm đuợc cái nguyên tắc đơn giản: Bảng mã nào hiển thị cho font chữ của bảng mã ấy, không thể có chuyện râu ông nọ cắm cằm bà kia. Nếu có vấn đề gì không hiển thị được thì chỉ có thể là do lệch bảng mã hoặc phần mềm chưa hỗ trợ bảng mã. bác cứ nằm lòng câu này thì chẳng bao giờ bác fải mong chờ sự may mắn với vấn đề này cả.

    Điều bác Tue nói lúc sáng mình đọc, mình hiểu. Mình cứ tưởng là bác cũng hiểu rồi, vậy mà vẫn loanh quanh luẩn quẩn với font chữ, bảng mã, hỗ trợ hay chưa hỗ trợ.


  16. Hì ! cái này crack dễ như ăn cháo. Người viết lisp cũng trả bảo mật gì vì biết bảo mât cũng trả được. Mình nói thẳng là mình crack đầy chương trình rồi đấy...Ai là nạn nhân thì cố mà tìm cách bảo mật cao hơn đi.

    thực ra tác giả của nó có đưa vào thuật toán mã hoá riêng của tác giả. thế cũng là 1 cách bảo mật rồi mà bạn. tuy nhiên dùng lisp để mã hoá chính lisp thì cũng không khác gì khoá cửa rồi vẫn để nguyên cái chìa khoá trong ổ cho thằng trộm.


  17. Tôi cũng mệt luôn. DF thì dialog là Việt, còn command vẫn là Campuchia.

    Và, cái chính là chỉ có duy nhất font Courier New mới cho ra tiếng Việt thôi. Có mấy font Unicode trong đó nhưng không hiểu sao chỉ có Courier New. Bây giờ Bác mới thật sự nói được cái điều ai cũng cần. Bác làm như khi cài Cad thì ai cũng biết cách để chuyển nó về Courier New trong số 13 font.

    Mấy font kia không fải Unicode. mặc định winxp chỉ cung cấp 1 vài font unicode gồm: arial, time new roman, tahoma, Courier... Courier New luôn là font mặc định của cad ở command trừ khi bác chỉnh nó để chạy với bảng mã khác. giờ bác sài unicode mà không chỉnh lại, mình đã nói rõ rằng cần kiểm tra mã nguồn hoặc mã hiển thị của kết quả rồi còn gì.


  18. mệt nhỉ. thôi để mình gắp luôn cho bác vậy.

    yêu cầu:

    - chỉnh tất cả các font dùng để hiển thị giao diện của window về mặc đinh là unicode. nếu bác chưa biết thì làm thế này: từ màn hình desktop vào properties và thẻ appearance -> advance.

    - vào autocad, bác kiểm tra lại xem font hiển thị ở command của bác gì bằng cách vào option -> display -> font. bác có thể đặt font có tên Courier New làm font hiển thị, đây là 1 font unicode.

    OK, giờ bác load file này vào rồi gõ lệnh df sau đó xem kết quả ở hộp thoại và duới dòng command. Nếu đến nước này rồi mà vẫn chưa hiển thị được thì có thể do bác đang dùng bản cad hơi đặc biệt nằm ngoài khả năng của mình.

    Đây là kết quả của mình

    iiiiiiiiiii.jpg

     

    về vấn đề sử dụng bảng mã khác: Có thể dùng VNI hay TCVN3. fải rồi, cái đó thì ai chả biết, đâu fải chờ bác nói mọi người mới biết. Nhưng vì sao nguời ta không muốn dùng TCVN3 hay VNI hay bất kỳ bảng mã tiếng việt nào khác ngoài Unicode cho hộp thoại? bởi khi đó buộc fải chỉnh font hệ thống của cả hệ điều hành. việc này vô tính lại làm những chuơng trình khác sử dụng tiếng việt unicode không hiển thị đuợc, đuợc cái nọ thì mất cái kia. chính bản thân bác cũng đã gặp vấn đề với nó khi mà vista không cho phép nguời dùng thay đổi font hệ thống.


  19. Cái này áp dụng khi viết trực tiếp DCL ngay trong Lisp. Còn nếu viết DCL riêng, chắc có lẽ sử dụng cách khác thôi bạn ạ.

    Với mình, thì mình viết DCL riêng ra để có thể tận dụng các tính năng hỗ trợ viết DCL của Víual Lisp Editor. Đương nhiên, là mình vẫn biết nhược điểm của nó, nhưng không thể nói nó không có ưu điểm được. Với cách viết code như trên rất hay, tuy nhiên nó sẽ làm giảm tốc độ của chương trình vì nó phải duyệt qua toàn bộ String trong DCL mà bạn viết trực tiếp trên Lisp.

    Mình nghĩ ý của chủ topic chính là ý này

    Thực ra khi viết code DCL em cũng viết riêng, chỉ đến khi hoàn thiện chương trình thì em mới cho vào chung với file lsp như thế này cho gọn, đồng thời dễ quản lý cũng như chỉnh sửa nâng cấp sau này bác ạ. Một project chỉ cần 1-2 chục lệnh có sử dụng DCL mà tách riêng chúng ra với code điều khiển thì quản lý đã mệt mỏi lắm rồi.

    Về vấn đề tốc độ, em cũng rất quan tâm đến vấn đề này khi viết các chương trình lớn lớn 1 chút. về lý thuyết thì đúng như bác nhận xét,tuy nhiên khi sử dụng cách này em không cảm nhận được sự khác biệt nên chấp nhận nó.

    @Bác Ha: về vấn đề tiếng việt trong hộp thoại thì từ thời cad14 người ta đã làm rồi. vấn đề là nhiều người không muốn sử dụng nó vì nó ảnh hưởng đến các chương trình khác.

    Nói chi cho xa. Bác thử sửa hàm "alert" thành "princ" trong dòng test thì xác suất ra tiếng Việt chỉ là... 7.69% thôi

    Với nhận xét này của bác thì tôi có thể khẳng định được bác chưa hiểu được cách làm rồi. bản thân tôi cũng đang thắc mắc rằng "tại sao bác lại không hiểu?"

    bác có biết diễn đàn này hay bất kỳ diễn đàn nào khác trên net đều sử dụng unicode không? hình như bác đã copy luôn cả cái dòng test của tôi rồi cứ thế fệt vào cad thì fải. như vậy nguyên nhận hiển thị sai kết quả là do đâu chắc bác tự trả lời được rồi.

    Edit: sau khi đọc lại 1 hồi nữa, tôi thấy có thể là bác chưa chỉnh font hiển thị các menu và hộp thoại của window về Unicode. có lẽ nào lại vậy?


  20. :) à vấn đề là thế này. Trong quá trình làm việc Mình cũng hay gặp khó chịu như Nataca đó là đang vẽ bản vẽ nằm ở thư mục d:\ve\nha1 nhưng khi dùng lệnh open để mở thêm 1 bản vẽ trong thư mục đó nhưng nó lại hiện lên 1 thư mục khác ví dụ c:\nha1\nha2... làm mât công phải bật đi tìm thư mục d:\ve\nha1 nên hơi lâu. bạn Nataca định dùng pp Explore để mở thư mục d:\ve\nha1 lên và mở file từ Explore đó xong rồi muốn đóng Explore lại nhưng chưa làm được. Mình hiểu như vậy không biết có đúng ý Nataca không?

    Hôm qua Mình vừa tìm thấy trên Cadviet đoạn chương trình nyà hy vọng giải quyết trọn vẹn đước vấn đề mà không cần DVB

    (defun c:openFile (/ doc file-opened fileName openflag)

    (vl-load-com)

    (setq doc (vla-get-documents (vlax-get-acad-object)) openFlag F

    fileName (getfiled "File to Open" (getvar "DWGPREFIX") "dwg" 16)

    )

    (vlax-for dwg doc

    (if (= (vla-get-FullName dwg) fileName)(setq file-opened dwg openFlag T))

    )

    (if (not openFlag) (setq file-opened (vla-open doc fileName)))

    (vla-activate file-opened)

    (princ)

    )

    ...các Bạn thử xem nhé!

    Đoạn code trên có thể viết lại bằng autolisp rất đơn giản. đúng là bạn đã hiểu sai ý của nataca cũng như mục đích của việc làm này.

    ý của nataca đơn thuần chỉ là đóng cái cửa sổ Explorer nếu nó đang mở ở thư mục chứa bản vẽ hiện hành. nghĩa là khi gõ lệnh QE thì chương trình sẽ đóng thư mục ấy rồi lại mở nó lên. nghe thì ngớ ngẩn nhưng việc này nhằm tránh mở 1 thư mục bằng nhiều cửa sổ.

    Việc tạo ra lệnh mở thư mục này mục đích cũng không như bạn nghĩ. trong quá trình làm việc có thể chúng ta fải truy xuất một số file khác nữa ngoài dwg (excel, word...) cùng nằm trong thư mục bản vẽ hoặc trong 1 thư mục cùng cấp với thư mục bản vẽ. khi đó lệnh này giúp ta đỡ được 1 chút mệt mỏi vì fải dò dẫm đi tìm cái thư mục mình cần.


  21. Nó là thế này: dòng trong "..." tuy luôn được viết trong TCVN3, đọc trong file rất rõ ràng, nhưng không hẳn lúc nào in ra màn hình cũng là tiếng Việt. Vì nó còn phụ thuộc thứ khác nữa đấy

    (alert (TCVN3-unicode "Tôi chán Bác Thaistreetz lắm."))

    Bởi vậy tôi mới nói. cần fải chịu khó suy nghĩ câu trả lời cho mỗi câu hỏi. vì sao lại thế? khắc phục thế nào? có thể làm được không?...

    Câu trả lời cho fần gạch chân:

    Vì sao lại thế? - có thể do nguồn không fải tcvn3 hoặc có thể do font hiển thị kết quả không fải Unicode

    Khắc fục thế nào? - cần kiểm tra lại nguồn hoặc đổi font hiển thị kết quả.

    Có thể làm được không? - Làm được, làm cái này mãi rồi.

    Tôi tin là những câu trả lời trên hoàn toàn nằm trong khả năng của bác. không lẽ nào bác lại chối bỏ điều này. :rolleyes:


  22. Bác giỏi, và Bác nhiệt tình. Nhưng sao Bác cứ hằn học với một người khi mà họ chưa hiểu nhỉ.

    Như Bác nói, tôi copy và paste dòng (alert (TCVN3-unicode "Tôi chán Bác Thaistreetz lắm.")) vào command thì 99% là đúng ý Bác.

    Còn 1% này thì sao hè: nếu Bác "vô tình" đặt font trong window không phải là TCVN3 thì nó ra cái gì?

    Xin lỗi nếu bác cảm thấy lời tôi nói có "hằn học". Bởi tôi đã không thể hiểu đuợc bác thực sự muốn cái gì khi mọi thứ đã quá rõ ràng như vậy

    Bác chuyển 1 chuỗi từ mã TCVN3 sang mã unicode thì bác phải thừa hiểu chuỗi nguồn của bác phải được gõ theo mã TCVN3 và để nó hiển thị được thì bác phải chỉnh font. cái này làm word với excel mãi rồi thì chắc bác fải thừa hiều. vậy mà bản thân bác chưa chịu suy nghĩ đã có thể kết luận thứ người khác cung cấp cho bác là đồ bỏ như vậy. Tôi không giỏi, cái này cũng là do tôi mót được của người khác. tôi chỉ chịu khó suy nghĩ tìm câu trả lời cho mỗi câu hỏi trước khi tôi muốn nhờ người khác thôi.

    PS: bác có vẻ là người nhạy cảm. một lần nữa xin lỗi bác :huh:

×