Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Viết Lisp Tạo Đường Bao


  • Please log in to reply
12 replies to this topic

#1 dinhthang8709

dinhthang8709

    biết pan

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

Đã gửi 22 March 2017 - 07:26 PM

Nhờ các bác viết giúp em lisp tạo đường bao với ạ

Mô tả như sau: Tạo ra Hatch bằng cách pick điểm, tạo đường bao của Hatch rồi xóa Hatch đi ạ.

Thanks


  • -2

#2 Bee

Bee

    biết dimdiameter

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

Đã gửi 22 March 2017 - 09:29 PM

Nhờ các bác viết giúp em lisp tạo đường bao với ạ

Mô tả như sau: Tạo ra Hatch bằng cách pick điểm, tạo đường bao của Hatch rồi xóa Hatch đi ạ.

Thanks

dùng lệnh boundary hoặc -bo ^_^


  • 0

#3 dinhthang8709

dinhthang8709

    biết pan

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

Đã gửi 23 March 2017 - 12:13 AM

dùng lệnh boundary hoặc -bo ^_^

boundary chỉ được 1 ô thôi ạ. Mình muốn pick nhiều ô thành 1 ô như lisp tính diện tích ấy./


  • 0

#4 Bee

Bee

    biết dimdiameter

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

Đã gửi 23 March 2017 - 08:16 AM

boundary chỉ được 1 ô thôi ạ. Mình muốn pick nhiều ô thành 1 ô như lisp tính diện tích ấy./

pót ví dụ hình ảnh hoặc dwg xem nao !


  • 0

#5 dinhthang8709

dinhthang8709

    biết pan

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

Đã gửi 26 March 2017 - 07:11 PM

Ý mình là như vậy này: pick vào các hình A, B, C rồi tạo đường bao cho cho cả 3 hình ấy.

http://www.cadviet.c...4_duong_bao.dwg


  • 0

#6 dinhvantrang

dinhvantrang

    biết lệnh offset

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

Đã gửi 27 March 2017 - 07:48 AM

sao không dùng lệnh Hatch đó bạn? Lệnh Hatch cũng tạo ra Hatch với đường bao mà đồng thời cũng cho pick nhiều vùng cùng một lần đó


  • 0

Thanks and Best Regards

Skype : dinhvantrang73

 

Series video hướng dẫn lập trình VBA cho Autocad & Excel

https://www.youtube....m54mGak6O9YSmfT


#7 Bee

Bee

    biết dimdiameter

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

Đã gửi 27 March 2017 - 07:33 PM

Ý mình là như vậy này: pick vào các hình A, B, C rồi tạo đường bao cho cho cả 3 hình ấy.

http://www.cadviet.c...4_duong_bao.dwg

Cái này thì đơn giản. Nhưng đến cuối tuần mình mới rảnh được, bao nhiêu deadline đang giục, đến tầm đó chưa ai viết thì mình sẽ viết cho. 


  • 0

#8 haanh

haanh

    biết lệnh adcenter

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

Đã gửi 27 March 2017 - 11:27 PM

sao không dùng lệnh Hatch đó bạn? Lệnh Hatch cũng tạo ra Hatch với đường bao mà đồng thời cũng cho pick nhiều vùng cùng một lần đó

 

Sao em dùng Hatch không được ??? ( Xóa hatch còn lại 3 miền kín  chứ không phải là 1 miền kín)

Dùng hatch chắc chắn không hay bằng dùng lệnh  bo tạo 3 miền kín rời rạc rồi lại union thành 1 miền kín.


  • 1

“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...”


#9 CuongXD7

CuongXD7

    Chưa sử dụng CAD

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

Đã gửi 29 March 2017 - 12:37 AM

Tiện đây nhờ các anh cho em hỏi xíu ?
Nếu miền cần tạo polyline không được khép kín mà bị hở ra ví dụ như phòng chức năng có ô cửa đi thì lisp có làm được không ạ.
Cái này lúc trước em có thấy trên diễn đàn có đề cập rồi nhưng em tìm không ra bài viết, mong các anh trợ giúp.


  • 0

#10 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 29 March 2017 - 11:55 AM

Ý mình là như vậy này: pick vào các hình A, B, C rồi tạo đường bao cho cho cả 3 hình ấy.

http://www.cadviet.c...4_duong_bao.dwg

Quick code

(defun c:bao()
  (setq p (getpoint "pick diem :"))
  (command "._boundary" "A" "O" "R" "" p "")
  (Command "._region" "L" "")
  (setq el (entlast)) (redraw el 3)
  (while (setq p (getpoint "pick diem :"))
      (command "._boundary" p "")
      (Command "._region" "L" "")
    (command "._union" el "L" "")
    (setq el (entlast))
    (redraw el 3)
  )
)

  • 1

#11 dinhthang8709

dinhthang8709

    biết pan

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

Đã gửi 29 March 2017 - 06:31 PM

 

Quick code

(defun c:bao()
  (setq p (getpoint "pick diem :"))
  (command "._boundary" "A" "O" "R" "" p "")
  (Command "._region" "L" "")
  (setq el (entlast)) (redraw el 3)
  (while (setq p (getpoint "pick diem :"))
      (command "._boundary" p "")
      (Command "._region" "L" "")
    (command "._union" el "L" "")
    (setq el (entlast))
    (redraw el 3)
  )
)

Anh có thể bỏ bắt điểm được không. Vì ở đây mình chỉ cần pick vào vùng kín.

Với lại sau khi xong region nó cứ như là được chọn vậy anh, mặc dù nó có được đâu ạ.


  • -1

#12 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 30 March 2017 - 04:29 AM

Anh có thể bỏ bắt điểm được không. Vì ở đây mình chỉ cần pick vào vùng kín.

Với lại sau khi xong region nó cứ như là được chọn vậy anh, mặc dù nó có được đâu ạ.

Mục đích mình hiện sáng đối tượng để dễ quan sát. Nếu bạn thích thì trong lisp bỏ dòng (redraw el 3)

Bổ sung thêm cái bỏ chế độ bắt điểm

Quick code

(defun c:bao(/ p os)
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (setq p (getpoint "pick diem :"))
   
  (command "._boundary" "A" "O" "R" "" p "")
  (Command "._region" "L" "")
  (setq el (entlast))
 (redraw el 3)
  (while (setq p (getpoint "pick diem :"))
      (command "._boundary" p "")
      (Command "._region" "L" "")
    (command "._union" el "L" "")
    (setq el (entlast))
    (redraw el 3)
  )
  (setvar "osmode" os)
)

  • 1

#13 dinhthang8709

dinhthang8709

    biết pan

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

Đã gửi 30 March 2017 - 07:53 AM

 

Mục đích mình hiện sáng đối tượng để dễ quan sát. Nếu bạn thích thì trong lisp bỏ dòng (redraw el 3)

Bổ sung thêm cái bỏ chế độ bắt điểm

Quick code

(defun c:bao(/ p os)
  (setq os (getvar "osmode"))
  (setvar "osmode" 0)
  (setq p (getpoint "pick diem :"))
   
  (command "._boundary" "A" "O" "R" "" p "")
  (Command "._region" "L" "")
  (setq el (entlast))
 (redraw el 3)
  (while (setq p (getpoint "pick diem :"))
      (command "._boundary" p "")
      (Command "._region" "L" "")
    (command "._union" el "L" "")
    (setq el (entlast))
    (redraw el 3)
  )
  (setvar "osmode" os)
)

Đúng ý mình rồi. Cảm ơn bạn nhiều nhé.!


  • 0