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

Nhờ sửa Lisp chuyển Layer khi DIM

Các bài được khuyến nghị

17 giờ trước, CuongXD7 đã nói:

Chào anh Duy, 
Em nhờ anh chỉ giúp em Lisp này xíu
 Quét chọn các đối tượng Dim rồi vào Properties gán cho biến  Dim Scale Oveall: 20
(Defun C: SDD()
  (Setq lis (Ssget '((0 . "Dimension"))))
  (setq Lis (setvar  "DIMSCALE"  20 ))
(princ))
Nhờ anh xem và chỉ giúp em với

(defun c:SDD  (/ ss)
  (and (setq ss (ssget '((0 . "DIMENSION"))))
       (mapcar '(lambda (x) (vla-put-ScaleFactor (vlax-ename->vla-object x) 20))
               (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
  (princ))

  • Like 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
17 phút trước, NTHAHT đã nói:

(defun c:SDD  (/ ss)
  (and (setq ss (ssget '((0 . "DIMENSION"))))
       (mapcar '(lambda (x) (vla-put-ScaleFactor (vlax-ename->vla-object x) 20))
               (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
  (princ))

Cảm ơn bác, file chạy đúng với mong muốn rồi, em cứ tưởng code đơn giản ai dè nó cũng phức tạp quá, cảm ơn bác rất nhiều

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
2 giờ trước, vietduc147258 đã nói:

Bạn thử cái này coi sao

    (setvar "DIMSCALE" 20)
    (command "-dimstyle" "_apply")

nhược điểm là Dim hiện tại sẽ chuyển sang dimstyle hiện hành

Em xin cảm ơn bác

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Theo tớ nghĩ thì tạo hẳn 1 cái dim mới thì dễ quản lý hơn chứ nhỉ? Chả nhẽ gặp số nào bé quá là ta cứ dimscale cho nó to lên à?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em cũng dùng 1 DIM cho bản vẽ thôi anh
Bước 1: Em vẽ các đối tượng bên Model tỉ lệ 1:1
Bước 2: Tạo 1 DIM 1:1 rồi Dim kích thước đối tượng đó
Bước 3: Đối tượng nào cần trình bày TL nào thì mình chỉnh biến DimScale theo TL đó 
Bước 4:  Qua Layout em tạo MV nữa là xong
Cách của em làm như vậy ^^, em cũng đang tìm hiểu và học hỏi thêm ... (Em đang dùng AutoCad2007)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Vào lúc 19/3/2024 tại 09:16, NTHAHT đã nói:

(defun c:SDD  (/ ss)
  (and (setq ss (ssget '((0 . "DIMENSION"))))
       (mapcar '(lambda (x) (vla-put-ScaleFactor (vlax-ename->vla-object x) 20))
               (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
  (princ))

Cái này dùng để xem trước kích thước thì rất tiện, nhưng tớ gặp lỗi là textstyle mà cố định height thì dimscale không thu phóng chữ được.

 

PS: có lẽ chúng ta nên LUÔN LUÔN cho textstyle với height = 0, đồng bộ xuyên suốt các bạn nhỉ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
20 giờ trước, amateurday đã nói:

Cái này dùng để xem trước kích thước thì rất tiện, nhưng tớ gặp lỗi là textstyle mà cố định height thì dimscale không thu phóng chữ được.

 

PS: có lẽ chúng ta nên LUÔN LUÔN cho textstyle với height = 0, đồng bộ xuyên suốt các bạn nhỉ?

Vẽ sử dụng Fit, Dimscale, Annotative ... thì mới để TextHeight trong Style = 0
Nhưng vẽ Scale hình chỉ thay đổi Dimlinear Factor thì lại nên để TextHeigh = 1 giá trị cố định

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×