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

Nhờ mọi người hướng dẫn giúp em

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

Hiện tại em có ý tưởng làm 1 lisp đánh dấu. Kiểu như em đang kiểm tra khối lượng, khi đúng sẽ gọi lệnh => chọn điểm bắt đầu => chọn điểm kết thúc. Lisp sẽ tạo ra 1 dấu tích chữ (V) để xác nhận là đúng, dấu tích (X) để xác nhận là sai. Mọi người hướng dẫn giúp em ạ. Em 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
Vào lúc 12/4/2025 tại 10:42, TanLoctaevl đã nói:

Hiện tại em có ý tưởng làm 1 lisp đánh dấu. Kiểu như em đang kiểm tra khối lượng, khi đúng sẽ gọi lệnh => chọn điểm bắt đầu => chọn điểm kết thúc. Lisp sẽ tạo ra 1 dấu tích chữ (V) để xác nhận là đúng, dấu tích (X) để xác nhận là sai. Mọi người hướng dẫn giúp em ạ. Em cảm ơn

Ý tưởng này rất là trừu tượng. Thế này đi, tạo chữ "V", Ctrl C, dò bản vẽ, chỗ nào OK thì Ctrl V. Bỏ qua chữ "X". Như thế thì tốc độ cũng ngang với code.

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

Khác nhau ở chỗ "đã check". Ý của người ta muốn là nếu đã OK thì bao vùng đó với hình chữ nhật 1 gạch chéo màu xanh, có lỗi thì khoanh lại với hình chữ nhật 2 gạch chéo màu đỏ. Còn vùng chưa khoanh là chưa kiểm, để còn tiếp tục kiểm. 

; **************************************************************
; Tác giả: hungmanhcuong
; Ngày: 2025-04-15
; Mô tả: Lệnh RECTCHECK để vẽ hình chữ nhật với 2 điểm góc, 
;        có tùy chọn màu sắc và kiểu kiểm tra "OK" hoặc "Faile".
; **************************************************************

(defun c:RectCheck ( / p1 p2 p3 p4 opt)
  ;; Chon kieu kiem tra, mac dinh la Faile
  (initget "OK Faile")
  (setq opt (getkword "\nChon kieu kiem tra [OK/Faile] <Faile>: "))
  (if (null opt) (setq opt "Faile"))

  ;; Chon 2 diem goc
  (setq p1 (getpoint "\nChon diem goc thu nhat: "))
  (setq p2 (getcorner p1 "\nChon diem goc thu hai: "))

  ;; Tinh cac diem
  (setq p3 (list (car p2) (cadr p1))) ; goc tren phai
  (setq p4 (list (car p1) (cadr p2))) ; goc duoi trai

  (cond
    ;; Kiem OK
    ((= opt "OK")
     (entmakex
       (list
         '(0 . "LWPOLYLINE")
         '(100 . "AcDbEntity")
         (cons 8 "Check_OK")
         (cons 62 3) ;; mau xanh la
         '(100 . "AcDbPolyline")
         (cons 90 6)
         (cons 70 0)
         (cons 10 p1)
         (cons 10 p3)
         (cons 10 p2)
         (cons 10 p4)
         (cons 10 p1)
         (cons 10 p2)
       )
     )
     (princ "\nDa kiem OK.")
    )

    ;; Kiem Faile (mac dinh)
    ((= opt "Faile")
     (entmakex
       (list
         '(0 . "LWPOLYLINE")
         '(100 . "AcDbEntity")
         (cons 8 "Check_Faile")
         (cons 62 1) ;; mau do
         '(100 . "AcDbPolyline")
         (cons 90 8)
         (cons 70 0)
         (cons 10 p1)
         (cons 10 p3)
         (cons 10 p2)
         (cons 10 p4)
         (cons 10 p2)
         (cons 10 p1)
         (cons 10 p4)
         (cons 10 p3)
       )
     )
     (princ "\nDa kiem Faile.")
    )
  )
  (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

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

×