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

dinhtuong18

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

    18
  • Đã tham gia

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

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


  1. 2 giờ trước, 7o7 đã nói:

    Khó nhỉ!!! Đây lại là 1 đề tài khác với bài toán tìm "các polyline có hình dạng tương ứng" .. Hình như trước đây có làm rồi nhưng không biết bài toán đó có lời giải chưa.

    Đề tài đó còn khó hơn nhiều so với chèn block. Chưa chắc có người giải đâu  bác, yêu cầu của bác chắc không có kết qủa rồi.

    vậy mình chỉ định block chỉ chèn cho khớp với polyline thì có đc ko anh


  2. Vào lúc 27/5/2019 tại 14:45, Duong Nhat Duy đã nói:

    Mình xin chia sẻ cho các bạn 1 lisp tự động insert block theo ý muốn:

    Lệnh:

       i1 - Insert block theo đường dẫn Line, Pline (có thể insert theo đỉnh, trung điểm các đoạn pline, block xoay theo đường dẫn)

       i2 - Insert block theo các giao cắt Line, Pline

       i3 - Insert block tại các Text, Block chỉ định (block xoay theo block chỉ định, tự nhận att theo text nếu là block thuộc tính)

       i4 - Insert block tại các Point

       i5 - Insert block tại các Circle (tâm hình tròn)

     

    Insert Block.LSP

    em có sẵn file chứa các block,khi em chèn file đó vào bản vẽ thì nó có thể tự tìm các polyline có hình dạng tương ứng để chèn block đó vào đc ko ạ
    em cảm ơn

    image.thumb.png.b9fcab26e1fa7b9d4c52672a032f6e57.png

    help.dwg

    • Vote giảm 1

  3. 4 giờ trước, huunhantvxdts đã nói:

    Gửi tặng bạn điều kiện đường bao bên ngoài phải là đường polyline (nếu bên trong có đường Polyline nữa thì phải xét đến layer nhé)

    
    (defun c:TNBL (/ cur_lay oldos lstpl stt o p3 p4 ss ten)
    (setq cur_lay (getvar "clayer" ))
    (setq oldos (getvar "OSMODE"))
    (setvar "osmode" 0)
    (setvar "cmdecho" 0)
    (command "UNDO" "Be")
    (vl-load-com)
    (prompt "\nChon duong bao Polyline")
    (setq lstpl (CV:ss-to-list (ssget '((0 . "LWPOLYLINE"))) T))
    (setq stt 1)
    (foreach ent lstpl
    (setq o ent)
    (vlax-method-applicable-p o 'getboundingbox)
    (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list o 'a 'b))))
    (setq p3 (vlax-safearray->list a))
    (setq p4 (vlax-safearray->list b))
    (setq ss (ssget "C" p3 p4))
    (setq ten (menucmd "M=$(edtime, $(getvar, date),MODDYYHHMMSS)"))
    (setq ten (strcat ten (rtos stt 2 0)))
    (command "_.-block" ten  p3 ss "")
    (command "_.insert" ten "_S" 1 p3 "")
    (setq stt (+ stt 1))
    )
    (command "UNDO" "End")
    (setvar "clayer" cur_lay)
    (setvar "osmode" oldos)
    (setvar "CMDECHO" 1)
    (princ)
    )
    (defun CV:ss-to-list (ss vla / n e l)
    (if ss
    (progn
    (setq n (sslength ss))
    (while (setq e (ssname ss (setq n (1- n))))
    (setq l (cons (if vla (vlax-ename->vla-object e) e) l))
    )
    )
    )
    )

     

    em cảm ơn bác nhiều ạ


  4. 16 phút trước, NTHAHT đã nói:

    Mình đoán chỗ khoanh đó là Mtext, và vùng bao của mtext đó bị tràn ra ngoài các đường bao quanh.

    Kiểu thế này:

    image.png.585067cc5fbc58c4c0450cf629e51b7e.png

    Để được như ý, bạn nên chỉnh lại Mtext sao cho các mũi tên màu xanh nằm trọn trong vùng bao.

    vâng,em thử lại với ko có text rồi ạ,ok rồi bác ạ,em cảm ơn bác nhiều

    nhưng tốc độ sử lý hơi lâu bác ạ,nó nhanh nhanh như lisp gốc của em thì tốt ạ


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

    để chạy được đường bao bên ngoài bạn tại thành 1 đối tượng polyline nhé. may ra viết được, chứ các đối tượng rời rạc vậy rất khó để biết được đâu là 1 nhóm các đối tượng cần tạo block

    vâng,đường bao bên ngoài em có thể vẽ thành 1 đối tượng polyline kín đc đc ạ,bác xem có cách nào giúp em với ạ,em cảm ơn


  6. 5 giờ trước, NTHAHT đã nói:

    Mình viết giúp 2 bạn ở trên, trong lisp có 2 lệnh.

    1- Lệnh QB: Mỗi lần quét chọn (tập chọn) -> tạo ra 1 block.

    2- Lệnh QBS: Mỗi đối tượng trong tập chọn là 1 block.

     

     

    QB-QBS.rar

    image.thumb.png.64e3bcda29a2abb1136bbdc0417e5e6b.png

    lệnh QB của bác điểm chèn block nó ko nằm trên góc của đối tượng ạ,bác sửa lại giúp em tí đc ko ạ


  7. em copy trên mạng đc cái lisp tạo nhanh block này,nhưng nó chỉ cho tạo từng đối tượng một và phải chọn điểm chèn cho nó
    giờ em muốn quét chọn 1 lúc nhiều đối tượng và tạo block cho từng đối tượng đó,điểm chèn là góc dưới cùng bên trái ạ

    (ghi chú: điểm chèn em muốn mặc định là điểm có tọa độ X nhỏ nhất và tọa độ Y là nhỏ nhất của đối tượng ạ)

    em cảm ơn ạ,rất mong đc các bác giúp đỡ ạ

    QB.lsp

    block.PNG


  8. 1 giờ} trướ}c, CadExTools đã nói:

    Tìm Google cũng có thôi.

    Gửi bạn test thử. Lệnh WBP

    Mỗi bản vẽ tạo ra sẽ nằm trong thư mục của bản vẽ nguồn nhé.

    Split Object_WBP.lsp

    không đúng với ý em ạ,nhờ bác chỉnh sửa lại giúp em đc ko ạ,em có gửi file cho bác đây ạ
    tên file mới bác có thể sửa thành "tên file gốc" + "-" + "số thứ tự" giúp em đc ko ạ
    ví dụ như file của em QIS-06 thì sẽ thành QIS-06-01 ; QIS-06-02......
    em cảm ơn ạ

    QIS-06.dwg


  9. Ví dụ em có 1 file dwg có chứa các đối tượng như hình tròn,hình tam giác,hình vuông.Làm thế nào để em xuất mỗi hình đấy thành 1 file dwg riêng ạ
    Em có biết lệnh wirte block nhưng cách đó hơi lâu ạ,vì số lượng đối tượng cần tách nó nhiều
    Rất mong các anh chị giúp đỡ ạ.Em cảm ơn!


  10. Vào lúc 23/5/2020 tại 23:14, thiep đã nói:

    Lisp co kéo thanh thép có hệ lỗ, lệnh là CLP. Xem clip minh hoạ ở đây:

     

     

    Keocohelo.rar

    em cảm ơn thầy đã giúp đỡ,lisp dùng rất ok rồi,nhưng nếu có thể thầy giúp em thêm mục nhập chiều dài muốn kéo giãn hoặc co lại thay vì kéo chuột đc ko ạ,vì kéo chuột như thế sẽ ko đc chuẩn ạ


  11. Nhờ các anh trong cộng đồng cadviet giúp em viết lisp với ạ

    Em có một hình chữ nhật cho trước,bên trong hình chữ nhật có các hệ lỗ đã được chia khoảng cách cho trước,giờ em muốn kéo giãn hay co ngắn hình chữ nhật đấy thì các hệ lỗ bên trong cũng sẽ tăng lên hoặc giảm đi và chia đều như các khoảng cách cho trước ạ
    Em cảm ơn

    demo.dwg


  12. em đã tham khảo nhiều lisp trên cadviet về đo độ dài và xuất toạ độ điểm của đường line và polyline nhưng chưa đúng với nhu cầu của em.

    em có đường polyline bên ngoài và bên trong polyline có nhiều hình dạng vuông tròn (như bản bẽ đính kèm)

    em nhờ các bác giúp em làm sao để đo độ dài của từng polyline một và ghi toạ độ ra file excel đc ko ạ
    lưu ý thêm là em muốn đo độ dài và toạ độ từ bên trong ra bên ngoài và theo thứ tự ạ và khi xuất ra file excel theo từng hàng cột một ạ

    rất mong các bác giúp đỡ ạ.em cảm ơn

     

    demo.dwg

    • Vote giảm 2
×