Đến nội dung


Hình ảnh

đo đường polyline


  • Please log in to reply
31 replies to this topic

#21 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 08 July 2013 - 06:14 PM

Bác Hà có thể chỉ cho mình cái tham số đằng sau (kết quả của (vlax-curve-getEndParam ent)), nếu nhập vào nó nhỏ lại (nhỏ hơn số đỉnh của 1 rectang đang tính chẳng hạn_ VD: 3)

thì kết quả trả về của hàm (vlax-curve-getDistAtParam...) là cái chi chi vậy ? :D :D :D

Mình thử nó ra 1 con số mà ko lý giải đc

 

Bạn đọc bài số 4 của bác ssg ở đây và "Làm 1 ví dụ đơn giản, từ "trực quan sinh động" đến "tư duy trừu tượng":" là sẽ hiểu liền:

http://www.cadviet.com/forum/topic/10065-hoi-ve-thong-tin-cua-spline-va-mot-so-ham-vl-vlax/


  • 1

#22 unbroken

unbroken

    biết vẽ arc

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

Đã gửi 09 September 2013 - 08:44 AM

em có lisp này kiếm dc ở đâu đó. lúc lúc dùng được, giờ không hiểu sao lại không dùng được. Em k biết j về lisp. Thấy nó hay. Bác nào biết kiểm tra giùm. Hoặc là có cái lisp nào mà đo và hiển thị tất cả các đoạn trong Polyline (1 pline được cấu tạo bởi nhiều đoạn thẳng thì nó đo và hiện thị các đoạn thẳng đấy)
  • 0

Giaminh19@gmail.com


#23 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 09 September 2013 - 04:13 PM

em có lisp này kiếm dc ở đâu đó. lúc lúc dùng được, giờ không hiểu sao lại không dùng được. Em k biết j về lisp. Thấy nó hay. Bác nào biết kiểm tra giùm. Hoặc là có cái lisp nào mà đo và hiển thị tất cả các đoạn trong Polyline (1 pline được cấu tạo bởi nhiều đoạn thẳng thì nó đo và hiện thị các đoạn thẳng đấy)

Hề hề hề,

Chu choa, kiểm tra cái chả thấy gì thế này chăc phải dùng "đèn giời " . Nhưng mà chửa biết thửa nó ở đâu để dùng.

Bạn làm ơn hãy gửi cái lisp đó lên nha....


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

#24 unbroken

unbroken

    biết vẽ arc

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

Đã gửi 16 September 2013 - 02:28 PM

được chưa nhỉ.Em chưa biết sử dụng mấy tính năng của diễn đàn.up mãi mà vẫn k được
  • 0

Giaminh19@gmail.com


#25 unbroken

unbroken

    biết vẽ arc

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

Đã gửi 16 September 2013 - 02:29 PM

;; free lisp from cadviet.com

;;; Dimension Alighed Polyline
;;; Free from CadViet forum
(defun c:DAP (/ ssn Pt j LstPt Pt0 Pt1 Pt2 Pt3)
(setvar "osmode" 0)
(setq ssn (car (entsel "\nChon doi tuong Polyline: ")))
(setq j 0 LstTmp nil)
(repeat (fix (1+ (vlax-curve-getendparam Ssn)))
(setq Pt (vlax-curve-getpointatparam Ssn j)
LstTmp (append (list Pt) LstTmp)
)
(setq j (1+ j))
);end repeat
(setq j 0)
(repeat (1- (length LstTmp))
(setq Pt0 (nth j LstTmp)
Pt1 (nth (1+ j) LstTmp)
)
(setq Pt2 (list (/ (+ (car Pt0) (car Pt1)) 2) (/ (+ (cadr Pt0) (cadr Pt1)) 2)))
(setq Pt3 (polar Pt2 (+ (/ pi 2) (angle Pt0 Pt1)) 5.00))
(vl-cmdf ".DIMALIGNED" Pt0 Pt1 Pt3)
(setq j (1+ j))
)
(princ)
)


thôi copy vậy. bác nào xem hộ em cái.
  • 0

Giaminh19@gmail.com


#26 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 16 September 2013 - 02:57 PM

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)
)

  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#27 unbroken

unbroken

    biết vẽ arc

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

Đã gửi 17 September 2013 - 08:09 AM

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 :(
  • 0

Giaminh19@gmail.com


#28 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 06 October 2013 - 10:37 PM

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.


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

#29 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 07 October 2013 - 02:38 PM

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


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#30 tranpro

tranpro

    biết vẽ arc

  • Advance Member
  • PipPip
  • 47 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 24 January 2014 - 12:11 PM

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 đỡ.

  • 0

#31 tranpro

tranpro

    biết vẽ arc

  • Advance Member
  • PipPip
  • 47 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 09 February 2014 - 09:52 PM

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)
)


  • 0

#32 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 10 February 2014 - 03:40 PM

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.c...neandspline.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.c...eandspline1.lsp


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