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

[Yêu Cầu] Lisp Chuyển Dim Từ Above Sang Below Và Ngược Lại

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

Xin chào mọi người,

Như yêu cầu , tôi muốn chuyển dim từ above sang below và ngược lại... tức là khi vào lệnh chọn 1 nhóm đối tượng dimension, sẽ chỉ chuyển qua lại ở 2 trạng thái này, nếu đang above sẽ chuyển thành below và đang below sẽ chuyển thành above.

Chọn đối tượng trước hay vào lệnh trước đều được, có thể chọn được nhiều đối tượng.

Xin cảm ơn.

  • Vote giảm 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

15454_dimabovebelow_1.gif

Có bắt buộc phải dùng Lisp không ?

 

Chỉnh sửa theo gia_bach

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âng .. tại vì trong đám lẫn lộn mà mình chọn đó nó vừa có above và below nên nếu mình manual mà chọn above hết hoặc below hết thì lại không đạt được mục đích ạ. Vả lại các dim này nó nghiêng đủ các góc chứ không đơn thuần theo x, y . nên mình cũng không biết cái nào below hay above ngay từ đầ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

Vâng .. tại vì trong đám lẫn lộn mà mình chọn đó nó vừa có above và below nên nếu mình manual mà chọn above hết hoặc below hết thì lại không đạt được mục đích ạ. Vả lại các dim này nó nghiêng đủ các góc chứ không đơn thuần theo x, y . nên mình cũng không biết cái nào below hay above ngay từ đầu.

 

Có thể dùng Quick select chọn Dim nào là "above", dim nào "below" mà bạn!

  • 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

Các anh cho em hỏi: Quick Select có chế độ lưu lại lựa chọn thông số đối tượng như lệnh Filter không ạ. Chứ em chọn 1 lần , rồi em muốn chọn lần 2 thì lại phải điền các thông số như cũ, khá mất công ạ.

Nếu được thì mong anh Tue bớt chút thời gian viết 1 đoạn lisp được không ạ. :)

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

Các anh cho em hỏi: Quick Select có chế độ lưu lại lựa chọn thông số đối tượng như lệnh Filter không ạ. Chứ em chọn 1 lần , rồi em muốn chọn lần 2 thì lại phải điền các thông số như cũ, khá mất công ạ.

Nếu được thì mong anh Tue bớt chút thời gian viết 1 đoạn lisp được không ạ. :)

 

1./ QSelect không có chế độ lưu lại như lệnh Filter

2./ Quick Select rất đồ sộ. E là chỉ sử dụng thôi, Viết không nổi  :lol:

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

Thì dùng tạm

 

(defun c:11111(/ obj ss)
  (if (setq ss (ssget '((0  . "DIM*"))))
    (foreach dt (acet-ss-to-list ss)
      (setq obj (vlax-ename->vla-object dt))
      (if (= (vla-get-verticaltextposition obj) 1)
(vla-put-verticaltextposition obj 4)
(vla-put-verticaltextposition obj 1)
)
      )
    )
  (princ)
  )
  • Vote tăng 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

Thì dùng tạm

 

(defun c:11111(/ obj ss)
  (if (setq ss (ssget '((0  . "DIM*"))))
    (foreach dt (acet-ss-to-list ss)
      (setq obj (vlax-ename->vla-object dt))
      (if (= (vla-get-verticaltextposition obj) 1)
(vla-put-verticaltextposition obj 4)
(vla-put-verticaltextposition obj 1)
)
      )
    )
  (princ)
  )

 

Cám ơn anh #Quâ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

Cảm ơn quansla nhé... tôi đã bỏ đi nhưng quay lại thì thấy. Xin cảm ơn!

 

Tuy nhiên load được nhưng vào lệnh 11111 thì....

 

Command: ; error: bad character read (octal): 0

 

đang dùng win xp 32bit , cad 2010

  • Vote giảm 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

Bạn đã cài Experss Tools cad chưa, nếu chưa thì LISP sẽ không chạy, nếu rồi bạn chịu khó sửa lại thêm dòng

(vl-load-com) vào đầu file LISP và Load lại nhé nếu lười thì tải lại líp như sau:

 (defun c:11111(/ obj ss)
  (vl-load-com)
  (if (setq ss (ssget '((0  . "DIM*"))))
    (foreach dt (acet-ss-to-list ss)
      (setq obj (vlax-ename->vla-object dt))
      (if (= (vla-get-verticaltextposition obj) 1)
(vla-put-verticaltextposition obj 4)
(vla-put-verticaltextposition obj 1)
)
      )
    )
  (princ)
  )
  • Like 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
Vào lúc 4/21/2017 tại 16:22, quansla đã nói:

Bạn đã cài Experss Tools cad chưa, nếu chưa thì LISP sẽ không chạy, nếu rồi bạn chịu khó sửa lại thêm dòng

(vl-load-com) vào đầu file LISP và Load lại nhé nếu lười thì tải lại líp như sau:

 


 (defun c:11111(/ obj ss)
  (vl-load-com)
  (if (setq ss (ssget '((0  . "DIM*"))))
    (foreach dt (acet-ss-to-list ss)
      (setq obj (vlax-ename->vla-object dt))
      (if (= (vla-get-verticaltextposition obj) 1)
(vla-put-verticaltextposition obj 4)
(vla-put-verticaltextposition obj 1)
)
      )
    )
  (princ)
  )

xin cảm ơn, cái lisp này giúp tôi khá nhiều thời gian và thao tác... vì tôi phải dùng nó rất thường xuyê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

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

×