Đến nội dung


Hình ảnh
- - - - -

[Yêu Cầu] Lisp Nhận Dạng Dim Thay Đổi Sau Khi Dùng Lệnh


  • Please log in to reply
5 replies to this topic

#1 peleusachellis

peleusachellis

    biết vẽ arc

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

Đã gửi 15 July 2015 - 10:49 AM

Xin chào mọi người

Công việc của em đang làm hiện tại dùng lệnh Stretch nhiều mà nhiều lúc Stretch xong có một vài dim nó bị thay đổi kích thước so với ban đầu. Vậy xin hỏi có lsp nào có thể đổi màu các dim đó sang một màu riêng biệt nếu như nó thay đổi giá trị sau khi dùng lệnh không?

Ví dụ em dùng lệnh Stretch Kéo một hình vuông 100x100 lên 100x110 thì cái dim 110 nó sẽ chuyển sang màu đỏ. hoặc bất cứ loại gì đó mà mình có thể dễ nhận ra
Vì khi Stretch đôi khi có những dim không muốn thay đổi nhưng vô tình nó thay đổi mà mình không kiểm soát  được khiến bản vẽ bị sai,

Ngoài ra cho em hỏi. Nếu có lsp đó thì có thể áp dụng cho lệnh khác ngoài Stretch được không?

Mong được mọi người giúp đỡ. Em xin cảm ơn!


  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 16 July 2015 - 02:38 PM

Lisp đánh dấu (gán màu đỏ cho text của dim) các Dim bị thay đổi trước và sau khi dùng 1 số lệnh, như Stretch/Scale/Trim/Extened...

Xem cách sử dụng trong file lisp.

; Doan Van Ha - CadViet.com - Ngay 16/7/2015
; Lisp danh dau cac text cua dim bi thay doi truoc va sau khi dung mot so lenh, mark by red color.
; Cach dung:
; - Truoc khi thay doi: dung lenh HA1
; - Sau khi thay doi: dung lenh HA2.
; - VD: HA1 -> Strecth/Scale/Trim/Extend... -> HA2.
(defun C:HA1() 
 (setq lst1 (#SS->List (setq ss (ssget "_X" '((0 . "DIMENSION"))))))
 (princ))
(defun C:HA2( / lst2 i)
 (setq lst2 (#SS->List ss))
 (setq i 0)
 (repeat (length lst1)
  (if
   (and
    (equal (car (nth i lst1)) (car (nth i lst2)))
    (not (equal (cdr (nth i lst1)) (cdr (nth i lst2)))))
   (vla-put-TextColor (vlax-ename->vla-object (car (nth i lst2))) 1))
  (setq i (1+ i)))
 (setq lst1 nil) 
 (princ))
(defun #SS->List (ss / i ent lst)
 (repeat (setq i (sslength ss))
  (setq ent (ssname ss (setq i (1- i))))
  (setq lst (cons (cons ent (Get_txt ent)) lst))))
(defun Get_Txt(ent)
 (if (= "" (cdr (assoc 1 (entget ent))))
  (rtos (cdr (assoc 42 (entget ent))) 2 4)
  (cdr (assoc 1 (entget ent)))))
(vl-load-com)

  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 peleusachellis

peleusachellis

    biết vẽ arc

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

Đã gửi 17 July 2015 - 09:21 AM

Xin cảm ơn bác Doan Van Ha rất nhiều

Nhưng khi sử dụng nó báo lỗi này là sao bác nhỉ?

; error: no function definition: #SS->LIST


  • -1

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 17 July 2015 - 10:45 AM

Hay là do bạn chép thiếu? Bạn gởi file đã chép lên tôi coi lại.


  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 peleusachellis

peleusachellis

    biết vẽ arc

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

Đã gửi 21 July 2015 - 03:30 PM

Hay là do bạn chép thiếu? Bạn gởi file đã chép lên tôi coi lại.

 

Có 2 điều phải xin lỗi Bác Ha
Thứ nhất là đăng bài xin lisp rồi để lâu quá mới rep lại Bác trong khi bác giúp đỡ nhiệt tình
Thứ 2 là trong khi copy lisp của bác cẩu thả để có một khoảng trắng đầu dòng nên lisp không chạy
Giờ thì e copy lại và tất cả đã ok rồi. Cảm ơn bác đã giúp đỡ và mong bác tha lỗi
Chúc bác Sức khỏe và luôn may mắn. cảm ơn bác lần nữa

  • 0

#6 peleusachellis

peleusachellis

    biết vẽ arc

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

Đã gửi 21 July 2015 - 03:36 PM

Gõ mãi mà khi đăng lại không thấy chữ :-s
9330c87a0422f9e6218b107601093e1d523e6f8a

 

24331713b2f33bad0b297606b400210c993ba438
 


  • 0