Đến nội dung


Hình ảnh
- - - - -

Convert một phần Polyline thành ARC


  • Please log in to reply
20 replies to this topic

#1 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 07 March 2014 - 04:33 PM

118851_converttoarc.jpgMình đang có một yêu cầu "hơi lạ" thế này:

Mình muốn convert một vài segment (thẳng) của Polyline thành một segment ARC, như đường màu đỏ bên trái trở thành đường màu trắng bên phải. Toàn bộ các phân đoạn từ đỉnh số 2 đến đỉnh số 6 bị thay thế bởi cung 2-4-6. Điểm giữa 4 có thể được chỉ định bằng chuột, là môt trong các đỉnh nằm giữa.

Thật sự, làm việc với Polyline trong AutoCAD không hề đơn giản!!


  • -2

#2 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 07 March 2014 - 08:50 PM

Thử cái này, chú ý 3 điểm chọn phải nằm trên polyline, kể cả điểm giữa.

http://www.cadviet.c...168_tmp1_11.lsp


  • 1

#3 trumlenmang

trumlenmang

    biết lệnh trim

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

Đã gửi 08 March 2014 - 08:29 AM

Đối với cad 2013 -2014 việc vày trở nên đơn giản. Bạn kick chọn Pline rê chuột vào các điểm cần bỏ và bấm R (Remove) (nhớ bật F12 trước khi làm) chỉ để lại điểm 2 và 6. Cuối cùng rê chuột vào trung điểm của 2-6 và chọn C (Convert to Arc). Đó là cách mình hay dùng thủ công nhất.


  • 0

#4 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 09 March 2014 - 08:30 AM

Cám ơn bạn. Cách này cun

 

Đối với cad 2013 -2014 việc vày trở nên đơn giản. Bạn kick chọn Pline rê chuột vào các điểm cần bỏ và bấm R (Remove) (nhớ bật F12 trước khi làm) chỉ để lại điểm 2 và 6. Cuối cùng rê chuột vào trung điểm của 2-6 và chọn C (Convert to Arc). Đó là cách mình hay dùng thủ công nhất.

Cám ơn bạn, cách này hay nhưng mình chỉ dùng Cad2007 thui.


  • 0

#5 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 09 March 2014 - 08:39 AM

Thử cái này, chú ý 3 điểm chọn phải nằm trên polyline, kể cả điểm giữa.

http://www.cadviet.c...168_tmp1_11.lsp

Cám ơn bạn, nó hoạt động được. Tuy nhiên tiềm ẩn lỗi ở dòng lệnh này:

(command "erase" (ssget d3) "")

Khả năng xóa nhầm đối tượng khác là rất lớn, dẫn đến hoạt động của lệnh sẽ không chính xác (hoặc không hoạt động được).

Hoặc nếu điểm d3 đã bị PAN ra khỏi màn hình, rất có thể sẽ không có kết quả.

Mình đang tìm cách thay đổi trực tiếp trong cơ sở dữ liệu của nó rồi cập nhật lại bằng hàm (entmod...). Bạn vui lòng cải tiến theo hướng này được không?


  • 0

#6 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 09 March 2014 - 03:32 PM

Nếu chưa xài tới cad14 thì xài tạm cái này vậy.

http://www.cadviet.c...168_tmp1_14.lsp


  • 1

#7 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 10 March 2014 - 08:13 AM

Tuyệt vời!

 

Nếu chưa xài tới cad14 thì xài tạm cái này vậy.

http://www.cadviet.c...168_tmp1_14.lsp

Tuyệt vời!


  • 0

#8 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 10 March 2014 - 09:51 AM

Phiền bạn chỉnh thêm một chút cho nó hoạt động trên hệ tọa độ người dùng (UCS) được không? Bây giờ thì chỉ hoạt động đúng trên WCS thôi.


  • 0

#9 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 10 March 2014 - 10:47 AM

Vào đầu ct thêm dóng : (command "UCS" "W")

Vào cuối ct thêm dòng (sau dòng (entmod ...): (command "UCS" "P")


  • 1

#10 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 10 March 2014 - 11:05 AM

Vào đầu ct thêm dóng : (command "UCS" "W")

Vào cuối ct thêm dòng (sau dòng (entmod ...): (command "UCS" "P")

Dòng lệnh này không hoạt động trong Block Editor bạn ạ! :)


  • 0

#11 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 10 March 2014 - 04:24 PM

 Ở chỗ 3 điểm d1, d2, d3 chuyển thành -> d1 (trans (getpoint "\nDinh dau cua arc:") 1 0)

d2, d3 tương tự.


  • 1

#12 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 11 March 2014 - 11:07 AM

Sau khi thêm hàm (trans ... 1 0) vào thì nó ... không hoạt động bạn ạ!


  • 0

#13 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 11 March 2014 - 03:39 PM

Không phải do hàm trans mà do hàm so sánh = , thay bằng hàm equal là ổn.

http://www.cadviet.c...168_tmp1_15.lsp


  • 1

#14 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 11 March 2014 - 04:54 PM

Chính xác, tuyệt vời! :D


  • 0

#15 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 14 March 2014 - 10:18 AM

Có hiện tượng như thế này bạn ạ:

118851_plarc2_1.jpg


  • 0

#16 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 14 March 2014 - 02:58 PM

Do hàm arc2 trả về bị sai dấu +/- cho nên arc bi ngược phía, sửa lại như sau:

http://www.cadviet.c...168_tmp1_19.lsp


  • 1

#17 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 14 March 2014 - 03:09 PM

Chưa ổn được vì nó còn phụ thuộc hướng chọn start và end nữa. Tot7 test sẽ thấy.


  • 1

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


#18 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 14 March 2014 - 03:09 PM

Cám ơn bạn Tot77 rất nhiều!


  • 0

#19 Polyline

Polyline

    biết lệnh mirror

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

Đã gửi 14 March 2014 - 03:14 PM

Đối với một PLine khép kín (có các điểm d1 d2 d3 d4 d5=d1), nếu convert các điểm d4 d5=d1 d2 thì sẽ không thành công.


  • 0

#20 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 14 March 2014 - 04:13 PM

thì đương nhiên là không thành công rồi, vì không thể bắt cầu kiểu đó được, vì tuy điểm đầu và cuối trùng nhau nhưng trong cơ sở dữ liệu vẫn là 2 điểm khac nhau.


  • 1