Đến nội dung


Hình ảnh
- - - - -

(entget) trả kết quả không đúng


  • Please log in to reply
5 replies to this topic

#1 hellocadviet

hellocadviet

    biết vẽ line

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

Đã gửi 29 March 2010 - 09:22 AM

Mình dùng lệnh (setq a (entget (car (entsel)))) để lấy toạ độ các đỉnh của Polilyne nhưng thấy rằng toạ độ nhận được và toạ độ hiển thị trên màn hình (dùng lệnh id) không trùng nhau. Việc này dẫn đến mình dùng lisp inan không thể in được. Khi in đều in ra giấy trắng trong khi bản vẽ đã bật hết các lớp. Các bác cho em hỏi là bị sao và cách khắc phục với ạ. Cảm ơn các bác :D
Đây là một trắc ngang trong file của em:

http://www.mediafire.com/?5ezvzo1immf


  • 0

#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 29 March 2010 - 10:41 AM

Mình dùng lệnh (setq a (entget (car (entsel)))) để lấy toạ độ các đỉnh của Polilyne nhưng thấy rằng toạ độ nhận được và toạ độ hiển thị trên màn hình (dùng lệnh id) không trùng nhau. Việc này dẫn đến mình dùng lisp inan không thể in được. Khi in đều in ra giấy trắng trong khi bản vẽ đã bật hết các lớp. Các bác cho em hỏi là bị sao và cách khắc phục với ạ. Cảm ơn các bác :D
Đây là một trắc ngang trong file của em:

Chào bạn hellocadviet,
1/- Cái bản vẽ bạn pót chả có tí trắc ngang trắc dọc nào cả bạn ạ. Chỉ trần sì mỗi cái khung bản vẽ màu đỏ trên lớp 2-khung.
2/- Hàm (entget (car(entsel))) trả về một list các mã dxf của đối tượng, tùy theo loại đối tượng mà cái list này khách nhau bạn ạ.
Với đối tượng "LWPOLYLINE" thì trong list trả về, các mã dxf 10 là tọa độ các đỉnh, còn với đối tượng "POLYLINE" thì không thể lấy tọa độ các đỉnh trực tiếp từ trong list mã dxf này.
3/- Để lấy các đỉnh của một đối tượng là "LWPOLYLINE" bạn có thể sử dụng lisp sau:
http://www.cadviet.c...s/2/laydinh.lsp
4/- Để lấy đỉnh của một đối tượng là "POLYLỈNE" bạn có thể dùng lisp sau:
http://www.cadviet.c...dinhpline_1.lsp

Việc in ra giấy trắng tinh có thể do bạn đã khóa việc in ấn của các lớp này. Khi mở bản vẽ bạn gửi mình thấy có hai lớp là lớp 0 và lớp 2-khung. Trong đó lớp 2-khung là lớp hiện hành. Cả hai lớp này đều bị freeze cả, và lớp 2-khung thì bị khóa in ấn (biểu tượng cái máy in bị gạch chéo.) Bạn hãy kiểm tra lại bản vẽ của 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.

#3 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 29 March 2010 - 10:43 AM

Mình dùng lệnh (setq a (entget (car (entsel)))) để lấy toạ độ các đỉnh của Polilyne nhưng thấy rằng toạ độ nhận được và toạ độ hiển thị trên màn hình (dùng lệnh id) không trùng nhau. Việc này dẫn đến mình dùng lisp inan không thể in được. Khi in đều in ra giấy trắng trong khi bản vẽ đã bật hết các lớp. Các bác cho em hỏi là bị sao và cách khắc phục với ạ. Cảm ơn các bác :D
Đây là một trắc ngang trong file của em:

Dùng hàm trans để chuyển hệ tọa độ : (trans pt from to [disp])

tham khảo
(defun c:test(/ pt_lst ss); Polyline Vertex
(vl-load-com)
(defun poly-pts (pl / n p l)
(setq n (fix (vlax-curve-getEndParam pl)))
(or (vlax-curve-IsClosed pl) (setq n (1+ n)))
(while (setq p (vlax-curve-getPointAtParam pl (setq n (1- n))))
(setq l (cons (trans p 0 1) l)) ))

(if (setq ss (ssget "+.:S:E" (list (cons 0 "*POLYLINE"))))
(progn
(setq pt_lst (poly-pts (ssname ss 0)))
(princ(vl-prin1-to-string pt_lst))))
(princ))

  • 1

#4 ducboss

ducboss

    biết vẽ line

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

Đã gửi 29 March 2010 - 12:25 PM

Chào bạn hellocadviet,
3/- Để lấy các đỉnh của một đối tượng là "LWPOLYLINE" bạn có thể sử dụng lisp sau:
http://www.cadviet.c...s/2/laydinh.lsp
4/- Để lấy đỉnh của một đối tượng là "POLYLỈNE" bạn có thể dùng lisp sau:
http://www.cadviet.c...dinhpline_1.lsp

sao mình download về chạy lisp bị báo lỗi. :D
  • 0

#5 hellocadviet

hellocadviet

    biết vẽ line

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

Đã gửi 29 March 2010 - 01:31 PM

Mình in được rồi. Cảm ơn các bạn :D
  • 0

#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 30 March 2010 - 11:18 AM

sao mình download về chạy lisp bị báo lỗi. :D

Báo lỗi gì hả 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.