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

đo đường polyline

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

Viết bậy cho qua ngày

Bạn dùng đc thì dùng, ko dc thì cũng đừng ném đá :D :D :D

;dim nhanh
(defun c:DDD( / sel pl pre group)
(setq sel (car (entsel "\nChon polyline: ")))
(command ".copy" sel "" (list 0 0 0) "@0,0,0")
(setq pl (entlast))
(command ".explode" pl)
(setq pre pl
	group (ssadd)
	)
(while (setq pre (entnext pre))
		(setq group (ssadd pre group))
)
(setq i 0)
(while (< i (sslength group))
(progn
(setq ename (ssname group i)
	info (entget ename)
	)
(command ".DIMALIGNED" (cdr (assoc 10 info)) (cdr (assoc 11 info)) (polar (cdr (assoc 10 info)) (+ (angle (cdr (assoc 10 info)) (cdr (assoc 11 info))) (/ pi 2)) 10))
(setq i (1+ i))
))
(command ".erase" group "")
(princ)
)
  • Vote tăng 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

Tuyệt vời bạn ạ. Thank nhé. mà mình hỏi cái làm thế nào up dc cái lisp lên như thế nhỉ.Mình toàn phải copy :(

Hề hề hề,

Ông chủ thớt này cũng vui tính ra phết nhể....

Bài post từ ngày 16/9 thì đúng một tháng sau mới quay lại ngó xem ..... Chắc thịt dạo này tăng giá nên chủ thớt bận việc bán buôn hỉ ????

Cái lisp của bạn về cơ bản chả có lỗi gì sốt tuy có hơi cồng kềnh chút chút.

Việc không sử dụng được chắc do quên không load lisp trước khi dùng mà thôi.

 

@Hieptr: Việc copy rồi explode ra để ghi kích thước như vầy thực ra là làm cho bản vẽ thêm cồng kềnh bác ạ. bác có thể sử dụng hàm (acet-geom-vertex-list sel) để lấy danh sách các đỉnh của polyline, Từ đó lặp một phát qua các đỉnh này để dimaligned sẽ gọn gàng hơn nhiều bác ạ. Cần lưu ý với các polyline chứa các cung cong thì việc dimaligned như vầy chưa ổn lắm......

@chủ thớt: Để post lisp có thể post nguyên file theo tool của diễn dàn nằm ở đáy cửa sổ post bài. Cũng có thể copy code và nhét nó vào trong codebox của diễn đàn bằng cách sử dụng thẽ codebox hay thẻ code. Tuy nhiên làm như vầy dễ bị lỗi do các thẻ code này của diễn đang chưa hoạt động trơn tru lắm.

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

Lisp DOPL của anh Tuệ đã bắt đúng bệnh của chủ thớt ,  hiện  giờ kết quả DOPL nó ra số chẵn!! Em xin được góp ý với anh Tuệ là anh sửa lại tí ti,  để kết quả đo nó ra con số lẻ ( có số thập phân 0.0000 )...

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

 

Viết bậy cho qua ngày

Bạn dùng đc thì dùng, ko dc thì cũng đừng ném đá :D :D :D

;dim nhanh
(defun c:DDD( / sel pl pre group)
(setq sel (car (entsel "\nChon polyline: ")))
(command ".copy" sel "" (list 0 0 0) "@0,0,0")
(setq pl (entlast))
(command ".explode" pl)
(setq pre pl
	group (ssadd)
	)
(while (setq pre (entnext pre))
		(setq group (ssadd pre group))
)
(setq i 0)
(while (< i (sslength group))
(progn
(setq ename (ssname group i)
	info (entget ename)
	)
(command ".DIMALIGNED" (cdr (assoc 10 info)) (cdr (assoc 11 info)) (polar (cdr (assoc 10 info)) (+ (angle (cdr (assoc 10 info)) (cdr (assoc 11 info))) (/ pi 2)) 10))
(setq i (1+ i))
))
(command ".erase" group "")
(princ)
)
Bác cho em hỏi có cách nào chỉ xuất 1 text cho cả đoạn polyline đó thôi được ko? chứ mỗi 1 line trong poliline nó cho 1 cái text ra thì hình có vể hơi rối? Mong bác giúp đỡ.

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ác ơi có thể chỉnh để nó xuất hiện 1 text duy nhất ghi kích của cả đoạn pline đó được ko nhỉ? chứ nó ghi tất các text mỗi đoạn trong pline ra thì rối hình quá :D

;dim nhanh
(defun c:DDD( / sel pl pre group)
(setq sel (car (entsel "\nChon polyline: ")))
(command ".copy" sel "" (list 0 0 0) "@0,0,0")
(setq pl (entlast))
(command ".explode" pl)
(setq pre pl
	group (ssadd)
	)
(while (setq pre (entnext pre))
		(setq group (ssadd pre group))
)
(setq i 0)
(while (< i (sslength group))
(progn
(setq ename (ssname group i)
	info (entget ename)
	)
(command ".DIMALIGNED" (cdr (assoc 10 info)) (cdr (assoc 11 info)) (polar (cdr (assoc 10 info)) (+ (angle (cdr (assoc 10 info)) (cdr (assoc 11 info))) (/ pi 2)) 10))
(setq i (1+ i))
))
(command ".erase" group "")
(princ)
)

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ác ơi có thể chỉnh để nó xuất hiện 1 text duy nhất ghi kích của cả đoạn pline đó được ko nhỉ? chứ nó ghi tất các text mỗi đoạn trong pline ra thì rối hình quá :D


Hề hề hề,

Gửi bạn hai cái lisp này xem có ưng ý không nhé.

Lisp thứ nhất dùng để dim toàn bộ đường polyline và chỉ ghi kết quả duy nhất là tổng chiều dài của polyline đó.

http://www.cadviet.com/upfiles/3/5194_dimpolylineandspline.lsp

Lisp thứ hai cho phép đo một đoạn bất kỳ trên lwpolyline được xác định bởi hai điểm do người dùng chọn trên lwpolyline.

http://www.cadviet.com/upfiles/3/5194_dimpolylineandspline1.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

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


×