Đến nội dung


Hình ảnh
- - - - -

[Help] Sửa Lisp Thêm Dung Sai Cho Kích Thước Có Sẵn


  • Please log in to reply
28 replies to this topic

#1 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 14 October 2016 - 04:35 PM

Chào anh em trên diễn đàn.
Mình có đoạn lisp này cho phép thêm dung sai cho kích thước có sẵn.

 

(defun c:T2 () 
(command "dimtol" "on")
(command "dimtp" "0.02")
(command "dimtm" "0.02")
(command "dim" "update" pause "" "exit")
(command "dimtol" "off")
(princ)
)

 

Tuy nhiên lisp này có một số vấn đề như sau:
1) Lisp chỉ cho chọn một kích thước một lần, mình muốn nhờ sửa lại cho chọn đc nhiều kích thước cùng một lúc.
2) Lisp khi thực hiện sẽ chuyển dim style của kích thước về dim style hiện hành, mình muốn vẫn giữ nguyên đc dim style cũ của kích thước.
Nhờ anh em xem sửa giúp
Thanks


  • -1

#2 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 14 October 2016 - 07:30 PM

Chào anh em trên diễn đàn.
Mình có đoạn lisp này cho phép thêm dung sai cho kích thước có sẵn.

 

(defun c:T2 () 
(command "dimtol" "on")
(command "dimtp" "0.02")
(command "dimtm" "0.02")
(command "dim" "update" pause "" "exit")
(command "dimtol" "off")
(princ)
)

 

Tuy nhiên lisp này có một số vấn đề như sau:
1) Lisp chỉ cho chọn một kích thước một lần, mình muốn nhờ sửa lại cho chọn đc nhiều kích thước cùng một lúc.
2) Lisp khi thực hiện sẽ chuyển dim style của kích thước về dim style hiện hành, mình muốn vẫn giữ nguyên đc dim style cũ của kích thước.
Nhờ anh em xem sửa giúp
Thanks

Lisp chua test nhe. Chắc không vấn đề ^_^

(defun c:T2 ()
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq n 0)
      (repeat (sslength ss)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" "0.02")
	(command "dimtm" "0.02")
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (princ)
  )

  • 1

#3 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 15 October 2016 - 07:42 AM

 

Lisp chua test nhe. Chắc không vấn đề ^_^

(defun c:T2 ()
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq n 0)
      (repeat (sslength ss)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" "0.02")
	(command "dimtm" "0.02")
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (princ)
  )

Thanks Bee rất nhiều, chuẩn như Lê Duẩn luôn, ko lỗi lầm gì cả. Cho mình hỏi mở rộng chút, nếu mình muốn đánh lệnh t2 mà nó hiện ra các dòng ghi các loại dung sai khác nhau, mình chỉ cần pick chọn vào dung sai cần dùng trc khi chọn các kích thước cần thay đổi dung sai thì có thay đổi đc ko ??? 

:D  :D  :D


  • -1

#4 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 15 October 2016 - 01:30 PM

Thanks Bee rất nhiều, chuẩn như Lê Duẩn luôn, ko lỗi lầm gì cả. Cho mình hỏi mở rộng chút, nếu mình muốn đánh lệnh t2 mà nó hiện ra các dòng ghi các loại dung sai khác nhau, mình chỉ cần pick chọn vào dung sai cần dùng trc khi chọn các kích thước cần thay đổi dung sai thì có thay đổi đc ko ??? 

:D  :D  :D

Đây là lisp nhập thêm 2 gia trị dimtp và dimtm nhé. ^_^

(defun c:T2 (/ ss dimtp dimtm n)
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq dimtp (getreal "\nChon gia tri dimtp <0.02>: "))
      (if (not dimtp)
	(setq dimtp 0.02)
	)
      (setq dimtm (getreal "\nChon gia tri dimtm <0.02>: "))
      (if (not dimtm)
	(setq dimtm 0.02)
	)
      (setq n 0)
      (repeat (sslength ss)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (princ)
  )
 

  • 1

#5 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 15 October 2016 - 03:42 PM

 

Đây là lisp nhập thêm 2 gia trị dimtp và dimtm nhé. ^_^

(defun c:T2 (/ ss dimtp dimtm n)
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq dimtp (getreal "\nChon gia tri dimtp <0.02>: "))
      (if (not dimtp)
	(setq dimtp 0.02)
	)
      (setq dimtm (getreal "\nChon gia tri dimtm <0.02>: "))
      (if (not dimtm)
	(setq dimtm 0.02)
	)
      (setq n 0)
      (repeat (sslength ss)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (princ)
  )
 

Tuyệt vời ông mặt trời, cám ơn Bee rất nhiều. Công việc ghi kích thước của mình giờ ko còn vất vả nữa rồi  :D  :D  :D


  • 0

#6 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 15 October 2016 - 03:47 PM

Cho mình hỏi thêm một chút nữa. Nếu giờ bài toán thay đổi là mình chỉ có 1 dim style có thể thay đổi chiều cao chữ, arow thì khi dùng lisp của Bee sẽ bị nhảy về kích cỡ chữ mặc định ban đầu của dim style. Có thể thay đổi câu lệnh nào của lisp để dùng đc cho trg hợp này ko   :blink:  :blink:  :blink:


  • 1

#7 Kieu Tan

Kieu Tan

    biết vẽ rectang

  • Members
  • PipPip
  • 87 Bài viết
Điểm đánh giá: -23 (kém)

Đã gửi 16 October 2016 - 06:36 AM


Đây là lisp nhập thêm 2 gia trị dimtp và dimtm nhé. ^_^

(defun c:T2 (/ ss dimtp dimtm n)
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq dimtp (getreal "\nChon gia tri dimtp <0.02>: "))
      (if (not dimtp)
	(setq dimtp 0.02)
	)
      (setq dimtm (getreal "\nChon gia tri dimtm <0.02>: "))
      (if (not dimtm)
	(setq dimtm 0.02)
	)
      (setq n 0)
      (repeat (sslength ss)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (princ)
  )

Them số thap phan(2 số) cho dung sai thi hay hon do Bạn
  • 0

#8 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 16 October 2016 - 08:25 AM

Cho mình hỏi thêm một chút nữa. Nếu giờ bài toán thay đổi là mình chỉ có 1 dim style có thể thay đổi chiều cao chữ, arow thì khi dùng lisp của Bee sẽ bị nhảy về kích cỡ chữ mặc định ban đầu của dim style. Có thể thay đổi câu lệnh nào của lisp để dùng đc cho trg hợp này ko   :blink:  :blink:  :blink:

Mình không hiểu. Bạn post dwg ví dụ xem thế nào!


  • 0

#9 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 16 October 2016 - 08:30 AM

Them số thap phan(2 số) cho dung sai thi hay hon do Bạn

Chủ thớt có nhu cầu đó đâu :D


  • 0

#10 vanmanh192hd

vanmanh192hd

    biết vẽ line

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

Đã gửi 17 October 2016 - 07:40 AM

Bee có thể đổi cho mình cái màu của dung sai đó sang màu mặc định là màu green không. bởi vì mình muốn màu của dung sai khác màu với màu của kích thước.


  • 0

#11 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 17 October 2016 - 03:49 PM

Bee có thể đổi cho mình cái màu của dung sai đó sang màu mặc định là màu green không. bởi vì mình muốn màu của dung sai khác màu với màu của kích thước.

Bạn nghiên cứu thêm \C3 vào Primary Units / Dim suffix ở các dimstyle.


  • 0

#12 Kieu Tan

Kieu Tan

    biết vẽ rectang

  • Members
  • PipPip
  • 87 Bài viết
Điểm đánh giá: -23 (kém)

Đã gửi 17 October 2016 - 08:36 PM

Chủ thớt có nhu cầu đó đâu :D

Tại mình thấy rằng dung sai lúc nào cũng là số thập phân hết ah! 


  • 0

#13 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 30 October 2016 - 08:45 AM

Bạn nghiên cứu thêm \C3 vào Primary Units / Dim suffix ở các dimstyle.

Bee cho mình hỏi thêm chút, nếu kích thước cần đo có tỷ lệ 1:1 thì lisp trên của Bee ok. Tuy nhiên mình nhận thấy nếu để tỷ lệ kích thước khác thì khi dùng lisp nó sẽ nhảy về kích thước với tỷ lệ 1:1 . Vậy Bee có thể giúp mình để tình trạng trên ko xảy ra nữa ko
Thanks :)


  • 0

#14 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 30 October 2016 - 06:43 PM

Bee cho mình hỏi thêm chút, nếu kích thước cần đo có tỷ lệ 1:1 thì lisp trên của Bee ok. Tuy nhiên mình nhận thấy nếu để tỷ lệ kích thước khác thì khi dùng lisp nó sẽ nhảy về kích thước với tỷ lệ 1:1 . Vậy Bee có thể giúp mình để tình trạng trên ko xảy ra nữa ko
Thanks :)

Update nhé. 

Chắc là chạy ngon 

^_^

(defun c:T2 (/ ss dimtp dimtm n scl old)
  (setq old (getvar "DIMLFAC"))
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq dimtp (getreal "\nChon gia tri dimtp <0.02>: "))
      (if (not dimtp)
	(setq dimtp 0.02)
	)
      (setq dimtm (getreal "\nChon gia tri dimtm <0.02>: "))
      (if (not dimtm)
	(setq dimtm 0.02)
	)
      (setq n 0)
      (repeat (sslength ss)
	(setq scl (vlax-get (vlax-ename->vla-object (ssname ss n)) 'LinearScaleFactor))
	(setvar "DIMLFAC" scl)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)	
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 

  • 1

#15 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 31 October 2016 - 08:55 AM

 

Update nhé. 

Chắc là chạy ngon 

^_^

(defun c:T2 (/ ss dimtp dimtm n scl old)
  (setq old (getvar "DIMLFAC"))
  (if (setq ss (ssget '((0 . "DIMENSION"))))
    (progn
      (setq dimtp (getreal "\nChon gia tri dimtp <0.02>: "))
      (if (not dimtp)
	(setq dimtp 0.02)
	)
      (setq dimtm (getreal "\nChon gia tri dimtm <0.02>: "))
      (if (not dimtm)
	(setq dimtm 0.02)
	)
      (setq n 0)
      (repeat (sslength ss)
	(setq scl (vlax-get (vlax-ename->vla-object (ssname ss n)) 'LinearScaleFactor))
	(setvar "DIMLFAC" scl)
	(if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)	
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 

Chạy ổn lắm, thanks Bee nhé. Mình hỏi ngược lại chút, nhé :P
Nếu mình đã có các kích thước có dung sai khác nhau rồi và tất cả đang ở tỷ lệ 1:1. Giờ mình muốn chuyển toàn bộ kích thước đó sang tỷ lệ nào đó khác (cái này do mình nhập) mà đống dung sai vẫn còn và ko thay đổi thì sao  ^_^  ^_^  ^_^
Cái này có thể làm lisp riêng ko dính vào lisp trên cho mình nhé, thanks Bee


  • 0

#16 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 31 October 2016 - 02:56 PM

Chạy ổn lắm, thanks Bee nhé. Mình hỏi ngược lại chút, nhé :P
Nếu mình đã có các kích thước có dung sai khác nhau rồi và tất cả đang ở tỷ lệ 1:1. Giờ mình muốn chuyển toàn bộ kích thước đó sang tỷ lệ nào đó khác (cái này do mình nhập) mà đống dung sai vẫn còn và ko thay đổi thì sao  ^_^  ^_^  ^_^
Cái này có thể làm lisp riêng ko dính vào lisp trên cho mình nhé, thanks Bee

Loanh quanh nhỉ ^_^ Thử cái này nhé

 (defun c:T3 (/ ss dimtp dimtm n scl old)
   (setq old (getvar "DIMLFAC"))
   (if (setq ss (ssget '((0 . "DIMENSION"))))
     (progn
      (setq scl (getreal "\nChon ti le: "))
      (if (not scl)
	(setq scl 1.)
	)
      (setq n 0)
      (repeat (sslength ss)
        (setq dimtm (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceLowerLimit))
        (setq dimtp (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceUpperLimit))
        (setvar "DIMLFAC" scl)
        (if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)	
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 

  • 0

#17 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 31 October 2016 - 03:12 PM

 

Loanh quanh nhỉ ^_^ Thử cái này nhé

 (defun c:T3 (/ ss dimtp dimtm n scl old)
   (setq old (getvar "DIMLFAC"))
   (if (setq ss (ssget '((0 . "DIMENSION"))))
     (progn
      (setq scl (getreal "\nChon ti le: "))
      (if (not scl)
	(setq scl 1.)
	)
      (setq n 0)
      (repeat (sslength ss)
        (setq dimtm (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceLowerLimit))
        (setq dimtp (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceUpperLimit))
        (setvar "DIMLFAC" scl)
        (if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
	  (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
	  )
	(command "dimtol" "on")
	(command "dimtp" dimtp)
	(command "dimtm" dimtm)	
	(command "dim" "update" (ssname ss n) "" "exit")
	(command "dimtol" "off")
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 

Hi Bee

Đây là kết quả sau khi dùng lisp của bạn

https://drive.google...iew?usp=sharing

Với các kích thước đã có dung sai thì kết quả rất ok. Tuy nhiên với kích thước cuối ko có dung sai thì xảy ra lỗi bị nhảy ra dung sai như trên hình vẽ. Bee xem lại giúp mình xem nhé. Thanks


  • 0

#18 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 31 October 2016 - 03:32 PM

Hi Bee

Đây là kết quả sau khi dùng lisp của bạn

https://drive.google...iew?usp=sharing

Với các kích thước đã có dung sai thì kết quả rất ok. Tuy nhiên với kích thước cuối ko có dung sai thì xảy ra lỗi bị nhảy ra dung sai như trên hình vẽ. Bee xem lại giúp mình xem nhé. Thanks

fix dim ko dung sai. ^_^

 (defun c:T3 (/ ss dimtp dimtm n scl old)
   (setq old (getvar "DIMLFAC"))
   (if (setq ss (ssget '((0 . "DIMENSION"))))
     (progn
      (setq scl (getreal "\nChon ti le: "))
      (if (not scl)
	(setq scl 1.)
	)
      (setq n 0)
      (repeat (sslength ss)
        (setq dimtm (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceLowerLimit))
        (setq dimtp (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceUpperLimit))
        (setvar "DIMLFAC" scl)
        (if (and (= dimtm 0.0)
                 (= dimtp 0.0)
                 )
          (progn
            (command "dimtol" "off")
            (command "dim" "update" (ssname ss n) "" "exit")
            )
          (progn
            (if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
              (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
              )
            (command "dimtol" "on")
            (command "dimtp" dimtp)
            (command "dimtm" dimtm)
            (command "dim" "update" (ssname ss n) "" "exit")
            (command "dimtol" "off")
            )
          )
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 
       

  • 0

#19 Trnghiado

Trnghiado

    biết vẽ arc

  • Members
  • PipPip
  • 43 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 31 October 2016 - 04:45 PM

 

fix dim ko dung sai. ^_^

 (defun c:T3 (/ ss dimtp dimtm n scl old)
   (setq old (getvar "DIMLFAC"))
   (if (setq ss (ssget '((0 . "DIMENSION"))))
     (progn
      (setq scl (getreal "\nChon ti le: "))
      (if (not scl)
	(setq scl 1.)
	)
      (setq n 0)
      (repeat (sslength ss)
        (setq dimtm (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceLowerLimit))
        (setq dimtp (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceUpperLimit))
        (setvar "DIMLFAC" scl)
        (if (and (= dimtm 0.0)
                 (= dimtp 0.0)
                 )
          (progn
            (command "dimtol" "off")
            (command "dim" "update" (ssname ss n) "" "exit")
            )
          (progn
            (if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
              (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
              )
            (command "dimtol" "on")
            (command "dimtp" dimtp)
            (command "dimtm" dimtm)
            (command "dim" "update" (ssname ss n) "" "exit")
            (command "dimtol" "off")
            )
          )
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 
       

Vẫn bị lỗi như vậy Bee ạ :P


  • 0

#20 Bee

Bee

    biết lệnh extend

  • Members
  • PipPipPip
  • 197 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 31 October 2016 - 04:46 PM

 

 

fix dim ko dung sai. ^_^

 (defun c:T3 (/ ss dimtp dimtm n scl old)
   (setq old (getvar "DIMLFAC"))
   (if (setq ss (ssget '((0 . "DIMENSION"))))
     (progn
      (setq scl (getreal "\nChon ti le: "))
      (if (not scl)
	(setq scl 1.)
	)
      (setq n 0)
      (repeat (sslength ss)
        (setq dimtm (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceLowerLimit))
        (setq dimtp (vlax-get (vlax-ename->vla-object (ssname ss n)) 'ToleranceUpperLimit))
        (setvar "DIMLFAC" scl)
        (if (and (= dimtm 0.0)
                 (= dimtp 0.0)
                 )
          (progn
            (command "dimtol" "off")
            (command "dim" "update" (ssname ss n) "" "exit")
            )
          (progn
            (if (/= (getvar 'dimstyle) (cdr (assoc 3 (entget (ssname ss n)))))
              (command "dimstyle" "r" (cdr (assoc 3 (entget (ssname ss n)))))
              )
            (command "dimtol" "on")
            (command "dimtp" dimtp)
            (command "dimtm" dimtm)
            (command "dim" "update" (ssname ss n) "" "exit")
            (command "dimtol" "off")
            )
          )
	(setq n (1+ n))
	)
      )
    (princ "\nBan da khong chon DIM.")
    )
  (setvar "DIMLFAC" old)
  (princ)
  ) 
       

Vẫn bị lỗi như vậy Bee ạ :P

 

up file lên đây mình xem nào.


  • 0