Đến nội dung


Hình ảnh
- - - - -

[Hỏi] Lisp xác định tỷ lệ khung Mview


  • Please log in to reply
3 replies to this topic

#1 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 05 September 2014 - 10:05 PM

Có vấn đề này mong các bác nếu giúp được giúp đỡ:

Trong layout có các khung MV, tỷ lệ khác nhau: ví dụ MV1: 1/100; MV2: 1/50

Có cách nào mà mình chỉ cần click vào khung mview đó thì biến hệ thống (getvar "dimscale") được gán bằng 100,...

Cám ơn !


  • 0

#2 hochoaivandot

hochoaivandot

    biết dimradius

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

Đã gửi 06 September 2014 - 01:00 PM

Phải ri không bạn?


(defun C:ttt()
    (if (setq e (car (entsel "Chon mview")))
      (setq sc (vla-get-CustomScale (vlax-ename->vla-object e)))
    )
    (setvar "dimscale" sc)
)


  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#3 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 06 September 2014 - 01:48 PM

cám ơn bạn

Cái này thì mình rõ rồi

Ý mình là không cấn chọn mview mà chỉ cần click chuột vào vùng chứa mview thôi


  • 0

#4 hochoaivandot

hochoaivandot

    biết dimradius

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

Đã gửi 07 September 2014 - 02:50 PM

Tôi hiểu yêu cầu của bạn rồi.

Bạn xem thử thế này có được không nhé

(vl-load-com)

(vl-load-reactors)
(if (= #ReactorCommand nil)
  (setq #ReactorCommand (vlr-command-reactor nil '(
                           (:vlr-commandEnded . DuongBaDiep)
                           ; (:vlr-commandWillStart . DuongBaDiep)
                          )
            )
  )
)
(defun DuongBaDiep (param1 param2)
    (if (or (= (car param2) "MSPACE") (= (car param2) "_.MSPACE")) (Lamgiday))
)
(defun Lamgiday()
    (setq ent (vlax-vla-object->ename
                    (vla-get-activepviewport
                      (vla-get-activedocument (vlax-get-acad-object)))))
    (setq cvscale (vla-get-customscale (vlax-ename->vla-object ent)))    
    (setvar "dimscale" cvscale)

    (alert (strcat "Moi setvar xong" (rtos cvscale)))
)

 

Chúc cuối tuần vui vẻ

P/S: Cái này có hiệu lực khi dùng lệnh mspace hoặc kích đúp chuột vào MView bạn nhé.

Tức là khi dùng command "MSPACE"


  • 1

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC