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

[TRỢ GIÚP] SỬA LISP HATCH NHANH VẬT LIỆU TẠO BẢNG CHỌN

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

-Dạ, em xin chào anh chị trên diễn đàn. Tình hình là em có 1 lisp hatch nhanh các vật liệu thông dụng nhưng nó hiện bắt nhập chữ khi chọn, nhờ mọi người có thể thay đổi bằng tạo một bảng chọn em có thể chọn cho nhanh thay vì đánh chữ không ạ, nếu được tạo giúp em bảng chọn có Scale và Angle đã cài mặc định trong lisp (và có thể thay đổi theo ý ạ) và lưu thông tin thông số hatch gần nhất ạ. Em chân thành cảm ơn ạ 

Quote

(defun c:SF(/ en1 list1 i)
  (setq en1  (entlast)
    list1 '(("B"  ("BETONG"   30  0.0))
        ("B1"  ("AR-CONC"   20  0.0))
        ("B2"  ("GRAVEL"   150  0.0))
        ("BK"  ("SOLID"    200  0.0))
        ("G"   ("ANSI31"   400  0.0))
        ("GD"  ("AR-B816"   10  0.0))
        ("GD1" ("FLGSTONE" 500  0.0))
        ("GD2" ("CUTSTONE" 500  0.0))
        ("GD3" ("FLDSTONE" 300  0.0))
        ("GL"  ("NET"     1500  0.0))
        ("GL1" ("ANGLE"    400  0.0))
        ("GL2" ("AR-HBONE"  20  0.0))
        ("D"   ("HOUND"    500 45.0))
        ("D1"  ("EARTH"    500 45.0))
        ("C"   ("AR-SAND"   20  0.0))
        ("K"   ("AR-RROOF" 500 45.0))
        ("N"   ("AR-RSHKE"  30  0.0))
        ("N1"  ("SPANTIL2" 250  0.0))
        ("N2"  ("SCALLOP2" 200  0.0))
        ("TO"  ("ANSI32"   700 45.0))
        ("TO1"  ("ANSI33"   700 45.0))
        ("GO"  ("WOOD8"    700  0.0))
        ("GO1" ("WOOD2" 500 0.0))
        ("NUOC" ("WATER" 50 0.0))
        ("NUOC1" ("DASH" 300 0.0))
        ("B40" ("1-Luoi B40" 2.5 45.0))
        ("CO" ("GRASS" 150 0.0))
        ("CHA" ("DOTS" 800 0.0))
        ("SAO" ("STARS" 300 0.0))
        ("TGIAC" ("TRIANG" 200 0.0))
        ("LGIAC" ("HEX" 200 0.0))
        ("CKEO" ("SECGRILL" 60 0.0))
        ("SSAT" ("1-Mosaic" 35 0.0))
        ("SGO" ("1-San go" 50 0.0))
        ("SAT" ("GEOL1" 100 0.0))
        ("SAT1" ("GEOL2" 100 0.0))

        ))
    
  (setvar "cmdecho" 0)
  (initget (apply 'strcat (mapcar '(lambda(x) (strcat (car x) " ")) list1)))
  (if (setq i (vl-position
        (getkword (strcat "\n Chon kieu hatch < "
                  (vl-string-right-trim "/" (apply 'strcat (mapcar '(lambda(x) (strcat (car x) "/")) list1)))
                  " > : "))
        (mapcar 'car list1)))
    (progn
      (mapcar 'setvar '(hpname hpscale hpang)
          (list (caar (setq i (cdr (nth i list1))))
            (cadar i)
            (*(/ (caddar i) 180) pi)))
      (initdia)
      (command "-hatch")
      (while (< 0 (getvar "CMDACTIVE"))
    (command pause))
      (if (/= en1 (setq en1 (entlast)))
    (while (setq i (cdr i))
      (entmakex
        (mapcar '(lambda(x)
               (cond ((eq (car x) 2) (cons 2 (caar i)))
                 ((eq (car x) 41) (cons 41 (cadar i)))
                 ((eq (car x) 52) (cons 52 (*(/(caddar i)180)pi)))
                 (T x)))
            (entget en1)))
      (setq i (cdr i))))))
  (princ))

 

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
19 giờ trước, GIRLXAYDUNG đã nói:

-Dạ, em xin chào anh chị trên diễn đàn. Tình hình là em có 1 lisp hatch nhanh các vật liệu thông dụng nhưng nó hiện bắt nhập chữ khi chọn, nhờ mọi người có thể thay đổi bằng tạo một bảng chọn em có thể chọn cho nhanh thay vì đánh chữ không ạ, nếu được tạo giúp em bảng chọn có Scale và Angle đã cài mặc định trong lisp (và có thể thay đổi theo ý ạ) và lưu thông tin thông số hatch gần nhất ạ. Em chân thành cảm ơn ạ 

 

https://drive.google.com/file/d/14OyLpFqjdwHoMKop4pQcItrApV-2UvJA/view?usp=sharing

  • 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
2 giờ trước, NTHAHT đã nói:

Nó hiện bảng gì bạn? Hình thù nó ra sao?

Nó hiện bảng chọn hatch như ảnh gửi kèm trong file rar đó. Nhưng tắt ngay lập tức. Thử nhiều lần đề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
10 giờ trước, amateurday đã nói:

Nó hiện bảng chọn hatch như ảnh gửi kèm trong file rar đó. Nhưng tắt ngay lập tức. Thử nhiều lần đều vậy đó.

Bạn tải lại ở link cũ xem sao!

  • Like 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
17 giờ trước, NTHAHT đã nói:

Cảm ơn bạn đã hỗ trợ, bạn có thể hỗ trợ nội dung tên trong danh mục hatch bằng tiếng việt cho dễ nhớ không ạ, 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

https://drive.google.com/file/d/1jGtc_PzVPvmzibCKf9c5K6zpuGvRapoD/view?usp=drive_link   (FILE LISP)
https://drive.google.com/file/d/14amOYQo2XCjrd_TbIvhN4KVZ4XXUjm8A/view?usp=drive_link  (FILE .DCL)
Trong thời gian các bạn trả lời mình có nhờ GPT nó tạo cho mình Lisp cũng khá giống ý tường của mình, nhưng mà mình không biết về Lisp nên thấy nó chạy chưa được mượt lắm ( bắt nhập một số thông số rồi mới hatch), nhờ các bạn xem rồi chỉnh lại giúp mình với được không ạ, 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
17 phút trước, cuongtk2 đã nói:

Nó đây.

@cuongtk2 Ngoài lề chút, bác có thể cho em xin cái mã code để tạo được hộp thoại dạng Properties này được không ạ? Em thấy kiểu này cũng khá hay mà chưa biết tìm thông tin ở đâ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
Vào lúc 8/8/2025 tại 11:52, GIRLXAYDUNG đã nói:

Cảm ơn bạn đã hỗ trợ, bạn có thể hỗ trợ nội dung tên trong danh mục hatch bằng tiếng việt cho dễ nhớ không ạ, cảm ơn

 

Cách làm không phải chờ ai, đợi ai:

1. Bạn tìm trong các file .pat, tên của mẫu hatch mà bạn cần dùng sửa lại theo nhu cầu (không dùng tiếng Việt có dấu).

2. Mở Excel, tạo nội dung như sau:

    + Cột A: Tên các mẫu hatch mà bạn đã sửa.

    + Cột B: Giá trị Scale.

    + Cột C: Góc xoay.

3. Ghi lại 1 file với tùy chọn: Save as type = Text (tab delimited) (*.txt), hoặc  Save as type = Text (MS-DOS) (*.txt)

4. Chạy lisp, chọn nút Browse để load file trên vào.

 

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
9 giờ trước, limfx đã nói:

Nó đâu a Cường?

Mở Youtube để download theo link, để anh sửa lại thành file setup để khỏi phải unblock dll khi download qua mạ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

Mình đang hoàn thiện bản mới, tự động preview.

Chọn các đối tượng hatch trên bản vẽ => đưa vào danh sách (tự động lấy scale, angle và preview). Tên người dùng tự đặt đưa vào nằm lọt trong vùng hatch.

 

  • Like 1
  • 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
21 giờ trước, NTHAHT đã nói:

Mình đang hoàn thiện bản mới, tự động preview.

Chọn các đối tượng hatch trên bản vẽ => đưa vào danh sách (tự động lấy scale, angle và preview). Tên người dùng tự đặt đưa vào nằm lọt trong vùng hatch.

 

Cái này hay quá ạ, mong bạn hoàn thiện và chia sẻ ạ, 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
18 giờ trước, GIRLXAYDUNG đã nói:

Cái này hay quá ạ, mong bạn hoàn thiện và chia sẻ ạ, cảm ơn

Bổ sung thêm so với video:

+ Khi quét chọn đối tượng Hatch trên bản vẽ, nếu không có text -> tên do người dùng tự đặt, lisp sẽ tự đặt tên ("Không tên").

+ Kích đúp (Double click) vào danh sách tên sẽ xuất hiện hộp thoại đổi tên.

+ Đối tượng Hatch chưa được định nghĩa (VD: Mở 1 file.dwg bất kỳ nào đó, có đ.tượng Hatch không thể thay đổi <Scale, Angle...> do trong AutoCad chưa có file .pat

    định nghĩa mẫu Hatch này)

      => Lisp sẽ tự động định nghĩa mẫu hatch này (Nếu tick chọn ở 2 thì sẽ ghi (append) vào file acad.pat hoặc acadiso.pat, ngược lại sẽ tạo 1 file .pat độc lập).

           *** Tính năng này yêu cầu thư mục: "C:\\Users\\xxxx\\AppData\\Roaming\\Autodesk\\Autocadxxxx\\enu\\support" được phép "write" - (Change Permissions)

+ Loại bỏ 1 mẫu hatch trong danh sách (Khi danh sách > 1 mẫu): Click chọn tên mẫu (thứ 2 trở đi - trên xuống), rồi click vào 1 (Nút @NTHAHT-2025)

+ Ghép các mẫu Hatch thành 1 mẫu (Định nghĩa mẫu mới): Trên danh sách tên click vào dòng 1, rồi click vào 1 (Nút @NTHAHT-2025) -> Tính năng này như sau:

     VD: Trên bản vẽ có 3 đối tượng Hatch (3 mẫu Hatch khác nhau)

Bước 1: Pick vào đối tượng Hatch 1 (tạm gọi là đối tượng gốc)

Bước 2: Lần lượt pick chọn các đối tượng hatch khác …

Sau khi kết thúc chọn, đối tượng 1 sẽ thay đổi thành mẫu hatch là tổ hợp của 3 mẫu ở trên.

Có link tải ở dưới video

(P/S: vì không tải ảnh lên được, nên mình để ảnh kèm theo trong file nén ở link).

  • 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
6 giờ trước, NTHAHT đã nói:

Bổ sung thêm so với video:

+ Khi quét chọn đối tượng Hatch trên bản vẽ, nếu không có text -> tên do người dùng tự đặt, lisp sẽ tự đặt tên ("Không tên").

+ Kích đúp (Double click) vào danh sách tên sẽ xuất hiện hộp thoại đổi tên.

+ Đối tượng Hatch chưa được định nghĩa (VD: Mở 1 file.dwg bất kỳ nào đó, có đ.tượng Hatch không thể thay đổi <Scale, Angle...> do trong AutoCad chưa có file .pat

    định nghĩa mẫu Hatch này)

      => Lisp sẽ tự động định nghĩa mẫu hatch này (Nếu tick chọn ở 2 thì sẽ ghi (append) vào file acad.pat hoặc acadiso.pat, ngược lại sẽ tạo 1 file .pat độc lập).

           *** Tính năng này yêu cầu thư mục: "C:\\Users\\xxxx\\AppData\\Roaming\\Autodesk\\Autocadxxxx\\enu\\support" được phép "write" - (Change Permissions)

+ Loại bỏ 1 mẫu hatch trong danh sách (Khi danh sách > 1 mẫu): Click chọn tên mẫu (thứ 2 trở đi - trên xuống), rồi click vào 1 (Nút @NTHAHT-2025)

+ Ghép các mẫu Hatch thành 1 mẫu (Định nghĩa mẫu mới): Trên danh sách tên click vào dòng 1, rồi click vào 1 (Nút @NTHAHT-2025) -> Tính năng này như sau:

     VD: Trên bản vẽ có 3 đối tượng Hatch (3 mẫu Hatch khác nhau)

Bước 1: Pick vào đối tượng Hatch 1 (tạm gọi là đối tượng gốc)

Bước 2: Lần lượt pick chọn các đối tượng hatch khác …

Sau khi kết thúc chọn, đối tượng 1 sẽ thay đổi thành mẫu hatch là tổ hợp của 3 mẫu ở trên.

Có link tải ở dưới video

(P/S: vì không tải ảnh lên được, nên mình để ảnh kèm theo trong file nén ở link).

Cho mình hỏi xíu là Vật liệu có Pattern: SOLID không thêm vào danh sách được, mình thêm vào bị lỗ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
1 giờ} trướ}c, GIRLXAYDUNG đã nói:

Cho mình hỏi xíu là Vật liệu có Pattern: SOLID không thêm vào danh sách được, mình thêm vào bị lỗi ạ

Bạn tải lại ở link 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
Vào lúc 11/8/2025 tại 18:05, NTHAHT đã nói:

Mình đang hoàn thiện bản mới, tự động preview.

Chọn các đối tượng hatch trên bản vẽ => đưa vào danh sách (tự động lấy scale, angle và preview). Tên người dùng tự đặt đưa vào nằm lọt trong vùng hatch.

 

anh ơi bản này anh có share ko, em vào link trên youtube mà nó yêu cầu quyền truy cập, anh accept giùm em nha, cảm ơn anh. dncouples@gmail.com

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

×