Chuyển đến nội dung
Diễn đàn CADViet
Franciscuong

Xin hỗ trợ chỉnh sửa lệnh Tổng Line

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

Em chào các Pro ạ

E đang chỉnh sửa lệnh TL. E đã chỉnh được nó In ra cad. Nhưng hiện tại nó chỉ in ra với kích thước là mm, (không có tiền tố hậu tố đi theo cho trực quan)

Em muốn khi chèn vào cad nó có Cú pháp là: L = 123,23 m   ( Có tiền tố L= , hậu tố là m, Chiều dài được tính bằng m ạ)


Đoan code của e là:

;; free lisp from cadviet.com

;;;--------------------------------------------------------------------
(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
;;;--------------------------------------------------------------------
(defun C:TL( / ss L e)
(setq
    ss (ssget  (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))
    L 0.0
)
(vl-load-com)
(while (setq e (ssname ss 0))
    (setq L (+ L (length1 e)))
    (ssdel e ss)
)
(alert (strcat "Total length = " (rtos L/1000)))
(setq p (getpoint "\n Chon diem nhap ket qua" ))
(setq h (getreal "\n Nhap chieu cao text ket qua "))
(command "text" p h "0" (rtos L 2 2))
)
;;;--------------------------------------------------------------------

Mong các Pro hỗ trợ e với, E cảm ơn nhiều 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

 E làm được cái tiền tố hậu tố rồi, Bác có thể chỉ giúp e cách Chuyển đơn vị đang hiển thị từ mm sang m với ạ. E 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
2 phút trước, Doan Van Ha đã nói:

Tìm số 1000 sửa lại thành số 1

;; free lisp from cadviet.com

;;;--------------------------------------------------------------------
(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)))
;;;--------------------------------------------------------------------
(defun C:TL( / ss L e)
(setq
    ss (ssget  (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))
    L 0.0
)
(vl-load-com)
(while (setq e (ssname ss 0))
    (setq L (+ L (length1 e)))
    (ssdel e ss)
)
(alert (strcat "Total length = " (rtos L)))
(setq p (getpoint "\n Chon diem nhap ket qua" ))
(setq h (getreal "\n Nhap chieu cao text ket qua "))
(command "text" p h "0" (rtos L 2 2))
)
;;;--------------------------------------------------------------------

 

 

Trong Lệnh bên trên trên e gửi, chỗ 1000 đó bỏ đi lệnh mới chạy được anh ạ. Nên trong code này không có số 1000 anh ạ

 

  • Vote giảm 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, Franciscuong đã nói:

Trong Lệnh bên trên trên e gửi, chỗ 1000 đó bỏ đi lệnh mới chạy được anh ạ. Nên trong code này không có số 1000 anh ạ

 

- Bước 1: chia chiều dài cho 1000 => (/ L 1000)

- Bước 2: Chuyển số thành chuỗi: (rtos (/ L 1000) 2 2)

Tóm lại trong lisp trên: phần thông báo, tạo text bạn thay L thành (/ L 1000) là đượ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
4 giờ trước, NTHAHT đã nói:

- Bước 1: chia chiều dài cho 1000 => (/ L 1000)

- Bước 2: Chuyển số thành chuỗi: (rtos (/ L 1000) 2 2)

Tóm lại trong lisp trên: phần thông báo, tạo text bạn thay L thành (/ L 1000) là được.

Dạ e 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

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

×