Chuyển đến nội dung
Diễn đàn CADViet
Kyo Tý

Nhờ các bác edit giúp lisp cộng dim thành công thức làm tròn theo setting "round off: 5 " của DIM

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

Em chào các bác!

Em mới tham gia diễn đàn mình. Em chưa có kiến thức, kinh nghiệm về Autolips. Mong các bác bớt chút thời gian edit giúp em với 

Hiện tại em đang setting DIM với round of: 5 để kết quả DIM trả về 5; 10 cho đẹp khối lượng diễn giải. Khi dùng CCD thì kết quả hiện ra giá trị thực không theo kích thước hiện trên bản vẽ.

Mong các bác giúp em fix lại để kết quả xuất ra trùng với số DIM đã round of trên bản vẽ với ạ.

Em cảm ơn các bác!

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

Xin lỗi bác , Em có up file lên bị lỗi em chép code lại đây ạ. Đây là LIPS cộng các giá trị DIM đưa vào công thức em tải trên cộng đồng của mình. 

Do em setting DIM Round of :5 nên kết quả DIM trả về trên bản vẽ sẽ là số lũy kế 5 ; 10. còn số xuất ra công thức theo LIPS là số thực làm tròn. Bác giúp em sửa giúp em thông số xuất ra công thức và thông số thể hiện trên bản vẽ khớp với nhau với ạ.

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/65383-yeu-cau-lisp-cong-cac-so-trong-dim-thanh-mot-cong-thuc/


 

(defun c:ccd(/ gtt dt sdt ent id str)

  (setq dt (ssget '((0 . "DIMENSION")))

sdt (sslength dt)

id 0

gtt 0

str "="

)

  (repeat sdt

(setq

   ent (ssname dt id)

      id (1+ id)

   gtt (+ gtt (gt1 ent) )

str (strcat str  (Rtos (gt1 ent)2 0) "+")

   )

)

(Lisped (substr str 1 (1- (strlen str))))

  (princ gtt)

  (princ)

  )

;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun gt1(ent / so)

(if (wcmatch(cdr(assoc 1 (entget ent)))"")

   (setq so (cdr(assoc 42 (entget ent))))

   (setq so (atof(cdr(assoc 1 (entget ent)))))

   )

)


 

 

1.jpg

2.jpg

3.jpg

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

Đây là hàm làm tròn đến 5

(defun lamtron5 (so)
  (* (fix (+ (/ so 5.0) 0.5)) 5))

Bạn thay vào chỗ: str (strcat str  (Rtos (gt1 ent)2 0) "+")

bằng: str (strcat str  (Rtos ((lamtron5 gt1) ent)2 0) "+")

 

  • 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
1 giờ} trướ}c, cuongtk2 đã nói:

Đây là hàm làm tròn đến 5

(defun lamtron5 (so)
  (* (fix (+ (/ so 5.0) 0.5)) 5))

Bạn thay vào chỗ: str (strcat str  (Rtos (gt1 ent)2 0) "+")

bằng: str (strcat str  (Rtos ((lamtron5 gt1) ent)2 0) "+")

 

Bác CuongTK2 ơi, Bác giúp em add giúp em với, Em không có kiến thức về mảng code này, em add nãy giờ lips vẫn lỗi ạ hihi. Mong bác bớt chút thời gian add giúp em với. Mong bác thông cảm với sự ngu dốt này của em hihi. Cảm ơn bác nhiề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
3 giờ trước, Kyo Tý đã nói:

Bác CuongTK2 ơi, Bác giúp em add giúp em với, Em không có kiến thức về mảng code này, em add nãy giờ lips vẫn lỗi ạ hihi. Mong bác bớt chút thời gian add giúp em với. Mong bác thông cảm với sự ngu dốt này của em hihi. Cảm ơn bác nhiều ạ 

 

Khổ ghê! bác Cuong làm như ai cũng giỏi như bác ấy.

Đây này bạn Tý .

ccd.lsp

  • 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
1 giờ} trướ}c, 7o7 đã nói:

Khổ ghê! bác Cuong làm như ai cũng giỏi như bác ấy.

Đây này bạn Tý .

ccd.lsp

Vâng cảm ơn bác Cuong, cảm ơn bác 7o7  đã giúp đỡ. Lips đã fix làm tròn DIM. Nhưng khi em cộng nhiều DIM kết quả trả ra là giá trị Tổng của các DIM chứ không trả dạng công thức. Bác giúp nốt em vấn đề này với, để các tổng các DIM hiển thị dưới dạng công thức như hình dưới giúp em với ạ. Em cảm ơn bác nhiều !

 

 

image.png.7f29f613f94ba01aeb74d683a52b355e.png

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 18/9/2023 tại 17:46, 7o7 đã nói:

Bạn không nói sớm, giờ tôi mới hiểu sao lại có dấu +.

 

 

ccd.lsp

 

Vào lúc 18/9/2023 tại 10:29, cuongtk2 đã nói:

Đây là hàm làm tròn đến 5

(defun lamtron5 (so)
  (* (fix (+ (/ so 5.0) 0.5)) 5))

Bạn thay vào chỗ: str (strcat str  (Rtos (gt1 ent)2 0) "+")

bằng: str (strcat str  (Rtos ((lamtron5 gt1) ent)2 0) "+")

 

tiện cho em hỏi luôn là nếu muốn sửa nó là 10 thì sửa đoạn nào ạ

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 16/10/2023 tại 18:18, unbroken đã nói:

Bác ơi còn lisp này không. File tải bị xóa rồi. gửi vào gmail cho em xin với. Em cũng đang cần mail: giaminh19@gmail.com

đây bạn nhé

 

ccd R5.lsp

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 18/6/2024 tại 17:55, Hòa197 đã nói:

anh ơi cho em xin lại lisp cộng dim làm tròn với ạ. Lisp a gửi lên lỗi k 

Không phải lisp lỗi đâu. Trước cũng lisp đó dùng bình thường. Xong reset seting autocad xong cái không dùng được. Toàn thành 0=0+0+0...thôi à

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

×