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

tien2005

Thành viên
  • Số lượng nội dung

    504
  • Đã tham gia

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

  • Ngày trúng

    56

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


  1. 5 giờ trước, enscap đã nói:

    Mình tìm được lisp trên 1 web  lisp này thay đổi kiểu dim 

    Nhưng không có phần chọn dim, chỉ hiện lên các dim hiện có.

    Vậy nhờ các bạn biết về lisp xem giúp và thêm phần chọn kiểu dim để thay đội .

    xin chân thành cám ơn !

    (defun c:CHDM (/ sclst dms dmlst dcl_id wri)
     (setq dmlst '()
          obj (vlax-get-acad-object)
          doc (vla-get-activedocument obj)
          dms (vla-get-dimstyles doc))
    (vlax-for x dms (setq dmlst (cons (vla-get-name x) dmlst)))
    (setq dcl_id (vl-filename-mktemp nil nil ".dcl")
          wri (open dcl_id "w"))
      (foreach x '(
               "dimsty : dialog"
               "{label = \"DimStyle List\";"
               ":list_box {key = \"dmstyle\";" "multiple_select = false; height=10;}"
               "ok_cancel;"
               "}"
               )
      (write-line x wri))
      (setq wri (close wri))
    (< 0 (setq dcl-load (load_dialog dcl_id))
    (if (not (new_dialog "dimsty" dcl-load))(exit)))
    (start_list "dmstyle")(mapcar 'add_list dmlst)(end_list)
    (action_tile "dmstyle" "(setq sclst (get_tile \"dmstyle\"))")
    (action_tile "accept" "(done_dialog)(setq clk t)")
    (action_tile "cancel" "(done_dialog)(setq clk nil)")
    (start_dialog)    
    (unload_dialog dcl-load)
    (if clk
      (if sclst
        (progn
        (setq secstl (nth (atoi sclst) dmlst))
        (vla-put-activedimstyle doc (vla-item (vla-get-Dimstyles doc) secstl)))))
    (princ)) 

    lisp trên của bạn giống như chức năng đã có trên cad image.png.0b80217d5d2ff89e1ce1e97292220939.png 

    thêm phần chọn kiểu dim để thay đội: chưa rõ ý này. Cần thiết thì đưa hình minh hoạ hoặc file cad mô tả cụ thể

    image.png


  2. Vào lúc 16/10/2024 tại 16:37, huyennd đã nói:

    Bản vẽ em đang sắp xếp phía trên để đánh số thứ tự anh ạ. Dùng lisp của anh in thì lại lấy phía dưới để căn in, anh có thể chỉnh sửa lại lisp in không theo căn trên dưới được không anh? em cám ơn

    image.png

    Chọn chế độ "select order" để in. Xem hướng dẫn ở bài 1


  3. Vào lúc 3/8/2024 tại 16:19, quanghuy0812 đã nói:

    Thanks bạn đã chia sẻ lisp.

    Mình có cái muốn hỏi là Lisp này không nhận nét in trong cùng folder File Cad muốn in đúng ko bác? Do mình thấy mục Plotstyle chỉ hiện nét in trong thư mục mặc định nét in của Cad

    trong mục Plotstyle Bạn chọn ADD Plotstyle rồi chỉ đến thư mục chứa plotstyle của Bạn thì lisp sẽ copy các plotstyle có trong thư mục vào thư mục mặc định của cad, đồng thời cũng hiện trong danh sách chọn của lisp


  4. 2 giờ trước, limfx đã nói:

    Em tìm ra phương án rồi ạ: Lấy 2 điểm trên đối tượng, kiểm tra khoảng cách đến đường màu tím, nếu bằng nhau thì đường đó song song!

     

    12 phút trước, limfx đã nói:

    Cẩm ơn a tannguyen291 và amateurday: Thêm kiểm tra góc giữa 2 đường nữa là OK. Thanks!

     

    trên polyline tính góc phức tạp hơn. Có thể kiểm tra  thêm khoảng cách: p1p3 = p2p4 và p1p2 = p3p4


  5. 2 giờ trước, amateurday đã nói:

    Các bác ạ, tình hình là bản vẽ thường xuyên copy qua lại, dẫn đến việc nhiều nét trùng và lệch nhau tí tẹo (phải zoom 1000x mới thấy).

    Khi dùng lisp tính tổng chiều dài thì trùng tè le.

    Do đó, nhờ các bác giúp cho công cụ xóa trùng, xóa gần, hoặc giúp đánh dấu vị trí trùng để mò xóa bằng tay (chứ cứ quét đối tượng rồi thấy Properties > 1 rồi xóa thì phải dò từng chỗ mệt quá).

    Ví dụ như file kèm là chỉ có 100 đường thôi. Em đã thử Overkill bó tay.

    Doi tuong canh nhau.dwg

     

    Bạn tìm hiểu lệnh overkill

    • Vote tăng 1

  6. 3 giờ trước, duy782006 đã nói:

    Trong thực tế bài toán chia đoạn tường rào theo đường cong là có thiệt. Nhưng mình thì rải đuổi 1 đầu, thiếu đủ anh cuối chịu tuỳ thực tế chứ ít chơi cả 2 đầu chịu lắm, và cũng hiếm khi không đủ lại lấy bên đường thẳng qua vì như vậy mất chút đất của ranh thẳng chủ đầu tư sẽ bắt đền đấy.

     

    @duy782006 thực tế làm hàng rào theo ranh đất là không có vid ranh đất là các đoạn thẳng, chia hàng rào thì phải tính thêm khe lún (khe co dãn) giữa các phân đoạn rào

     

     

    Vào lúc 24/4/2024 tại 16:40, thuyen mai đã nói:

    Em chào các bác ạ!

    Em đang cần tìm một lisp chia góc thành nhiều đoạn theo chiều dài cho trước (theo hình như bên dưới).

    Các bác có thể giúp em viết lisp để xử lý bài toán này không ạ?

    Em không biết gì về Lisp cả nên phải đi nhờ em cũng ngại lắm.

    Rất mong được các bác giúp đỡ. Em cảm ơn nhiều ạ!

     

    image.png.34e2203de5e0af278b513acb623de357.png

     

    @thuyen mai trong video trên của mình chỉ cần nhập các số liệu: 3 điểm xác định góc, chiều dài đoạn, góc lệch giữa các đoạn liền kề ( hoặc nhập số phân đoạn ). Cách làm của Bạn là vẽ cung tròn rồi chia đoạn trên cung, bánh kính cung tròn để vẽ đã đúng chưa, đầu vào không đúng thì kết quả ra không đúng

     

    @All làm cách nào để đưa video từ youtube vào cadviet mà không phải là đường link


  7. Vào lúc 17/11/2023 tại 23:51, Xuân Lộc đã nói:

    Bác @tien2005em bị lỗi hiểm thị độ phân giải 4k win 11 ạ. Mong bác fix lỗi hiểm thị và lisp có chế độ đổi ngôn ngữ thuần tiếng việt ko ạ

    Bạn chụp màn hình rồi đưa lê đây xem như thế nào. ngôn ngữ thuần Việt dễ bị lỗi hiển thị do ngôn ngữ lisp của CAD

     


  8. Vào lúc 29/10/2023 tại 10:17, Tranvu2803 đã nói:

    Cám ơn a đã chia sẻ lisp rất hay này, e đang có vấn đề khi in nhiều bản vẽ với screening khác nhau thì phải làm sao ạ

     

    Lisp chỉ in các bản vẽ được chọn trong file, không can thiệp vào file định nghĩa nét in *.CTB *.STB

    Trong file có nhiều screening thì Bạn cài đặt theo màu, mỗi màu tương ứng với các giá trị screening khác nhau


  9. Vào lúc 20/8/2023 tại 10:46, tannguyen291 đã nói:

    Em đang thử viết một hàm Multi plot theo ý muốn của bản thân.

    Đang gặp vấn đề lớn ở hàm (vla-PlotToFile (vla-get-Plot adoc) fileplot)

    Nếu chỉ có 1 đối tượng để chọn in thì lisp hoạt động tốt.

    Tuy nhiên khi chiếu đến đối tượng thứ 2 để in thì sảy ra hiện tượng máy in trong cad đang hoạt động (máy in chạy nền). Gọi hàm vla-PlotToFile sảy ra lỗi 

    Em nghĩ rằng cần đợi đến khi plot thứ nhất xong thì mới plot lần thứ 2. nhưng làm sao để biết status plot để đợi

    Các bác dùng cách nào để giải quyết vấn đề này chỉ em với.

    Bạn chú ý đến biến hệ thống BACKGROUNDPLOT = 0

    • Like 1

  10. @HUY2Knó là 1 chế độ chọn đối tượng trong acad giống như chọn window, cross. Để chọn theo fence thì khi yêu cầu chọn đối tượng bạn nhập chữ F rồi sau đó chon, nó giống như bạn vẽ đương pline. các đối tượng nào bị pline cắt qua và nhìn thấy được trên màn hình thì đối tượng đó được chon

×