Đến nội dung


Hình ảnh
- - - - -

"[Yêu cầu] Lisp đo chiều dài đoạn thẳng và chia cho một số bất kì"


  • Please log in to reply
4 replies to this topic

#1 tamkt

tamkt

    biết vẽ ellipse

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

Đã gửi 05 October 2011 - 05:52 PM

Ý tưởng của em là vậy:
1. Nhập lệnh lisp, ví dụ " chiachia"
2. Chọn đối tượng cần đo ( gồn line, pline,...),
3. Chọn 1 text có số, vd text đó "100" hay "300"
4. Ra kết quả
Mong mấy anh giúp em với!
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 October 2011 - 09:14 PM

Ý tưởng của em là vậy:
1. Nhập lệnh lisp, ví dụ " chiachia"
2. Chọn đối tượng cần đo ( gồn line, pline,...),
3. Chọn 1 text có số, vd text đó "100" hay "300"
4. Ra kết quả
Mong mấy anh giúp em với!

Đây bạn!

(defun C:HA()
(setq cmold (getvar "cmdecho"))
(setvar "cmdecho" 0)
(princ "\nChon doi tuong can do chieu dai...")
(command "lengthen" (entsel) "")
(princ "\nChon Text de lam so chia...")
(prompt (strcat "\nKet qua cua phep chia la " (rtos (/ (getvar "perimeter") (atof (cdr (assoc 1 (entget (car (entsel))))))) 2)))
(setvar "cmdecho" cmold)
(princ))

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

tamkt

    biết vẽ ellipse

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

Đã gửi 06 October 2011 - 12:49 AM

Anh Hà ơi, chính xác rồi anh Hà. Nhưng mà em chọn nhiều đường thẳng gồm ( line, pline ), rồi chia cho một số trong text thì không được.
Anh Hà nâng cấp giúp em nha.
Em cám ơn nhiều.
  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 06 October 2011 - 06:54 AM

Anh Hà ơi, chính xác rồi anh Hà. Nhưng mà em chọn nhiều đường thẳng gồm ( line, pline ), rồi chia cho một số trong text thì không được.
Anh Hà nâng cấp giúp em nha.
Em cám ơn nhiều.

Lấy tổng chiều dài các đường rồi chia cho text, hay lấy từng đường rồi chia cho text? Kết quả trả về thông báo như vậy hay kiểu khác?
Thôi thì phang đại theo nguyên tắc tính tổng chiều dài các đối tượng rồi chia cho Text, nếu không ưng bụng thì sẽ sửa lại:

(defun C:HA() ;Doan Van Ha CADViet.com
(setq cmold (getvar "cmdecho") cd 0)
(setvar "cmdecho" 0)
(princ "\nChon cac doi tuong LINE/PLINE can do chieu dai...")
(foreach ent (acet-ss-to-list (ssget '((0 . "*LINE"))))
(command "lengthen" ent "")
(setq cd (+ cd (getvar "perimeter"))))
(princ "\nChon Text de lam so chia...")
(prompt (strcat "\nKet qua cua phep chia la: " (rtos (/ cd (atof (cdr (assoc 1 (entget (car (entsel))))))) 2)))
(setvar "cmdecho" cmold)
(princ))

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


#5 tamkt

tamkt

    biết vẽ ellipse

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

Đã gửi 06 October 2011 - 07:59 PM

Qúa hay a.Hà ơi, tuyệt!
Em cám ơn anh nhiều.
  • 0