Đến nội dung


Hình ảnh

cắt đoạn thẳng tại chỗ giao nhau


  • Please log in to reply
57 replies to this topic

#21 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 06 August 2016 - 04:40 PM

Lisp bẻ cong 1 chùm Pline hay Line tại các điểm giao nhau với 1 chùm Pline hay Line đã được update:

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


  • 0

#22 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 07 August 2016 - 03:13 PM

Lisp này xử lý Line, Pline có hướng bất kỳ, hoặc Pline gấp khúc tùy ý (vẫn giữ nguyên các đặc tính: Layer, Linetype, Color, Width, Arc ...).

Sử dung (Lệnh CCL):

1. Bước 1: Quét chọn các Line, Pline cần xử lý (bẻ cong ...)

2. Bước 2: Quét chọn các line, pline giao cắt với nhóm *Line ở bước 1

3. Bước 3: Nhập bán kính ARC.

4. Bước 4: Enter và ngắm kết quả.

P/s:

- Sau khi thực hiện xong, nếu muốn thay đổi bán kính Arc thì hoặc UNDO, hoặc dùng lệnh EDR để thay đổi.

- Lệnh EDR thực hiện với các đối tượng được xử lý bởi lệnh CCL ở trên, đối tượng khác thì không chắc...

http://www.cadviet.c...1736_ccledr.rar


  • 1

#23 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 07 August 2016 - 08:18 PM

Lisp này xử lý Line, Pline có hướng bất kỳ, hoặc Pline gấp khúc tùy ý (vẫn giữ nguyên các đặc tính: Layer, Linetype, Color, Width, Arc ...).

Sử dung (Lệnh CCL):

1. Bước 1: Quét chọn các Line, Pline cần xử lý (bẻ cong ...)

2. Bước 2: Quét chọn các line, pline giao cắt với nhóm *Line ở bước 1

3. Bước 3: Nhập bán kính ARC.

4. Bước 4: Enter và ngắm kết quả.

P/s:

- Sau khi thực hiện xong, nếu muốn thay đổi bán kính Arc thì hoặc UNDO, hoặc dùng lệnh EDR để thay đổi.

- Lệnh EDR thực hiện với các đối tượng được xử lý bởi lệnh CCL ở trên, đối tượng khác thì không chắc...

http://www.cadviet.c...1736_ccledr.rar

@quocmanh04tt, Lisp của bạn chạy không đúng khi các đường cần bẻ cong là pline có các nút đỉnh nằm trên đường giao.

 

http://vid988.photob...iep/be cong.mp4


  • 1

#24 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 07 August 2016 - 08:30 PM

Uh, đúng vậy! lsp trên chưa xử lý được vấn đề đó. Thanks!

*** Vấn đề là tại điểm như vậy thì nên vẽ thế nào? Cung tròn sẽ ra sao???


  • 0

#25 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 08 August 2016 - 08:09 AM

Lisp bẻ cong 1 chùm Pline hay Line (có sau) tại các điểm giao nhau với 1 chùm Pline hay Line (có trước) đã được update lần 2. Lisp chấp nhận các phương của curve, dù có ziczac theo phương thẳng đứng đủ kiểu. Lệnh là LLT

Ngoài ra muốn thay đổi bán kính ARC tại vị trí bẻ cong, đánh lệnh CCR, ngay sau lệnh LLT, rồi nhập bán kính thay đổi mà không đụng bất cứ 1 curve nào nữa:

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


  • 0

#26 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 08 August 2016 - 08:13 AM

Uh, đúng vậy! lsp trên chưa xử lý được vấn đề đó. Thanks!

*** Vấn đề là tại điểm như vậy thì nên vẽ thế nào? Cung tròn sẽ ra sao???

Vấn đề là lisp của bạn đã được mã hóa thành file *.fas nên không biết thuật toán của bạn bị lỗi như thế nào.

Bạn có thể gửi cho xem file nguồn LSP được không?


  • 1

#27 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 08 August 2016 - 08:56 AM

Vấn đề là lisp của bạn đã được mã hóa thành file *.fas nên không biết thuật toán của bạn bị lỗi như thế nào.

Bạn có thể gửi cho xem file nguồn LSP được không?

 

- Không phải là thuật toán lỗi, mà là lsp trước mình chưa tính đến trường hợp đó.

- Mình đặt vấn đề ở trên là: khi vẽ ARC thì nên cho dây cung lật về phía góc < Pi hay > Pi, vị trí tâm của nó nữa.

-  Lisp của bạn:

*** Với đường ziczac

+ Có các nút đỉnh nằm trên đường giao, arc quay ngược quay xuôi nó loạn cả lên, trông không đẹp (bán kính cũng bị thay đổi).

+ Trường hợp không có có các nút đỉnh nằm trên đường giao thì nó chạy loạn cả lên.


  • 2

#28 Detailing

Detailing

    biết lệnh imageclip

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

Đã gửi 08 August 2016 - 01:20 PM

Bạn Thiệp test thêm nhé, còn rất nhiều case bạn ko xét, hình dưới chỉ lá 2 case thôi.

 

untitled.gif


  • 2

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#29 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 08 August 2016 - 04:42 PM


-  Lisp của bạn:

*** Với đường ziczac

+ Có các nút đỉnh nằm trên đường giao, arc quay ngược quay xuôi nó loạn cả lên, trông không đẹp (bán kính cũng bị thay đổi).

+ Trường hợp không có có các nút đỉnh nằm trên đường giao thì nó chạy loạn cả lên.

Hi quocmanh, đúng là được cái này nhưng chưa được cái nọ,

"Trường hợp không có có các nút đỉnh nằm trên đường giao thì nó chạy loạn cả lên" Thiep sẽ chỉnh lại lisp.

"Có các nút đỉnh nằm trên đường giao, arc quay ngược quay xuôi nó loạn cả lên, trông không đẹp" Thiep thấy nó quay về 1 phía mà, đâu có quay ngược quay xuôi đâu. Còn bán kính cũng bị thay đổi vì Thiep dùng hàm setbulge, trong trường hợp đỉnh Pline nằm trên đường giao thì sẽ không chính xác nữa. Công thức tính bulge lâu quá rồi Thiep không nhớ nên chỉ áp dụng đại trà cho bulge = -1. Thật ra phải tính cho từng số bulge cho từng trường hợp thì nó mới ra đúng bán kính ARC yêu cầu.

Cảm ơn Quocmanh góp ý


  • 1

#30 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 08 August 2016 - 04:54 PM

Bạn Thiệp test thêm nhé, còn rất nhiều case bạn ko xét, hình dưới chỉ lá 2 case thôi.

 

untitled.gif

Cảm ơn Detailing góp ý.

Trường hợp 1, Thiệp sẽ chỉnh lại lisp.

Trường hợp 2, sau khi tạo được 1 vị trí bẻ cong (ARC), muốn tạo thêm 1 vị trí nữa thì ARC biến mất, vì đầu bài đưa ra là các curve bị bẻ cong ban đầu không có 1 ARC nào nên lisp hiểu là phải "diệt" những ARC có trước, để Thiep tìm cách khắc phục.


  • 1

#31 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 08 August 2016 - 05:24 PM

Xin được mạn đàm tí!

Đây là một bài toán thực tế, như vẽ các đường điện/nước/cáp... giao nhau, khá là hay và khá là khó.

Khó nhất là phải tiên lượng hết các trường hợp giao nhau để vẽ arc, chẳng hạn khi 2 arc chồng lấn nhau thì không thấy chủ topic đề cập. v.v... và v.v...

Hy vọng các bạn lisper đã tham gia viết sẽ viết càng hoàn chỉnh càng tốt.

Đặt gạch!


  • 2

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#32 lanvientkh

lanvientkh

    biết vẽ arc

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

Đã gửi 08 August 2016 - 09:57 PM

Dear tất cả các bạn,

Hôm nay mình lên mạng thấy có nhiều bạn tham gia vào chủ đề này mình mừng quá, mình là dân thiết kế MEP nhiều khi trên mặt trần có rất nhiều đường ống.., hay khi combine các hệ nên các đường dây điện nước này đụng nhau rất nhiều, mình cũng chưa tiên lượng được hết các trường hợp giao nhau của Arc, hi vọng có nhiều bạn góp ý thêm các trường hợp khác nữa nhé, mong các bạn sớm hoàn thành lisp này để anh em có sử dụng với nhé, cảm ơn mọi người.


  • 0

#33 lanvientkh

lanvientkh

    biết vẽ arc

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

Đã gửi 08 August 2016 - 11:58 PM

Dear các bạn,

- Mình thấy trên mạng có một cái lisp " My break object" có rất nhiều option để lựa chọn để Break các line giao nhau

http://thuvienxaydun...eak-object.html

- Nếu cái Lisp mà các bạn đang xây dựng (GIAO NHAU BẰNG CUNG ARC) cũng có các option lựa chọn như Lisp trên thì mình nghĩ chắc cũng gần đủ các trường hợp cần thiết của bài toán như bạn Doan Van Ha đề cập

- Mong sự giúp đỡ của các bạn,   :)   :)   :)   :)


  • 0

#34 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 09 August 2016 - 07:07 AM

Lisp đó thì biết lâu rồi, tuy còn nhiều trường hợp lỗi, tôi đã thêm phần tiếng Việt (bài #2), nó nằm ở link dưới. Nhưng???

http://www.cadviet.c...943#entry198943


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#35 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 09 August 2016 - 07:28 AM

 

Dear các bạn,

- Mình thấy trên mạng có một cái lisp " My break object" có rất nhiều option để lựa chọn để Break các line giao nhau

http://thuvienxaydun...eak-object.html

- Nếu cái Lisp mà các bạn đang xây dựng (GIAO NHAU BẰNG CUNG ARC) cũng có các option lựa chọn như Lisp trên thì mình nghĩ chắc cũng gần đủ các trường hợp cần thiết của bài toán như bạn Doan Van Ha đề cập

- Mong sự giúp đỡ của các bạn,   :)   :)   :)   :)

 

Đúng là ngay từ đầu Thiep đã nghĩ đến lisp breakALL, nhưng vì các đối tượng bạn đặt ra trong đầu bài tương đối đơn giản, nên không cần đến breakALL, vì nếu với số lượng đối tượng lớn cần sử lý thì hàm này chạy chậm vì trong breakALL có lệnh Break. Thiep đang muốn dùng cách khác mà không cần đến lệnh break

Lisp này Thiep đã update lần 3 với các PLINE cần bẻ cong không có arc nào. Nếu có arc vẫn viết được lisp nhưng mất thời gian quá

Lisp này chưa có lệnh thay đổi bán kính ARC tại vị trí bẻ cong, hẹn update lần sau:

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


  • 0

#36 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 09 August 2016 - 07:33 AM

Xin được mạn đàm tí!

Đây là một bài toán thực tế, như vẽ các đường điện/nước/cáp... giao nhau, khá là hay và khá là khó.

Khó nhất là phải tiên lượng hết các trường hợp giao nhau để vẽ arc, chẳng hạn khi 2 arc chồng lấn nhau thì không thấy chủ topic đề cập. v.v... và v.v...

Hy vọng các bạn lisper đã tham gia viết sẽ viết càng hoàn chỉnh càng tốt.

Đặt gạch!

Lâu lâu Thiep vô cadviet cho đỡ nhớ, nhưng càng đi sâu vào topic này càng mất thời gian quá, còn dành thời gian cho công việc nữa


  • 1

#37 tptnt2016

tptnt2016

    biết pan

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

Đã gửi 09 August 2016 - 08:33 AM

Nên nhớ Lisp sẽ có thể không chính xác khi đối tượng bị bẻ cong thẳng đứng (// trục Y), khi đó bạn nên xoay bản vẽ 1 góc 90 độ, thực hiện lisp xong thì xoay lại.


  • 0

#38 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 09 August 2016 - 09:04 AM

Nên nhớ Lisp sẽ có thể không chính xác khi đối tượng bị bẻ cong thẳng đứng (// trục Y), khi đó bạn nên xoay bản vẽ 1 góc 90 độ, thực hiện lisp xong thì xoay lại.

@tptnt, 

Lisp update lần 3 đã khắc phục lỗi này, khắc phục luôn đối tượng bị cong có kiểu ziczac bất kỳ không ARC, có đỉnh nằm hoặc không nằm trên các đường curve giao, bạn xem ở đây:

http://www.cadviet.c...-nhau/?p=405867


  • 1

#39 Detailing

Detailing

    biết lệnh imageclip

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

Đã gửi 09 August 2016 - 09:35 AM

Ko có ý làm phiền bạn Thiep nhưng mới test phát đầu đã bị vậy rồi.

http://www.cadviet.c...7_untitled1.zip


  • 1

Ideas don't matter, execution does!

1908412_308002392716743_8165279281236341


#40 thiep

thiep

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 369 Bài viết
Điểm đánh giá: 260 (khá)

Đã gửi 09 August 2016 - 11:35 AM

Ko có ý làm phiền bạn Thiep nhưng mới test phát đầu đã bị vậy rồi.

http://www.cadviet.c...7_untitled1.zip

Hi DetaiLing,

- Lỗi do Thiep dùng hàm sort các point nút của đường bị bẻ cong, nên khi tái tạo đường này nó sẽ lấy nút chỗ này thay cho nút chỗ kia.

- Các đường giao có trước quá dày thì không thể nào tạo được nhiều ARC tại nơi bẻ cong được,

- Như đã nói trước, lisp sẽ không chấp nhận các đường bị bẻ cong có ARC trước, nên lisp trước thì các ARC có trước sẽ bị xóa, Lisp update kỳ này Thiep dùng hàm lấy điểm trên curve có khác nên nó muốn nhái lại cho giống ARC nhưng không như ý.

Cảm ơn DetaiLing góp ý. Thiep sẽ kiểm tra lại


  • 1