Đến nội dung


Hình ảnh
- - - - -

Nhờ Viết Lisp


  • Please log in to reply
5 replies to this topic

#1 taybacincc

taybacincc

    biết vẽ circle

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

Đã gửi 31 August 2016 - 05:20 PM

Chào các bác !!!

Nhờ các bác viết dùm em cái Lisp: Dim khoảng cách giữa đỉnh liên tiếp trên pline (Pline bao gồm cả cung tròn)

Nội dung và trình tự của Lisp:

Bước 1: Chọn Pline.

Bước 2: Chọn khoảng cách từ dim tới Pline

Bước 3: Dim khoảng cách giữa các đỉnh liên tiếp trên pline (Pline bao gồm cả cung tròn). Dim thuộc dimstyle hiện hành và layer hiện hành. Chi tiết các bác xem thêm trong file cad em gửi kèm.

Cảm ơn các bác đã quan tâm

http://www.cadviet.c...viet_lisp_1.dwg


  • -1

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 31 August 2016 - 07:36 PM

Chào các bác !!!

Nhờ các bác viết dùm em cái Lisp: Dim khoảng cách giữa đỉnh liên tiếp trên pline (Pline bao gồm cả cung tròn)

Nội dung và trình tự của Lisp:

Bước 1: Chọn Pline.

Bước 2: Chọn khoảng cách từ dim tới Pline

Bước 3: Dim khoảng cách giữa các đỉnh liên tiếp trên pline (Pline bao gồm cả cung tròn). Dim thuộc dimstyle hiện hành và layer hiện hành. Chi tiết các bác xem thêm trong file cad em gửi kèm.

Cảm ơn các bác đã quan tâm

http://www.cadviet.c...viet_lisp_1.dwg

Hề hề hề,

Bạn dùng thử cái này, viết đã lâu và có sẵn trên diễn đàn mà bạn lười tìm kiếm . Mong bạn lần sau tìm kiếm kỹ trước khi post yêu cầu.

http://www.cadviet.c...imarclength.lsp

 

(defun darl (/ e1 e2 ra an alen)
;;
(command "dimradius" pause "")
(setq e1 (entlast))
(command "dimangular" pause (getpoint "\n Chon diem dat ") )
(setq e2 (entlast))
(setq Ra (cdr (assoc 42 (entget e1))))
(setq an (cdr (assoc 42 (setq el (entget e2)))))
(setq alen (* ra an))
(entmod (subst (cons 1 (rtos alen 2 2)) (assoc 1 el) el))
(command "erase" e1 "")
)
;;;;;;;;;;;;;;;;;;;
(defun c:dimpo (/ e verl els bulst k i p1 p2 )
(vl-load-com)
(setq e (car (entsel "\n Chon duong can do ")))
(setq verl (acet-geom-vertex-list e)
          els (entget e)
          bulst (list)
          k 0  )
(command "undo" "be")
(foreach en els
         (if (= (car en) 42)
             (setq bulst (append bulst (list (list (nth k verl) (cdr en))))  k (1+ k) )
         )         
)
(foreach bul bulst
      (setq i (vl-position bul bulst)
               p1 (nth i verl)
               p2 (nth (1+ i) verl)  )
                  
      (if (and p1 p2)
          (progn
                  (alert (strcat "\n Ban dang do phan doan thu " (rtos (1+ i) 2 0)))
                  (if (= (cadr bul) 0)  
                       (command "dimaligned" p1 p2 (getpoint "\n Chon diem dat "))
                       (darl)
                  )
          )
      )
             
)
(command "undo" "e")
)

  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 taybacincc

taybacincc

    biết vẽ circle

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

Đã gửi 31 August 2016 - 09:53 PM

Cảm ơn bác nha, e cũng search rồi nhưng k thấy, chắc tại không đúng key
  • 0

#4 taybacincc

taybacincc

    biết vẽ circle

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

Đã gửi 01 September 2016 - 07:52 AM

           Hôm qua không có máy nên không check được.

           Bác Bình có thể sửa giúp e là nó dim hoàn toàn tự động khoảng cách các đỉnh của pline không ? Lisp trên mình vẫn phải chọn điểm đặt cho từng đoạn 1. em lại không có khả năng sửa tiếp lisp trên. Với lại e chỉ cần chiều dài cung tròn thôi, không cần điền bán kính cung tròn.

           Để tiện cho quá trình sử dụng và viết lisp mình cho phép lựa chọn: Khoảng cách từ dim tới đường pline và phía điền dim so với đường pline (Điền bên trái hay bên phải đường pline)

Cảm ơn Bác đã quan tâm!!!


  • 0

#5 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 673 Bài viết
Điểm đánh giá: 315 (khá)

Đã gửi 01 September 2016 - 09:37 AM

Đúng là không chịu tìm, gõ từ khóa " Đo pline" thì ra hàng loạt.

Một link khác:http://www.cadviet.c...polyline/page-2

Kéo xuống phia dưới (Bài #28) để xem lsp thực hiện.


  • 1

#6 taybacincc

taybacincc

    biết vẽ circle

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

Đã gửi 01 September 2016 - 11:26 AM

Ui. Xin lỗi các bác nha. Em lại toàn search là "Dim khoảng cách giữa 2 đỉnh pline" nên tìm mãi không được. Em sẽ rút kinh nghiệm. Bài của Bác quocmanh04tt chuẩn luôn rồi.


  • 0