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

Hữu Nhân

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

    7
  • Đã tham gia

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

Bài đăng được đăng bởi Hữu Nhân


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

    Của bạn đây nhé:

    
    (defun c:test ( / point entold et entnew)
    (setq point (getpoint "\nPick diem trong vung kin"))
    (while point
    (setq entold (cdr (assoc 5 (entget (entlast)))))
    (command "_.-boundary" point "")
       (setq et (entlast))
       (setq entnew (cdr (assoc 5 (entget (entlast)))))
        (if (/= entold entnew) 
    	(progn
            (entmake
                (append
                   '(
                        (000 . "LWPOLYLINE")
                        (100 . "AcDbEntity")
                        (100 . "AcDbPolyline")
                        (090 . 4)
                        (070 . 1)
                    )
                    (mapcar '(lambda ( p ) (cons 10 p)) (LM:boundingbox (vlax-ename->vla-object et)))
                )
            )
    		(entdel et)
    		(setq point (getpoint "\n Chon diem tiep theo: "))
    	)
    	(progn
    	(princ "chon diem sai")
    	(setq point (getpoint "\n Chon diem tiep theo: "))
    	)
        )
    )	
    (princ)
    )
    (vl-load-com) (princ)
    ;; Bounding Box  -  Lee Mac
    ; Returns the point list describing the rectangular frame bounding the supplied object.
    ; obj - [vla] VLA-Object
    
    (defun LM:boundingbox ( obj / a b lst )
        (if
            (and
                (vlax-method-applicable-p obj 'getboundingbox)
                (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'a 'b))))
                (setq lst (mapcar 'vlax-safearray->list (list a b)))
            )
            (mapcar '(lambda ( a ) (mapcar '(lambda ( b ) ((eval b) lst)) a))
               '(
                    (caar   cadar)
                    (caadr  cadar)
                    (caadr cadadr)
                    (caar  cadadr)
                )
            )
        )
    )

     

    Cám ơn anh nhiều ạ <3


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

    Cái này bạn xem có được không nhé!!

    
    (defun c:test ( / ent )
        (if (setq ent (car (entsel)))
            (entmake
                (append
                   '(
                        (000 . "LWPOLYLINE")
                        (100 . "AcDbEntity")
                        (100 . "AcDbPolyline")
                        (090 . 4)
                        (070 . 1)
                    )
                    (mapcar '(lambda ( p ) (cons 10 p)) (LM:boundingbox (vlax-ename->vla-object ent)))
                )
            )
        )
        (princ)
    )
    (vl-load-com) (princ)
    ;; Bounding Box  -  Lee Mac
    ; Returns the point list describing the rectangular frame bounding the supplied object.
    ; obj - [vla] VLA-Object
    
    (defun LM:boundingbox ( obj / a b lst )
        (if
            (and
                (vlax-method-applicable-p obj 'getboundingbox)
                (not (vl-catch-all-error-p (vl-catch-all-apply 'vla-getboundingbox (list obj 'a 'b))))
                (setq lst (mapcar 'vlax-safearray->list (list a b)))
            )
            (mapcar '(lambda ( a ) (mapcar '(lambda ( b ) ((eval b) lst)) a))
               '(
                    (caar   cadar)
                    (caadr  cadar)
                    (caadr cadadr)
                    (caar  cadadr)
                )
            )
        )
    )

     

    Hi anh, anh có thể chỉnh lại cách thức input là getpoint trong diện tích của đa giác kín được không anh.

    Cám ơn anh rất nhiều.


  3. Chào các anh,

    Em muốn nhờ các anh viết dùm lisp vẽ hình chữ nhật bao quanh đa giác.

    Bắt đầu lệnh bằng cách click vào diện tích đa giác.

    Sau đó vẽ và xuất  1 kích thước theo phương thẳng đứng Y như hình vẽ thôi.

    Em mới tham gia diễn đàn à, có gì sai sót mong các anh góp ý. Xin cảm ơn ạ.

    image.png.baa03247b3ad984251dbefa8d655bfbc.png

×