Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Lisp tìm giao điểm


  • Please log in to reply
11 replies to this topic

#1 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 22 October 2013 - 09:03 AM

Mình đang định viết lsp với ý tưởng như sau:

Một bình đồ có các đường đồng mức(các đường đồng mức là các đường chưa xác định "Polyline, spline, lwpolyline.....") như hình vẽ:

http://www.cadviet.c...0633_nhan_2.dwg

Mình kẻ 1 đường thẳng với cao độ 0

Mình không biết có hàm nào của lsp có thể tìm giao điểm của đường thẳng với đường đồng mức và xuất dữ liệu thành tập list

'((X1 Y1 Z1) ....... (X12 Y12 Z12)).

Rất mong nhận được sự giúp đỡ của các bạn.

 


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#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 22 October 2013 - 11:36 AM

Mình cần lisp tìm giao điểm các đường thẳng tạo bởi line polyline .......

VD: Mình có 5 đường đồng mức với các cao độ khác nhau: +5 +10 +15 +20 +25

Mình kẻ 1 đường Line hoặc polyline với cao độ 0

Mình muốn tìm điểm giao giữa đường CD0 với các đường trên.

Và lấy tọa độ điểm giao đó nằm trên các đường đồng mức

điểm 1 có tọa độ (X Y 5)

điểm 2 có tọa độ (X Y 10)

......

Trong cad có chế độ Apparent intersecstion để bắt các giao điểm này.

Mình muốn đưa nó sang lisp.

Cảm ơn các bạn nhiều.

Hề hề hề,

Bạn hoàn toàn không phải là người mới tham gia vào diễn đàn và cũngkho7ng6 phải là người chưa bao giờ có yêu cầu về lisp.

Bạn cũng đã được nhắc nhở không ít về cách đặt các yêu cầu về lisp. 

Nhưng hình như bạn không muốn quan tâm tới những điều giúp cho diễn đàn này phát triển tốt hơn mà chỉ biết ích kỷ theo những quan điểm cá nhân của bạn.

Yêu cầu lần này của bạn không phải không thể làm nhưng nếu bạn không sửa lại yêu cầu theo đúng những quy định của diễn đàn thì sau 48 giờ nưã bài này sẽ bị xóa đấy.

Bạn cần có bản vẽ thể hiện rõ những gì bạn có trước khi dùng lisp và những gì bạn cần sau khi dùng lisp.

Tỷ như sau khi tìm được giao điểm (nếu có) thì các điểm này sẽ được lưu vào đâu, hay được thể hiện như thế nào???

Hay như các đường đồng mức bạn có là loại đường gì line, lwpolyline hay 3dpolyline .....

........

Rất mong bạn lưu tâm đến những quy định chung của diễn đàn để cho diễn đàn phát triển ngày một tốt hơn và tránh được những xung đột không đáng có trên diễn đàn. Đồng thời diễn đàn cũng sớm trở thành diễn đàn của những các bộ kỹ thuật có trách nhiệm với bản thân và với cộng đồng.


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

#3 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 22 October 2013 - 05:27 PM

Lâu rồi không gặp Phamthanhbinh!

Mình lâu rồi mới quay lại diễn đàn, mình cũng đã tìm hướng dẫn về quy định chung khi Post bài nhưng mình chỉ nhớ là nếu nêu yêu cầu hay hỏi đáp vấn đề nào đấy thì đưa lên tittle. Bạn có thể sửa bài của mình lại cho đúng với quy định của diễn đàn không? Cảm ơn bạn đã quan tâm.


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#4 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 23 October 2013 - 02:27 PM

Lâu rồi không gặp Phamthanhbinh!

Mình lâu rồi mới quay lại diễn đàn, mình cũng đã tìm hướng dẫn về quy định chung khi Post bài nhưng mình chỉ nhớ là nếu nêu yêu cầu hay hỏi đáp vấn đề nào đấy thì đưa lên tittle. Bạn có thể sửa bài của mình lại cho đúng với quy định của diễn đàn không? Cảm ơn bạn đã quan tâm.

Hề hề hề,

Về các quy định post bài chung của diễn đàn cũng như quy định về post bài yêu cầu trong box Autolisp bạn chịu khó tìm trên diễn đàn sẽ dễ dàng thấy thôi. Mong rằng bạn lưu tâm nhé.

Cơ bản bạn đã sửa lại bài post gần đúng với yêu cầu, chỉ thiếu tí ti và vì cái thiếu ấy mà cái lisp dưới dây có thể chưa đúng với yêu cầu của bạn. Hãy thử dùng và cho ý kiên nếu cần sửa chữa.

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


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

#5 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 23 October 2013 - 03:38 PM

Cảm ơn bạn đã giúp đỡ mình hiểu ra nhiều nhưng vẫn chưa đúng với ý mình lắm.

Vì đường thẳng cắt 1 đường đồng mức tại 2 điểm nhưng kết quả ghi tại 2 thời điểm khác nhau.

Như trong bản vẽ của mình lần lượt kết quả sẽ ghi ra là điểm 1, 2, 3, .... 12.

Nhưng kết quả của bạn trả là 1, 12, 2, 11 ...... 6, 7.

Bạn chỉnh lại giúp mình nhé.

PS: Cho mình xin tài liệu hướng dẫn mấy mã acet nhé. Thanks


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#6 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 23 October 2013 - 03:56 PM

Cảm ơn bạn đã giúp đỡ mình hiểu ra nhiều nhưng vẫn chưa đúng với ý mình lắm.

Vì đường thẳng cắt 1 đường đồng mức tại 2 điểm nhưng kết quả ghi tại 2 thời điểm khác nhau.

Như trong bản vẽ của mình lần lượt kết quả sẽ ghi ra là điểm 1, 2, 3, .... 12.

Nhưng kết quả của bạn trả là 1, 12, 2, 11 ...... 6, 7.

Bạn chỉnh lại giúp mình nhé.

PS: Cho mình xin tài liệu hướng dẫn mấy mã acet nhé. Thanks

Hề hề hề,

1/- Có nghĩa là bạn muốn sắp xếp lại cái list các giao điểm này theo một trật tự nào đó. Vậy trật tự ấy được quy định ra sao??? Từ trên xuống dưới hay từ đưới lên trên, từ trái qua phải hay từ phải qua trái ??? hay là từ đầu đường giao tới đít đường giao ????

2/-Không có tài liệu nào về mả acet cả vì chả có mã nào goi là mã acet hết.

Các hàm acet có đây đủ trong bộ express tools của CAD, nếu bạn đã cài nó thì chỉ việc lấy ra mà xài.


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

#7 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 24 October 2013 - 03:23 PM

MÌnh muốn hướng lấy giao điểm từ điểm đầu đường thẳng đến điểm cuối đường thằng

Hàm acet có trong Express tool nhưng bật help trong Vlide thì không có hướng dẫn cụ thể.

Hì thôi để mình tìm xem nếu không thủng chỗ nào hỏi bạn sau vậy.


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#8 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 24 October 2013 - 10:05 PM

MÌnh muốn hướng lấy giao điểm từ điểm đầu đường thẳng đến điểm cuối đường thằng

Hàm acet có trong Express tool nhưng bật help trong Vlide thì không có hướng dẫn cụ thể.

Hì thôi để mình tìm xem nếu không thủng chỗ nào hỏi bạn sau vậy.

Hề hề hề,

1/- Giá như bạn nói rõ cái trật tự này ngay từ đầu có phải tốt hơn không nhỉ???

Muốn vậy bạn hãy thêm đoạn code dưới đây dùng để sắp xếp lại trật tự của các giao điểm theo ý bạn. Đoạn code này được thêm vào ngay phía dưới dấu ngoặc kết thúc của hàm foreach và ngay bên trê dòng code gọi lại biến plst.

(setq plst (vl-sort plst '(lambda (x y) (> (vlax-curve-getparamatpoint e2 (list (car x) (cadr x) 0)) (vlax-curve-getparamatpoint e2 (list (car y) (cadr y) 0))))))

 

2/- Bạn làm đúng rồi đó. Nên tự tìm hiểu trước rồi chỗ nào chưa thủng hỏi chỗ đó sẽ dễ dàng hơn cho người trả lời. Còn bạn hỏi chung chung như vầy rất khó trả lời bởi các hàm (acet-....) này có không ít chút nào.

Để tìm hiểu về các hàm acet này, bạn cứ việc nhập nó vào dòng command và test, sau đó xem kết quả và từ đó luận ra chức năng của từng thằng . Khi đã thủng thì cứ thế mà xài, khỏi cần lăn tăn vì sao nó thế.

 

Hề hề hề, đó cũng là cách mót của mình bởi muốn hiểu tường tận về các hàm (acet-...) này e rằng mình xuống lỗ vẫn còn chưa xong.


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

#9 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 25 October 2013 - 02:53 PM

ops!!!

Cái đó tách được 2 điểm cùng 1 đường đồng mức nhưng chưa đúng ý mình.

- Mình muốn nó sắp xếp kết quả theo điểm đầu và điểm cuối của đường thẳng hoặc đường Polyline

VD:

Mình kẻ đường thẳng từ trên xuống thì kết quả nhận được lần lượt là điểm từ trên xuống và ngược lại.

Đường thẳng hoặc polyline có thể vẽ theo hướng bất kỳ nhưng hướng trả kết quả là từ điểm đầu đến điểm cuối của đường cần tìm giao điểm.


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#10 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 25 October 2013 - 04:17 PM

ops!!!

Cái đó tách được 2 điểm cùng 1 đường đồng mức nhưng chưa đúng ý mình.

- Mình muốn nó sắp xếp kết quả theo điểm đầu và điểm cuối của đường thẳng hoặc đường Polyline

VD:

Mình kẻ đường thẳng từ trên xuống thì kết quả nhận được lần lượt là điểm từ trên xuống và ngược lại.

Đường thẳng hoặc polyline có thể vẽ theo hướng bất kỳ nhưng hướng trả kết quả là từ điểm đầu đến điểm cuối của đường cần tìm giao điểm.

Hề hề hề, 

Cái ý của bạn khó diễn đạt đến vậy ư??? Phải qua vài ba lần théc méc mới có thể hiểu nổi bạn cần gì. Thiệt tình .....

Mình sort như vậy là do cố tình bắt bạn trả lời để bạn hiểu cần phải làm gì khi muốn có một lisp theo ý mình.

Việc bạn cần đơn giản chỉ là đổi dầu > thành dấu < trong cái dòng code thêm vào ở bài trước.

Hy vọng bạn sẽ rut kinh nghiệm cho việc trình bày các ya6u cầu của mình. Đừng làm khó những người muốn giúp bạn.


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

#11 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 25 October 2013 - 04:27 PM

hì hì mình diễn tả ý tưởng kém lắm.

Mình cũng đã đổi dấu < > với nhau trước khi bạn nói vì trước đây mình đã từng biết nhưng vấn đề ở đây làm sao để nó tự hiểu lúc nào cần < lúc nào cần >.

Ý tưởng của mình đường cần tìm giao điểm là vecto các điểm trả kết quả lần lượt là các điểm mà vecto gặp đầu tiên.

Nên khi mình thay chiều vecto no lại khác.

PS: Mình thêm thắt một tý như trong bản vẽ của mình tới đường đồng mức CT+6.00 nhưng thực tế nó không kết thúc tại đó. Nó còn đỉnh nữa vậy có cách nào gắn 1 text (cao độ đỉnh) điểm đặt trên đường cần tìm giao điểm và cho cùng kết quả vào list.


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.

#12 18011985

18011985

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 255 Bài viết
Điểm đánh giá: 61 (tàm tạm)

Đã gửi 28 October 2013 - 10:34 PM

OK mình tìm được cách gán thêm text vào rồi. Nhưng có 1 vấn đề mình chưa giải quyết được đó là trùng đường đồng mức.

VD cùng 1 đường đồng mức CT+5.00 nhưng có tới 5 đường trùng nhau thì làm sao mình loại bỏ được các toạ độ trùng lặp. Mình đã viết thử 1 đoạn code để loại bỏ điểm trùng lọc, kết quả máy mình treo đơ.

PS sao mình không Post được code trực tiếp vào bài viết nhỉ.


  • 0
Trăng 16 trăng tròn
Em 16 bụng ... như trăng

Hướng dẫn sử dụng diễn đàn:
Để cảm ơn hay bài viết có ích: Ấn dấu + cuối bài.
Không vừa lòng hay bài spam: Ấn dấu - cuối bài.