Đến nội dung


Hình ảnh
- - - - -

Tính Khoảng Cách Đoạn Thẳng Giới Hạn Bởi 2 Điểm Bất Kỳ Trên Đường Thẳng


  • Please log in to reply
6 replies to this topic

#1 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 02 October 2015 - 09:59 PM

Nhờ các bác viết hộ e 1 lisp như với nội dung như sau: 1 có 1 đường polyline d, trên d có 2 điểm A, B. làm sao để tính nhanh chiều dài đoạn thẳng AB (AB không phải là đoạn thẳng), rồi ghi kết quả ra 1 text có sẵn.

( em thử miêu tả như sau: chọn đường thẳng d, chọn điểm A, chọn điểm B, ghi kết quả AB ra text có sẵn.)

em xin chân thành cảm ơn !http://www.cadviet.c...3858_dthang.dwg


  • -2

#2 anti lazy

anti lazy

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 27 (tàm tạm)

Đã gửi 02 October 2015 - 11:07 PM

Sau hơn 4 năm làm thành viên nhưng không học được gì, mục đích là Xin, xin nữa, xin mãi đến lần xin này thì càng tệ hơn

- Chủ đề & nội dung mâu thuẫn nhau, bản vẽ thì cũng chẵng có text nào

- Không lo tìm mà chỉ lo xin.

- Tệ nhất là lần này lại xin cái mà bạn đã từng xin cách đây chưa đến 1 năm, với yêu cầu cũng lủng củng như hồi đó


  • 1

#3 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 03 October 2015 - 07:44 AM

hix. không biết phải biết nói thế nào.


  • 0

#4 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 03 October 2015 - 01:59 PM

Chỉ cần pick 2 điểm trên cùng 1 Pline:

(defun c:tpl (/ ent ep2 len pt1 pt2 txt vars vals)
(vl-load-com)
(setq vars '("DYNMODE" "DYNPROMPT" "OSMODE")
vals (mapcar 'getvar vars))
(mapcar 'setvar vars '(1 1 623))
(if (and (setq pt1 (getpoint "\nDiem thu nhat nam tren Polyline: "))
(setq ent (car (nentselp pt1)))
(wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE")
(setq pt2 (getpoint "\nDiem thu 2 nam tren Polyline: "))
(setq ep2 (car (nentselp pt2)))
(eq (cdr (assoc 5 (entget ent)))
(cdr (assoc 5 (entget (car (nentselp pt2)))))))
(progn (setq pt1 (vlax-curve-getclosestpointto ent pt1)
pt2 (vlax-curve-getclosestpointto ent pt2)
len (abs
(- (vlax-curve-getdistatpoint ent pt2) (vlax-curve-getdistatpoint ent pt1)))
len (rtos len 2 (getvar 'LUPREC)))
(princ (strcat "\nLength: " len "."))
(if (and (setq txt (car (entsel "\nChon Text, Mtext de gan gia tri: ")))
(wcmatch (cdr (assoc 0 (entget txt))) "*TEXT"))
(vla-put-textstring (vlax-ename->vla-object txt) len)))
(cond ((or (null pt1) (null ent)) (princ))
((not (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE"))
(princ "\nDiem da pick khong nam tren Pline! "))
((or (null pt2)
(null ep2)
(not (eq (cdr (assoc 5 (entget ent))) (cdr (assoc 5 (entget ep2))))))
(alert "\nXem lai diem thu 2...! "))
(t)))
(mapcar 'setvar vars vals)
(princ))


  • 0

#5 trangnhung

trangnhung

    biết vẽ pline

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

Đã gửi 03 October 2015 - 07:35 PM

cảm ơn bạn rất nhiều ! 


  • 0

#6 anti lazy

anti lazy

    biết lệnh erase

  • Members
  • PipPipPip
  • 107 Bài viết
Điểm đánh giá: 27 (tàm tạm)

Đã gửi 03 October 2015 - 10:43 PM

Giảm bớt 1 lần pick, xem qua tưởng là hay, nhưng thật sự là bất cập vì nentsel chưa chắc đã chọn đúng đường pline cần thiết

Còn đây là link yêu cầu của chủ thớt năm ngoái http://www.cadviet.c...inh-chon/page-2


  • 0

#7 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 03 October 2015 - 10:48 PM

Vâng đúng như vậy! Nếu như tại điểm nentsel có nhiều đối tượng trùng nhau.


  • 0