Đến nội dung


Hình ảnh
- - - - -

Nhờ Sữa Lisp Thay Đổi Giá Trị Dim Nếu Thỏa Điều Kiện


  • Please log in to reply
3 replies to this topic

#1 khanh phong

khanh phong

    biết zoom

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

Đã gửi 15 December 2016 - 08:57 PM

Em cần lisp dim kích thước nếu dim ra 0.6 mét thì tự động đổi thành 0.60 MIN, em mới tập lisp nên không biết code bên dưới bị lỗi gì mà không so sánh điều kiện được, nhờ anh chị trên diễn đàn giúp đỡ. Cám ơn nhiều


(defun c:AsA( / D1 D2 D3 )
(setq D1 (getpoint "\ndiem 1 dim: ")
      D2 (getpoint "\ndiem 2 dim: ")
      D3 (getpoint "\ndiem dat text dim: "))
(command "_.dimaligned" D1 D2 D3 )
(setq dt (entlast)
      gt (cdr (assoc 42 (entget dt))))
(if (= gt 0.6)
    (progn
      (entmod
	(subst (cons 1 "0.60 MIN") (assoc 1 (entget dt)) (entget dt))
      )
      (entupd dt)
    )
  )

(princ)
)

  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 15 December 2016 - 09:34 PM

Bạn sửa (= gt 0.6) thành (equal gt 0.6 1E-3)


  • 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 khanh phong

khanh phong

    biết zoom

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

Đã gửi 15 December 2016 - 09:39 PM

Bạn sửa (= gt 0.6) thành (equal gt 0.6 1E-3)

 

Em cám ơn bác Doan Van Ha, nhưng bác có thể cho em biết 1E-3 là gì không ạ ?


  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 15 December 2016 - 10:46 PM

Hai số thực để chúng bằng nhau là rất khó, bởi vậy phải dùng hàm equal với sai số nào đó. 1E-3 coi như là sai số. Bạn có thể thay nó bằng 1E-4, 1E-5,1E-6...

Sai số sẽ thấy ngay khi bạn nhập biểu thức (- gt 0.6).


  • 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.