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

Lisp Hỗ Trợ Tính Toán Khối Lượng Trên Bản Vẽ

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

     Các anh kỹ sư Hàn Quốc cố một lisp rất hay để tính khối lượng dài bằng cách tích vào các điểm, sau mỗi lần tích như thế autocad sẽ xuất ra text là giá trị dimension của khoảng cách đó ở giữa của đoạn thẳng đã chọn. Và sau khi kết thúc se xuất ra một đoạn text là: "tổng=dim1+dim2+...+dim n"

     Các cao thủ có giúp cho LISP này để mọi người cùng học hỏi

 

Cảm ơn mọi người nhiều

  • Vote giảm 2

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

Có quá nhiều các bài đã thảo luận về vấn đề này rồi. Sao bạn ko chịu khó tìm tòi nhỉ ?

Chỉ khi nào bạn đã tìm hiểu và có vướng mắc thì mới nên đưa ý kiến ra bạn à.

 

Đây cũng là 1 lisp theo yêu cầu của bạn.

Gõ lệnh TG, lisp xuất ra chiều dài đoạn thẳng bạn chọn.

http://www.cadviet.com/upfiles/6/124641_tong_chieu_dai_cac_doan__tg_.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

Có quá nhiều các bài đã thảo luận về vấn đề này rồi. Sao bạn ko chịu khó tìm tòi nhỉ ?

Chỉ khi nào bạn đã tìm hiểu và có vướng mắc thì mới nên đưa ý kiến ra bạn à.

 

Đây cũng là 1 lisp theo yêu cầu của bạn.

Gõ lệnh TG, lisp xuất ra chiều dài đoạn thẳng bạn chọn.

http://www.cadviet.com/upfiles/6/124641_tong_chieu_dai_cac_doan__tg_.lsp

 

bạn này chỉ nhanh đẩu đoảng, cho đọc hết bài của người ta đã post này nọ

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

Lsp ở đây:

(defun c:tt (/ Text mid_point FixTextAngle ||| ang dis hei mid poi pt ptt sty tal)

(defun Text (pt hgt str ang sty)

(entmakex (mapcar '(lambda (x y) (cons x y))

'(0 7 10 40 50 1 72 11 73)

(list "TEXT" sty pt hgt ang str 1 pt 2))))

(defun mid_point (p1 p2) (mapcar '(lambda (x y) (* (+ x y) 0.5)) p1 p2))

(defun FixTextAngle (ang)

(if (and (> ang (* 0.5 pi)) (<= ang (* 1.5 pi)))

(+ ang pi)

ang))

(setq hei 250 ;Thay doi chieu cao chu o day

tal 0

sty (getvar 'TEXTSTYLE))

(if (setq poi (getpoint "\nChon diem: "))

(progn (while (setq ptt (getpoint "\nChon diem tiep theo: " poi))

(setq dis (distance poi ptt)

ang (FixTextAngle (angle poi ptt))

mid (mid_point poi ptt))

(Text (polar mid (+ ang (* 0.5 pi)) hei) hei (rtos dis 2 0) ang sty); 0 -> so chu so thap phan

(setq tal (+ tal dis))

(setq poi ptt))

(and (> tal 0)

(setq pt (getpoint "\nChon diem chen text: "))

(Text pt hei (rtos tal 2 0) 0 sty))));(rtos tal 2 0) 0-> so chu so thap phan

(princ))

  • Vote tăng 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

bạn này chỉ nhanh đẩu đoảng, cho đọc hết bài của người ta đã post này nọ

Uhm, vậy bạn thử giải thích việc chọn và pick điểm có khác gì nhau.

Suy sét:

+ Nếu trong trường hợp đoạn thẳng liên tục? Thì pick điểm có nhanh hơn là chọn đường Pline

+ Việc pick điểm có sảy ra lỗi khi ta pick điểm thuộc 2 đoạn thẳng hoặc "n" đoạn thẳng ?

+ Công thức có đúng trong phạm vi đường cong.

 

Trước khi trả lời mình cũng suy nghĩ, chứ ko phải ko có căn cứ để nói bạn ạ. 

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

Uhm, vậy bạn thử giải thích việc chọn và pick điểm có khác gì nhau.

Suy sét:

+ Nếu trong trường hợp đoạn thẳng liên tục? Thì pick điểm có nhanh hơn là chọn đường Pline

+ Việc pick điểm có sảy ra lỗi khi ta pick điểm thuộc 2 đoạn thẳng hoặc "n" đoạn thẳng ?

+ Công thức có đúng trong phạm vi đường cong.

 

Trước khi trả lời mình cũng suy nghĩ, chứ ko phải ko có căn cứ để nói bạn ạ. 

 

:D khác nhau cơ bản bạn nhé, lisp của bạn ấy yêu cầu chủ yếu là phục vụ cho công tác kiểm tra chứ ko phải là tổng chiều dài. Vi dụ bạn có 1 chi tiết nhiều cạnh cần gia công, bạn ấy cần pick các cạnh để xem kích thước có đúng ko hay đã edit, sau đó ra chiều dài. Chứ ko phải là tính tổng chiều dài thép theo như bạn (bạn chắc hay vẽ cốt thép và tính tổng chiều dai thép) nên đã hiểu sai ý bạn ấy

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

Lsp ở đây:

(defun c:tt (/ Text mid_point FixTextAngle ||| ang dis hei mid poi pt ptt sty tal)

(defun Text (pt hgt str ang sty)

(entmakex (mapcar '(lambda (x y) (cons x y))

'(0 7 10 40 50 1 72 11 73)

(list "TEXT" sty pt hgt ang str 1 pt 2))))

(defun mid_point (p1 p2) (mapcar '(lambda (x y) (* (+ x y) 0.5)) p1 p2))

(defun FixTextAngle (ang)

(if (and (> ang (* 0.5 pi)) (<= ang (* 1.5 pi)))

(+ ang pi)

ang))

(setq hei 250 ;Thay doi chieu cao chu o day

tal 0

sty (getvar 'TEXTSTYLE))

(if (setq poi (getpoint "\nChon diem: "))

(progn (while (setq ptt (getpoint "\nChon diem tiep theo: " poi))

(setq dis (distance poi ptt)

ang (FixTextAngle (angle poi ptt))

mid (mid_point poi ptt))

(Text (polar mid (+ ang (* 0.5 pi)) hei) hei (rtos dis 2 0) ang sty); 0 -> so chu so thap phan

(setq tal (+ tal dis))

(setq poi ptt))

(and (> tal 0)

(setq pt (getpoint "\nChon diem chen text: "))

(Text pt hei (rtos tal 2 0) 0 sty))));(rtos tal 2 0) 0-> so chu so thap phan

(princ))

bác giải thích hộ em với được không ạ, làm sao để chèn thêm chữ vào text nữa, VD: bình thường ra kết quả là 500 thì thành L1=500

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

×