Đến nội dung


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

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


  • Please log in to reply
10 replies to this topic

#1 colombus

colombus

    biết vẽ polygon

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

Đã gửi 14 April 2017 - 10:52 AM

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.


  • -1

#2 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1458 Bài viết
Điểm đánh giá: 1435 (rất tốt)

Đã gửi 14 April 2017 - 11:06 AM

15454_dimabovebelow_1.gif

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

 


Bài viết đã được chỉnh sửa nội dung bởi gia_bach: 14 April 2017 - 11:26 AM

  • 0

#3 colombus

colombus

    biết vẽ polygon

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

Đã gửi 14 April 2017 - 11:10 AM

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.


  • 0

#4 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4330 Bài viết
Điểm đánh giá: 3832 (đỉnh cao)

Đã gửi 14 April 2017 - 07:08 PM

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!


  • 1

#5 colombus

colombus

    biết vẽ polygon

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

Đã gửi 15 April 2017 - 09:22 AM

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

Ừ đúng.


  • 0

#6 Mèo Mun

Mèo Mun

    biết zoom

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

Đã gửi 15 April 2017 - 10:05 AM

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 ạ. :)


  • 0

#7 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4330 Bài viết
Điểm đánh giá: 3832 (đỉnh cao)

Đã gửi 15 April 2017 - 03:55 PM

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:


  • 0

#8 quansla

quansla

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 662 Bài viết
Điểm đánh giá: 231 (khá)

Đã gửi 17 April 2017 - 09:14 AM

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

  • 2

#9 Mèo Mun

Mèo Mun

    biết zoom

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

Đã gửi 17 April 2017 - 09:26 AM

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


  • 0

#10 colombus

colombus

    biết vẽ polygon

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

Đã gửi 20 April 2017 - 02:08 PM

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


  • -1

#11 quansla

quansla

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 662 Bài viết
Điểm đánh giá: 231 (khá)

Đã gửi 21 April 2017 - 04:22 PM

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

  • 0