Đến nội dung


Hình ảnh

Kéo cung tròn thành đường tròn?


  • Please log in to reply
17 replies to this topic

#1 cadpro

cadpro

    biết zoom

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

Đã gửi 20 May 2009 - 12:05 PM

Em có 1 cái cung Arc, em muốn nó chuyển thành đường tròn (nhưng không làm theo cách là vẽ đường tròn rồi xóa Arc ấy đi). Cũng như kiểu kéo đầu này của Arc chập vào đầu kia của Arc ấy (nhưng em kéo mãi mà ko nó vào được :mellow: )
  • 0

#2 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 761 (tốt)

Đã gửi 20 May 2009 - 02:03 PM

Em có 1 cái cung Arc, em muốn nó chuyển thành đường tròn (nhưng không làm theo cách là vẽ đường tròn rồi xóa Arc ấy đi). Cũng như kiểu kéo đầu này của Arc chập vào đầu kia của Arc ấy (nhưng em kéo mãi mà ko nó vào được :mellow: )

Bạn có thể dùng lệnh PE với tham số C (Close). Tuy nhiên kết quả sẽ là đường tròn không phải là "đường tròn"! :mellow:
  • 2

#3 hai_1401

hai_1401

    biết lệnh rotate

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

Đã gửi 20 May 2009 - 02:35 PM

Bạn có thể dùng lệnh PE với tham số C (Close). Tuy nhiên kết quả sẽ là đường tròn không phải là "đường tròn"! :mellow:

Làm theo bác thì nó chỉ ra đường tròn Pline thôi :mellow:
  • 0

#4 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 761 (tốt)

Đã gửi 20 May 2009 - 02:39 PM

Làm theo bác thì nó chỉ ra đường tròn Pline thôi :mellow:

Thế nên tôi mới nói: "kết quả sẽ là đường tròn không phải là "đường tròn"
Bạn dùng lệnh LI kiểm tra xem, nó có phải là Circle đâu! Nhưng mà nó kín và có duy nhất một bán kính đàng hoàng! :mellow:
  • 0

#5 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 20 May 2009 - 03:15 PM

Em có 1 cái cung Arc, em muốn nó chuyển thành đường tròn (nhưng không làm theo cách là vẽ đường tròn rồi xóa Arc ấy đi). Cũng như kiểu kéo đầu này của Arc chập vào đầu kia của Arc ấy (nhưng em kéo mãi mà ko nó vào được :mellow: )

Lisp đây sẽ biến cung arc thành Circle
(defun c:ACi()
(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar))
(command "circle" (cdr (assoc 10 ent)) (cdr (assoc 40 ent)))
(command "erase" ar "")
(princ)
)

  • 4

#6 hai_1401

hai_1401

    biết lệnh rotate

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

Đã gửi 20 May 2009 - 06:42 PM

Lisp đây sẽ biến cung arc thành Circle

(defun c:ACi()
(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar))
(command "circle" (cdr (assoc 10 ent)) (cdr (assoc 40 ent)))
(command "erase" ar "")
(princ)
)

Bác Tue_NV là chuyên viên về lisp là :mellow:
  • 0

#7 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 20 May 2009 - 07:37 PM

Lisp đây sẽ biến cung arc thành Circle

(defun c:ACi()
(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar))
(command "circle" (cdr (assoc 10 ent)) (cdr (assoc 40 ent)))
(command "erase" ar "")
(princ)
)

Bác Tue_NV ơi,
Bác có thể dùng hàm entmake thay cho lệnh Cicle bác nhể,
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#8 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 20 May 2009 - 08:24 PM

Bác Tue_NV ơi,
Bác có thể dùng hàm entmake thay cho lệnh Cicle bác nhể,

dùng hàm entmake thay cho hàm Command
(defun c:ACi(/ ar ent)
(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar))
(entmake (list (cons 0 "CIRCLE") (cons 10 (cdr(assoc 10 ent))) (cons 40 (cdr(assoc 40 ent)))))
(command "erase" ar "")
(princ)
)

  • 0

#9 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 21 May 2009 - 08:12 AM

[quote name='Tue_NV' post='60735' date='May 20 2009, 20:24']dùng hàm entmake thay cho hàm Command
(defun c:AtC(/ ar ent ds val); Arc to Circle
(defun dxf(id ent) (cdr (assoc id ent)) )

(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar)
ds (list (cons 0 "CIRCLE") (cons 10 (dxf 10 ent)) (cons 40 (dxf 40 ent)) ))
(setq ds (append ds (list (cons 8 (dxf 8 ent)))) );layer
(if (setq val (dxf 62 ent));color
(setq ds (append ds (list (cons 62 val))) )
)
(if (setq val (dxf 6 ent));line type
(setq ds (append ds (list (cons 6 val))) )
)
(if (setq val (dxf 370 ent));line weight
(setq ds (append ds (list (cons 370 val))) )
)
(entmake ds)
(entdel ar)
(princ)
)



  • 2

#10 Kha_Anh_Tu

Kha_Anh_Tu

    biết dimdiameter

  • Members
  • PipPipPipPipPip
  • 332 Bài viết
Điểm đánh giá: 132 (tàm tạm)

Đã gửi 21 May 2009 - 10:30 AM

Thế nên tôi mới nói: "kết quả sẽ là đường tròn không phải là "đường tròn"
Bạn dùng lệnh LI kiểm tra xem, nó có phải là Circle đâu! Nhưng mà nó kín và có duy nhất một bán kính đàng hoàng! :mellow:

đâu phải ai cũng rành về lisp đâu. Thế cho nên cái cách chỉ dẫn của anh duongsatdn là hay nhất. Dù đường tròn chưa hẳn là đường tròn nhưng vẫn tuyệt. Xin cảm ơn đại ka duongsatdn nhiều lắm :mellow:
  • 0
Không có người phụ nữ nào xấu

Chỉ có người phụ nữ hẻm bít mình xấu thôi....ka ka ka


Mưa rơi ướt áo ướt quần
Làm sao ướt được tinh thần dân chơi..
Mưa rơi thì mặc mưa rơi
Mưa rơi lớn quá dân chơi đi về.....
(^o^)
Hình đã gửi Hình đã gửi

#11 duongsatdn

duongsatdn

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1657 Bài viết
Điểm đánh giá: 761 (tốt)

Đã gửi 21 May 2009 - 10:39 AM

Dùng lisp của bác Tue_NV là tuyệt quá rồi. Nhưng kể ra mà nói thì lisp này vẫn "phạm quy":

Em có 1 cái cung Arc, em muốn nó chuyển thành đường tròn (nhưng không làm theo cách là vẽ đường tròn rồi xóa Arc ấy đi). Cũng như kiểu kéo đầu này của Arc chập vào đầu kia của Arc ấy (nhưng em kéo mãi mà ko nó vào được :mellow: )


  • 0

#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 21 May 2009 - 12:43 PM

Chào Tue_NV
Xin phép bổ sung phần Properties (thuộc tính : layer, color, linetype, lineweight)
dùng Entdel thay cho Command Erase.

(defun c:AtC(/ ar ent ds val); Arc to Circle
(defun dxf(id ent) (cdr (assoc id ent)) )

(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar)
ds (list (cons 0 "CIRCLE") (cons 10 (dxf 10 ent)) (cons 40 (dxf 40 ent)) ))
(setq ds (append ds (list (cons 8 (dxf 8 ent)))) );layer
(if (setq val (dxf 62 ent));color
(setq ds (append ds (list (cons 62 val))) )
)
(if (setq val (dxf 6 ent));line type
(setq ds (append ds (list (cons 6 val))) )
)
(if (setq val (dxf 370 ent));line weight
(setq ds (append ds (list (cons 370 val))) )
)
(entmake ds)
(entdel ar)
(princ)
)

Chào anh gia bách
Lời đầu tiên Tue_NV xin cảm ơn anh gia bách rất nhiều vì sự chia sẻ
Nếu để gán thuộc tính của arc cho circle thì mình vẫn có thể sử dụng lệnh MA được mà
(defun c:ACi(/ ar ent)
(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar))
(entmake (list (cons 0 "CIRCLE") (cons 10 (cdr(assoc 10 ent))) (cons 40 (cdr(assoc 40 ent)))))

(command "MATCHPROP" ar (entlast) "")
(entdel ar)
(princ)
)

  • 1

#13 q288

q288

    biết lệnh fillet

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

Đã gửi 21 May 2009 - 02:25 PM

Em có 1 cái cung Arc, em muốn nó chuyển thành đường tròn (nhưng không làm theo cách là vẽ đường tròn rồi xóa Arc ấy đi). Cũng như kiểu kéo đầu này của Arc chập vào đầu kia của Arc ấy (nhưng em kéo mãi mà ko nó vào được :mellow: )


Mình nghĩ có 3 cách:
- Cách 1 là của bạn duongsatdn , arc sẽ biến thành pline.
- Cách 2 dùng lệnh lengthen với tham số dy, cách này vẫn là arc, nhưng chắc chắn không thể kín đc, mình làm mãi vẫn còn khe hở cỡ 0.002, vì arc không bao giờ close đc (CAD cấm chuyện này).
- Cách 3 dùng properties chỉnh end angle cho "gần bằng" start angle .
Nếu ko cho xóa arc vẽ lại circle thì chỉ còn các cách trên thôi. Có ai nghĩ ra cách nào khác ko?
  • 0

#14 thuyvan89

thuyvan89

    biết zoom

  • Members
  • Pip
  • 19 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 21 May 2009 - 06:22 PM

Mình nghĩ có 3 cách:
- Cách 1 là của bạn duongsatdn , arc sẽ biến thành pline.
- Cách 2 dùng lệnh lengthen với tham số dy, cách này vẫn là arc, nhưng chắc chắn không thể kín đc, mình làm mãi vẫn còn khe hở cỡ 0.002, vì arc không bao giờ close đc (CAD cấm chuyện này).
- Cách 3 dùng properties chỉnh end angle cho "gần bằng" start angle .
Nếu ko cho xóa arc vẽ lại circle thì chỉ còn các cách trên thôi. Có ai nghĩ ra cách nào khác ko?

Em tưởng cứ vẽ đường tròn bắt điểm trên cung tròn rồi xóa cái cung tròn đi là xong!
  • 0

#15 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 22 May 2009 - 07:33 AM

Chào anh gia bách
Lời đầu tiên Tue_NV xin cảm ơn anh gia bách rất nhiều vì sự chia sẻ
Nếu để gán thuộc tính của arc cho circle thì mình vẫn có thể sử dụng lệnh MA được mà

(defun c:ACi(/ ar ent)
(setq ar (car(entsel "\n Chon arc :")))
(setq ent (entget ar))
(entmake (list (cons 0 "CIRCLE") (cons 10 (cdr(assoc 10 ent))) (cons 40 (cdr(assoc 40 ent)))))

(command "MATCHPROP" ar (entlast) "")
(entdel ar)
(princ)
)

Chào Tue_NV.
"Đường nào cũng đến LA MÃ"
Tui có thói quen khi viết LISP (khi có thể được ) thì dùng lệnh của LISP, hạn chế dùng lệnh CAD(command).
đó chỉ là thói quen, không biết là thói quen tốt hay xấu.
Chúc sức khỏe.
  • 1

#16 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 22 May 2009 - 08:03 AM

Chào Tue_NV.
"Đường nào cũng đến LA MÃ"
Tui có thói quen khi viết LISP (khi có thể được ) thì dùng lệnh của LISP, hạn chế dùng lệnh CAD(command).
đó chỉ là thói quen, không biết là thói quen tốt hay xấu.
Chúc sức khỏe.

Chào anh gia bách.

Tue_NV nghĩ rằng thói quen dùng lệnh của Lisp, hạn chế dùng lệnh của CAD là một thói quen cực kì tốt. Vì nó kích thích chúng ta tư duy, suy nghĩ khi viết Lisp, cái thứ 2 nữa là giúp chúng ta nhớ lệnh của Lisp cũng như cú pháp của chúng.
Tue_NV có lẽ sẽ tập theo thói quen của anh gia bách và học ở anh rất nhiều.

Cảm ơn anh và chúc anh thật nhiều sức khoẻ.
  • 1

#17 quangbkhn

quangbkhn

    Chưa sử dụng CAD

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

Đã gửi 27 May 2009 - 12:02 PM

Em mới dùng cad nên chưa biết sử dụng lisp , các bác chỉ em cách đưa lisp vào dcad để sử dụng nhé . Thanks
  • 0

#18 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 27 May 2009 - 12:16 PM

Em mới dùng cad nên chưa biết sử dụng lisp , các bác chỉ em cách đưa lisp vào dcad để sử dụng nhé . Thanks


Có bài viết :
http://www.cadviet.c...o...10173&st=20
  • 2

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”