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

namds86

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

    15
  • Đã tham gia

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

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


  1. Chào mọi người, mình có tìm được lisp phát hiện chồng, hở nét, nhưng lisp hiện tại nó phát hiện line, arc chồng lên nhau có độ dài không bằng nhau. Bây giờ mình muốn nó phát hiện các line,arc trùng nhau có độ dài bằng nhau nó cũng phát hiện ra. Mình không đề cập đến lệnh "Overkil ở đây". Cảm ơn mọi người đã quan tâm. Đính kèm là lisp và bản vẽ cad test!

    image.png.8f3cb1a7c17ffb24ab3741082eed1ddd.png

    Phat hien ho va du net (PP).lsp

    Phat hien chong net.dxf


  2. 11 giờ trước, dinhtuong18 đã nói:

    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

    quét chọn 1 lúc nhiều đối tượng và tạo block cho từng đối tượng đó--> Mình cũng muốn giúp nhưng nằm ngoài khả năng của mình, hóng kết quả của các Pro!


  3. 3 giờ trước, Long Huỳnh đã nói:

    Em chào mọi người. Em xin mọi người giúp em viết 1 lisp insert 1 block của 1 bản vẽ bất kì vào 1 bản vẽ khác được không ạ. Lúc trước em có tải được file này. Nhưng ổ cứng cũ bị hư, phải đi thay mới, giờ quay lại thì link tải file này bị hư mất. Em cũng kiếm nhiều lắm mà ko thấy lisp nào làm được như này. Ở trong video, sau khi add lisp thì ở bất kì bản vẽ nào cũng có thể dùng lệnh đó để insert vào hết. Mong mọi người giúp em ạ. Em cảm ơn

     

    Tên file với block bạn đặt khác nhau thử xem. Mình test mà bị trùng không chạy được. Khác tên thì OK.

    Bạn thử Lisp dưới có chạy được không nhé!

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    (defun C:CD1 ()

      (command "_.insert" "Test") (command); "Test"-->ten file khong can duoi dwg, Ban de vo (C:\Program Files\Autodesk\AutoCAD 2018\Support\Test.dwg)

      (command "_.insert" "CD1" pause "1" "" "")

      (princ)

    )

    • Like 1

  4. 1 giờ trước, vietduc147258 đã nói:

    Em có lisp chuyển layer khi Dim. Nhưng khi Dim góc thì có 2 trường hợp chọn đối tượng line với trường hợp là chọn point. Với 2 lệnh tương ứng là DAN và DAN2.

    Các bác giúp em gộp 2 lệnh đó thành một với. Cảm ơn các bác đã quan tâm.

    
    (defun c:DLI ()(Command ".DIMLINEAR"	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
    (defun c:DAl ()(Command ".DIMALIGNED" 	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
    (defun c:DDI ()(Command ".DIMDIAMETER" 	pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
    (defun c:DRA ()(Command ".DIMRADIUS" 	pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
    (defun c:DAR ()(Command ".DIMARC" 		pause pause)		(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
    (defun c:DAN ()(Command ".DIMANGULAR" 	pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ))
    (defun c:DAN2()(Command ".DIMANGULAR" "" pause pause pause pause)	(command "._chprop"  "L" "" "LA" "DIM" "") (princ)) ; Dim goc lon hon 180 do
    (Defun c:QD  ()(Setvar "clayer" "DIM")(Prompt "\nChon doi tuong can Dim")(Setq ch (Ssget))(command "QDIM" ch "" Pause)(command "_LayerP")(Princ))

     

    Bạn thử cái này xem, Nếu góc <=180 độ thì đo bình thường, lớn hơn 180 độ thì Enter thêm cái nữa.

    -----------------

    (defun c:DAN ( / old )
        (setq old (getvar 'clayer))
        (setvar 'clayer "DIM")
        (command ".DIMANGULAR")
        (while (= 1 (logand 1 (getvar 'cmdactive)))
            (command "\\")
        )
        (setvar 'clayer old)
        (princ)
    )


  5. Của bạn đây nhé!

    ;;;;;;;;;;;;;;;;;;;;;;;;

    (defun c:CHENBLOCK ()
    (command ".ucs" "W" "")
    (setvar "cmdecho" 0)
    (command "undo" "be")
    (setq osm (getvar "osmode"))
    (setvar "regenmode" 1)
    (setvar "osmode" 0)
    (setq B (car (entsel "\ Chon block muon chen")))
    (setq C (entget B))
    (setq bl(cdr(assoc 2 C)))
    (initget (+ 1 2 4))
    (setq A1 (getreal "\nChon duong kinh duong tron muon chen block: "))
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    (prompt "\n Quet chon vung can chen block: ")
    (if(setq A (ssget "_:L" '((0 . "CIRCLE"))))
     (progn
      (setq n 0)
      (setq B (sslength A))
        (while (< n B)
         (setq C(ssname A n))
         (setq D(entget C))
         (setq E(cdr(assoc 10 D)))
         (setq E1(cdr(assoc 40 D)))
         (if(= (/ A1 2) E1)
         (command ".insert" bl E 1 "" ""))
        (setq n (+ n 1))
        )
     )
    )
    (setvar "cmdecho" 1)
    (setvar "osmode" osm)
    (command "undo" "end")
    (princ)
    )    

     

     

    • Like 1

  6. 12 phút trước, soledas đã nói:

    mình có các hình tròn có đường kính khác nhau 12,14,16,20,30 mình cần đếm được số lượng đường tròn và ghi text vào bản vẽ tương ứng với đường kính của đường nhờ các bạn viết dùm đoạn code vba

    Không phải VBA được không bạn, viết bình thường thôi!

    • Like 2

  7.  

    Vào lúc 28/9/2022 tại 21:23, dohoangviet1606 đã nói:

    Các bác cho em hỏi:Có lisp nào chèn 1 block( theo tên)  vào các Tâm đường tròn đường kính D không ạ?

    en tìm thấy trên mạng có lisp chèn block vào các giao điểm "ins", mong mọi người sửa cho em như yêu cầu trên ạ!

    Em cảm ơn!

    chenblocktaidiemgiao.lsp

    Bạn nói cụ thể hơn đi, Block đó có lưu sẵn trong file cad rồi hay mình tự chọn click vô. Tâm đường tròn lúc nào cũng Ø10?

×