Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Xác Định 2 Đỉnh Đối Nhau Của Khung Tên Được Xref


  • Please log in to reply
1 reply to this topic

#1 ThanhDattdk

ThanhDattdk

    biết vẽ line

  • Members
  • PipPip
  • 23 Bài viết
Điểm đánh giá: 2 (bình thường)

Đã gửi 21 February 2017 - 08:00 AM

Xin chào các bác. Em muốn xác định 2 đỉnh đối nhau của khung tên được Xref để làm lisp IN [ lisp in chỉ quét khung tên được chọn thì tự bắt 2 đỉnh để preview hoặc in với đk mình đã ADDlayout từ trước ]. Mong các bác chỉ giáo thêm, em xin cảm ơn


  • 0

Hãy Quan Tâm Nhiều Hơn Đến Người Khác <<


#2 Bee

Bee

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 316 Bài viết
Điểm đánh giá: 103 (tàm tạm)

Đã gửi 21 February 2017 - 01:42 PM

Xin chào các bác. Em muốn xác định 2 đỉnh đối nhau của khung tên được Xref để làm lisp IN [ lisp in chỉ quét khung tên được chọn thì tự bắt 2 đỉnh để preview hoặc in với đk mình đã ADDlayout từ trước ]. Mong các bác chỉ giáo thêm, em xin cảm ơn

Có thể dùng box của Lee nhé. ^_^

Code here:

(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)
            )
        )
    )
)

  • 0