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. Bác giabach hiểu sai ý của only rồi. Lám như của only là cách mình hay dùng:

    -Vẽ 1 pline theo chiều mong muốn.

    -Joint cái pline mới vào lipne cũ (chọn cái mới trước)thiì nó đảo chiều pline gốc của mình lại đương nhiên bị dính thèn mới vào.

    -Bứt cái mới dính bỏ đi thì xong thủ tục.

    Nói vậy không phải mình đồng ý với bạn only Có lisp giải quyết thì ngon hơn nhiều chứ.

    Em nghĩ việc xoá 1 đối tuợng rồi thay thế nó bằng 1 đối tuợng mới là điều bất quá mới phải làm. truớc đây khi mới tập viết lisp em cũng hay tư duy theo cách này. Đặc biệt là đối với các đối tuợng do 1 số phần mềm tạo ra có chứa dữ liệu mở rộng trong cơ sở dữ liệu đối tuợng thì điều này là tuyệt đối cấm kỵ. thêm nữa cách làm như vậy cũng sẽ ảnh huởng rất lớn đến tốc độ của chuơng trình.


  2. Dear: Ạnh em trong 4rum

    Anh em cho xin giáo trình hướng dẫn xây dựng cầu đường. " tìm mãi trong 4rum mà không thấy". Em thấy admin nên lập topic riêng về riêng từng chuyên ngành luôn, chung chung khó thảo luận lắm :)

    thank!

    Cung ly phát coi :)

    giáo trình cầu đuờng hay những vấn đề cụ thể liên quan đến chuyên ngành xây dựng cầu đuờng đã có tuơng đối nhiều diễn đàn chuyên về lĩnh vực này rồi bạn ạ. Đây là cadviet, cái tên nó nói lên tất cả rồi. chúng ta chỉ bàn luận về autocad thôi, kiêm nhiều thứ quá loãng lắm.


  3. Mấy bấc pro giúp em với. Em search trong diễn đàn rồi mà không thấy. Em có một polyline gồm các đường line và arc, em muốn lấy ra thông tin của tất cả các đối tượng này. Line thì lấy được rồi, nhưng còn các arc thì bó tay. Có ai giúp em với.

     

    Bạn tham khảo lisp PLJointsup trong bộ express

    Đây là 1 đoạn mình tìm thấy, chưa có nhiều thời gian để đọc code

    p1 : the iner segement

    p2 : the end point (first or last)

    a : the bulge

    (setq C (acet-geom-pline-arc-info p1 p2 a)) ;arc segment

    (caddr C) ; get delta angle from arc_info


  4. Cái này về thuật toán cũng đơn giản thôi à

    Ví dụ :

    (setq TCVN3 (list "A" "B" "C" .....))

    (setq VNI (list "@" "#" "%" .....))

    ...

    thì thuật toán của autolíp là chỉ việc tìm và thay thế giữa tcvn3 và vni hay unicode .. và ngược lại mà thôi

    :)

    Her her. đơn giản thế thôi à? bạn làm thử chưa? bạn có hiểu gì về các bảng mã không mà cho rằng nó đơn giản như vậy?

    Thực chất giữa file *.shx và các font windows là như nhau, chỉ khác nhau là các bảng mã TCVN3 hay VNI hay Unicode thôi

    Cái này cũng hồ đồ luôn. 2 font cùng 1 bảng mã vẫn có thể sảy ra trường hợp người tạo ra nó không đưa vào số lượng các ký tự bằng nhau, hoặc khác mã nhau ở một vài ký tự đặc biệt. cái này thường là do mục đích sử dụng. nhất là đối với các loại font tự tạo như *.SHX

    Bạn nên chắc chắn về hiểu biết của mình 1 chút trước khi fát biểu ý kiến nha, với lại mình đâu có hỏi thuật toán nào để convert qua lại giữa các bảng mã đâu. mình đang hỏi công cụ nào để xem các font *.SHX mà, kiểu như charmap của window ấy. <_<


  5. vlconvert.png

    Bạn có cái số điện thoại đẹp wá xá :)

    npham cho mình hỏi hơi ngoài lề 1 chút. Mình cũng đang nghiên cứu các bảng mã và vấn đề convert qua lại giữa các bảng mã trong autocad và trong lisp. Có cách nào để tra được toàn bộ ký tự được định nghĩa trong 1 file *.SHX không nhỉ?


  6. Cảm ơn bạn.

    Mình quên nói thêm là trước đó mình đã thiết lập giá trị a là giá trị nào đó. Ví dụ a=6, chẳng hạn

    Ví dụ :

    (defun TEST ( / a)

    ̣̣(setq a 6)

    ...

    (action_tile "nutB" "(setq a 1)")

    ...

     

    Biến a khi kết thúc chương trình là biến lưu. Kết thúc chương trình là 1 phép gán => Nên không thể khai báo a là biến cục bộ đươc.

    Nhấn vào Button "nutB" để thiết lập biến a =1 thì mình đã biết cách

    Vấn đề làm sao là khi khởi động hộp thoại lên rồi. Mình không nhấn vào Button "nutB" thì biến a được thiết lập là NIL (hoặc 1 giá trị nào đó) (khi kết thúc lệnh)

    Ví dụ không nhấn vào button B thì a được gán là giá trị NIL (setq a NIL), hoặc 1 giá trị nào đó (setq a 8) (khi kết thúc lệnh)=> Nên không thể khai báo a là biến cục bộ đươc. a là biến được lưu lại khi kết thúc chương trình.

    a=NIL hoặc 1 giá trị nào đó khi User không nhấn vào Button B

     

    Các bác có cách nào không?

    Thành thật xin lỗi vì mình trình bày chưa được rõ ràng

    Đọc một hồi em luân nó ra thế này anh xem có đuợc không nhé.

    (defun c:test ()

    (setq a 6)

    ....

    (action_tile "nutB" "(setq a 1)")

    (action_tile "cancel" "(setq a nil)(done_dialog)")

    (action_tile "accept" "(setq a 8)(done_dialog)")

    • Vote tăng 1

  7. Có vẻ việc giữ bản quyền khiến mọi người đau đầu quá nhỉ. Nhưng tựu chung lại thì nếu lấy đc code nguồn thì vẫn bị bẻ khóa bình thường, vì thế vấn đề viết code và mã hóa code như thế nào để không thể dịch ngược, hoặc có dịch được cũng rơi vào tình trạng không thể đọc hiểu được code mới là điều quan trọng nhất.

    Hiện tại mình mới biết có 4 cách mã hóa

    - Mã hóa bằng thuật toán cổ xưa nhất mà loài người từng sử dụng: thay thế ký tự kiểu: tao mà hô "bài đẹp quá không biết oánh con " nghĩa là tao có 2 con J. Kiểu này một số bác ở cadviet trước từng sử dụng, đối tượng mã hóa là các biến và hàm tự định nghĩa trong code để làm cho thằng cracker hoa mắt chóng mặt khi đọc. Để thêm phần chắc ăn thì thường kết hợp cách này với 1 trong 2 cách dưới đây.

    - Mã hóa bằng PROTECT tool. kiểu này đã từng khá thành công nhưng đến giờ là đồ bỏ vì đã có tool dịch ngược hoàn toàn.

    - Mã hóa bằng các công cụ của Vlide để tạo ra file định dạng FAS hoặc VLX. đã có công cụ dịch ngược nhưng không fải hoàn toàn, tuy nhiên đọc vẫn hiểu. Vài bác quăng boom bẩu có sở hữu những công cụ khác đặc hiệu cho 2 định dạng này, có thể dịch đc 100%. mình chưa biết thực hư thế nào.

    - Có 1 công cụ mã hóa khác nữa mà trước đây google mách cho mình (mình quên tên nó mất rồi). Cũng mã hóa 1 file LSP ra 1 file LSP (dung lượng file mới nhẹ hơn) giống như PROTECT tool. hăm hăm hở hở áp sản phẩm vào thì lại không chạy. bó tay

    Ngoài ra một số công ty họ cũng tự xây dựng công cụ mã hóa và giải mã riêng cho mình bằng loại ngôn ngữ khác có tính bảo mật cao hơn nhưng chỉ lưu hành nội bộ.

    Nếu các bác còn biết công cụ mã hóa nào khác thì bổ xung thêm để mình nghía qua tý :D


  8. Nói phét làm gì bạn

    Mà tôi đảm bảo đối với nghề thiết kế hạ tầng thì tôi có nhiều phần mềm nhất

    Thiệt hả? Nghe thèm quá! Anh VUVUZELA đẹp giai, ga lăng, hào phóng, bóng loáng có phần mềm gì hay post cho bọn em xin đi 38.gif

    Bữa nào sẽ có liveshow thứ 2 (FULL) đấy bạn ạ. Chờ xem nhé

    Hề hề hề. vâng, anh em cũng hi vọng Liveshow thứ 2 sẽ hoành tráng lung linh lộng lẫy hơn liveshow 1. chứ em nói thật bác đừng bùn. liveshow 1 của bác dở ẹc ah.tụi em chả thấy gì để mót cả. với lại giờ tụi em hông có dùng HS để san nền nữa rùi bác ợ :D


  9. Có sự nhầm lẫn ở đây.

    Tui chỉ nghĩ đơn giản cách chống GHOST là "cách chống GHOST".

    Nhưng với VUVUZELA cách chống GHOST là "cách chống GHOST" sao cho không bẻ khóa đuợc.

     

    Vấn đề của bạn là cách tạo khóa(KEY).

    Nếu bạn lấy Serial Number của HDD, MainBoard hay CPU thì GHOST làm sao bẻ khóa đuợc.

    (Vì Serial Number của mỗi thiết bị là duy nhất)

     

    If (Get_Serial_Number = ****)

    Run AutoLisp

    Then

    Exit.

    có lẽ là vuvuzela cung cấp phần mềm cho ai đó dùng thử nhưng giới hạn số lần sử dụng thì mới cần bày trò này bác ợ. còn cách của bác thì chỉ có tác dụng xác định chính xác 1 người dùng duy nhất được phép sử dụng chương trình.

    @Vuvuzela: bạn có nói fét không vậy? các máy cấu hình có giống nhau đi nữa thì các số Serial Number của HDD, MainBoard hay CPU hoàn toàn khác nhau. trừ khi cty bạn xài hàng Tung Của (kể cả trong trường hợp này mình cũng chưa gặp trường hợp trùng nhau)


  10. @bác NDBNGO: Việc tổng hợp các lisp trên diễn đàn này lại là điều không thể. có quá nhiều vấn đề ngăn cản chúng ta làm việc đó:

    - Ai cũng có công việc và ai cũng phải lo chuyện cơm áo gạo tiền. và mỗi thành viên dù là nhiệt huyết nhất trên diễn đàn này cũng đều phải dành phần lớn thời gian cho điều đó. việc tổng hợp lại tốn quá nhiều thời gian và công sức. ai trả tiền cho họ đây? hứng thú nào để họ làm việc đó?

    - những thành viên tiêu biểu và nhiệt tình trong box autolisp này post code vì niềm đam mê với lisp và ý thức chia sẻ với cộng đồng. ngoài mục đích được giao lưu học hỏi họ không vì bất kỳ 1 lợi ích cá nhân nào khác. thế nên không thể quy trách nhiệm cho họ khi người dùng gặp khó khăn trong việc lựa chọn công cụ làm việc tốt nhất cho mình.

    - Trong công việc, bản thân mỗi người có 1 thói quen làm việc riêng. Đặc thù công việc của mỗi người cũng khác nhau. chưa nói tới việc mỗi công ty, mỗi doanh nghiệp lại có 1 chuẩn riêng cho mình. tổng hợp cho vừa ý đối tượng này thì lại là đồ bỏ với đối tượng khác. những lời chê bai sau đó ai là người phải nhận đây?

    - vân vân và vân vân những lý do tương tự khác. Tựu chung lại là sẽ chẳng ai có hứng thú làm việc này trừ khi làm cho chính bản thân mình.

    và điều cuối cùng em muốn nói: không thể thụ động chờ người khác được. mỗi chúng ta trong công việc tốt nhất là tự mình viết lấy những gì mình cần, nếu không có khả năng viết thì hãy chịu khó bỏ một chút công sức ra cop nhặt lắp ghép cho phù hợp với nhu cầu của mình nhất. hồi mới ra trường em cũng làm thế. việc này chẳng mất nhiều công sức nhiều nếu so với công sức và thời gian người ta viết hộ mình đâu bác ạ.

    • Vote tăng 1

  11. Get HDD Serial -> convert sang một số bí mật (bằng hàm 1 chiều) -> ghi vào registry

    theo em hiểu thì hàm 1 chiều mà bác Hoành nói ở đây là 1 hàm thay thế ký tự của 1 chuỗi. đây là cách mã hóa đơn giản nhất trong các thuật toán mã hóa. người viết code mã hóa có thể thay thế 1 ký tự hay "1 chuỗi ký tự có tính chất tương đồng bằng" 1 ký tự hoặc 1 chuỗi ký tự khác.

    • Vote tăng 2

  12. Trên diễn đàn đã có nhiều phần lisp xuất text (giá trị cao độ) trên màn hình ra file (với định dạng thu tu,X,Y,Z) nhưng mình cần khi xuất ra file các tập hợp này được sắp sếp theo các lựa chon sau -4 lựa chọn người dùng-(giá trị X tăng, X giảm,Y tăng,Y giảm). Nhờ các ban có thể viết giúp mình lisp với các lựa chọn như vậy .

    Trong các text này ,nếu giá trị text nào được lựa chọn bằng chuột (Chọn điểm text cần thêm ghi chú) thì sẽ thêm giá trị text theo người dùng yêu cầu khi xuất ra file (ví dụ mặc định là chữ T chẳng hạn)

    Ví dụ : Sau khi chọn 1 tập hợp các text trên màn hình sẽ xuât ra file theo y tăng(y theo trắc địa và là x trên cad)

    1 12.36 42.36 17.36

    2 13.56 42.38 15.34

    3 12.35 42.56 14.38 T

    4 12.39 42.65 13.32

    Trong đó cột 1 là số thứ tự cột 2 là giá trị x,cột 3 giá trị y,cột 4 giá trị Text trên màn hình ,T là giá trị chuỗi thêm vào text cần đánh dấu trên màn hình bằng bấm chuột .

    Các bạn Thaistreetz và phamthanhbinh cũng đã ngiên cứu viêt về vấn đề gần giống như vậy ,nhưng chưa thấy các lisp đó trên diễn đàn. Nhờ các bạn hỗ trợ

    Xin cảm ơn.

    Đọc đi đọc lại mà em vẫn chưa hiểu ý bác lắm. Riêng phần yêu cầu sắp xêp tọa độ các điểm theo ý của bác thì em nghĩ có cách làm đơn giản hơn, đó là dùng excel để sắp xếp. Cụ thể là thế này:

    - Bác cứ chạy các điểm cần thống kê tọa độ và cao độ ra file text. làm bằng cách nào thì chắc bác đã biết. diễn đàn đã có rất nhiều công cụ để làm việc này.

    - có file text rồi bác mở nó lên bằng excel. chọn tất cả các hàng cần sắp xếp.

    - tìm công cụ filter (nếu bác dùng excel 2007 thì nó nằm ở menu data) và bấm vào nó đẻ kích hoạt)

    - khi đó ở đầu các cột sẽ có 1 mũi tên. bấm vào nó rồi lựa chọn cách săp xếp theo ý của bác. sau khi đã sắp xếp xong thì bác tắt Filter đi.

    hi vọng đúng ý bác.


  13. Đơn giản mà. Cách làm vẫn giống cách bác Tue_NV đã làm đó thôi

    - Trước khi vẽ boundary bạn lấy ename của đối tượng cuối cùng được tạo ra trong bản vẽ bằng hàm entlast

    - vẽ boundary. lệnh này có thể sinh ra n đối tượng. kệ nó

    - có cái mốc ở bước 1 rồi thì bạn cứ thế mà Entnext cho đến khi hàm entnext trả về nil là bạn đã thu được toàn bộ ename của các đối tượng mới.

    (setq EL (entlast))

    (vl-cmdf "-boundary" "a" "o" "r" "x" test "")

    (while (setq EL (entnext EL)) (setq Listname (cons EL Listname)))

    • Vote tăng 1

  14. @NgocNam.Cad

    Lisp này cách làm việc vẫn tương tự lisp cũ. Vì mình không tin tưởng việc làm thưa tự động (lại giống Nova thì bằng nhau) nên lisp vẫn yêu cầu xóa thủ công các đường dóng sao cho hợp lý nhất.

    (chú ý: không được xóa đường dóng ngoài cùng bên trái mỗi trắc ngang vì lisp lấy đường này làm mốc tính toán)

    Sau khi đã làm thưa đường dóng trên trắc ngang thì chạy lisp này. Tại dòng nhắc "Chọn trắc ngang cần sửa" chỉ cần chọn 1 đối tượng bất kỳ trên trắc ngang là được. Lisp này có thể chạy cả trong môi trường cad và nova mà không ảnh hưởng đến kết quả chạy nova. nếu gặp lỗi gì thì thông báo lại cho mình.

    Lisp post bằng code của diễn đàn bị lỗi nên bạn download tại đây Njoy n' Have fun :undecided:

    • Vote tăng 1

  15. Thôi để mình viết lại nó vậy.

    EDTN là lệnh của nova2005. tuy nhiên thuật toán làm thưa mà nova sử dụng không hiệu quả cho lắm nên kết quả chưa triệt để, không muốn nói là tệ hơn. tuy nhiên với các trắc ngang chạy từ mặt bằng san nền của hạ tầng thì nó dùng được. sử dụng thế nào thì cứ thử đi. hộp thoại của nó rất rõ ràng mà.

    • Vote tăng 1

  16. không , ý mình là mình đã vào được lệnh,load lips từu applecation , nhập lện vb chọn được các đối tượng, xong không thể kế thúc lệnh để lips thưc hiên lệnh .

    Bạn làm như mình bảo chưa vậy? ko có express tool thì lisp vẫn chạy. nhưng ra được kết quả là chuyện khác. bạn có chạy đến... tết Congo cũng chẳng ra kết quả đâu.


  17. Cái này đã đạt được mục đích cuối cùng là tạo được đường bao. Tuy nhiên, còn vấp 1 vấn đề là phải chọn đối tượng 2 lần. Dẫu sao, cũng hay lắm rồi. Bạn chỉ cho xem demo mà chưa cho xin file lsp. Hy vọng bạn sẽ giúp, cám ơn nhiều.

    Cảm ơn thì bấm thank cho bác ấy đi. đây là nguời ta biểu diễn thì nguời ta làm thành 2 lần cho dễ xem chứ nhìn cái kết quả như thế kia thì chắc có thể chọn 1 nhát ăn ngay đuợc.

    • Vote tăng 1

  18. Chào bác 'Thaistreetz' và toàn thể ae diễn đàn. Em thấy lisp của bác rất hay và có tính ứng dụng rất lớn cho dân cầu đường, không biết bác và ae trong diễn đàn có kiến thức về autolisp có thể đầu tư thêm thời gian để phát triển nó thêm 1 chút được hok? cụ thể là nó sẽ điền giá trị cao độ và khoảng cách lẻ vào vị trí mà ta thiết lập (Bảng TN chẳng hạn: cao độ vào hàng cao độ, k/c lẻ vào hàng k/c lẻ). Ngoài ra có thể tự động kẻ đường dóng từ vị trí đó đến bảng TN. Nếu được như vậy thì tuyệt vời quá, hi.

    Đứng từ góc độ là người đọc bản vẽ. bạn thấy điều bạn nói ở trên có cần thiết hay không khi mà các thông tin về cao độ và khoảng cách đã được cung cấp đủ trong block cao cao độ? hay nó chỉ làm rối bản vẽ thêm?


  19. doanvanha001.jpg

    77.gif77.gif77.gif77.gif Em chịu rồi. Bác nào viết dùm em được cái hàm con như thế này em hậu tạ 100 phát thank lun. hề hề 38.gif

     

    sao mình không chạy được lips của bạn vây? mình chon lệnh vb xong chọn đối tượng rồi không biết làm thế nào nữa?

    Cài Express tool đi bạn

     

    có thể nối đường spl với đường line không?

    77.gif77.gif77.gif77.gif Em cũng chịu lun

×