Đến nội dung


Hình ảnh

[Hỏi] Lệnh Polyline và Lwpolyne


  • Please log in to reply
11 replies to this topic

#1 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 16 April 2012 - 10:36 AM

Mọi người cho mình hỏi Lệnh POLYLINE và LWPOLYNE là 2 lệnh riêng biệt hay là cùng một lệnh. sự khác nhau của chúng là thế nào.
Tại sao khi mình vẽ lệnh PL trên cad R14 và cad 2007 khi LI lên thì nó hiển thị là LWPOLYLINE
mà ở cad 2004 khi vẽ lênh PL khi LI lên thì nó hiển thị là : POLYLINE
Thank!
  • 1

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#2 Hai_YenLang

Hai_YenLang

    biết lệnh explore

  • Members
  • PipPipPipPipPipPip
  • 473 Bài viết
Điểm đánh giá: 149 (tàm tạm)

Đã gửi 16 April 2012 - 11:58 AM

Mọi người cho mình hỏi Lệnh POLYLINE và LWPOLYNE là 2 lệnh riêng biệt hay là cùng một lệnh. sự khác nhau của chúng là thế nào.
Tại sao khi mình vẽ lệnh PL trên cad R14 và cad 2007 khi LI lên thì nó hiển thị là LWPOLYLINE
mà ở cad 2004 khi vẽ lênh PL khi LI lên thì nó hiển thị là : POLYLINE
Thank!

Nó chỉ là một lệnh ML sinh ra
Đoán: Có thể tên gốc ban đầu của nó trong CAD14 là POLYLINE , sang các phiên bản khác đời mới do có thêm một số chức năng sửa đổi chỉnh sửa bổ xung nó có thêm chữ LW thành LWPOLYNE
Giống như tên của một sản phẩm hàng hóa , nếu chỉ tiêu thụ trong nước thì người ta chỉ ghi là THICHO, còn sản phẩm đã nâng cấp để xuất khẩu thì người ta ghi thêm phía sau chữ ® nhỏ khoanh tròn: THITCHO®

THICHO và THITCHO® vẫn là thịt cầy!
  • 1
Đức hạnh lớn nhất mà bên cạnh đó, mọi đức hạnh khác đều mờ nhạt đi, đó là không làm hại ai và tùy sức mà giúp đỡ mọi người "
Người cảnh sát điều tra hình sự giỏi là người biết được tất cả những hành vi thủ đoạn trộm cắp của bọn trộm cắp, nhưng lại dốt ăn cắp ăn trộm ...

#3 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 16 April 2012 - 12:19 PM

Nó chỉ là một lệnh ML sinh ra

THICHO và THITCHO® vẫn là thịt cầy!


Nếu nó là một vậy tại sao khi mình thực hiện một số LSP thì với LWPOLYLINE thì LSP thực hiện được còn với POLYLINE thì LSP lại không thực hiện được.?
(Cùng là hạt lúa, khi bỏ vỏ thì nó là hạt gạo, khi nấu chín thì nó lại gọi là cơm. sao không gọi sát lúa mà là sát gạo, là luộc gạo mà là nấu cơm)
  • 0

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5682 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 16 April 2012 - 12:39 PM

Ketxu hiểu nôm na thế này : POLYLINE là Pline 3D, có cao độ từng điểm có thể thay đổi (Các vertex có thể thuộc các mặt phẳng khác nhau)
LWLPOLYLINE là Pline 2D, các vertex đều nằm chung trên 1 mặt phẳng
  • 3

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 Hai_YenLang

Hai_YenLang

    biết lệnh explore

  • Members
  • PipPipPipPipPipPip
  • 473 Bài viết
Điểm đánh giá: 149 (tàm tạm)

Đã gửi 16 April 2012 - 03:09 PM

Nếu nó là một vậy tại sao khi mình thực hiện một số LSP thì với LWPOLYLINE thì LSP thực hiện được còn với POLYLINE thì LSP lại không thực hiện được.?
(Cùng là hạt lúa, khi bỏ vỏ thì nó là hạt gạo, khi nấu chín thì nó lại gọi là cơm. sao không gọi sát lúa mà là sát gạo, là luộc gạo mà là nấu cơm)

1-Có thể có sự khác biệt về dòng của wieght của Polyline
Mã số: (0. "Polyline")
Mã số: (0. "LWPOLYLINE")
??
2- Sát gạo = Kết quả cuối cùng của việc sát lúa là ra gạo. Cơm và cháo khác với rau luộc . Rau luộc phải luộc vừa chín tới không luộc kỹ như ninh nhừ gạo thành cháo. Rau luộc xong phải vớt ngay ra rổ rá để ráo nước, vớt chậm màu của rau không xanh nhìn không sướng mắt.

Ketxu hiểu nôm na thế này : POLYLINE là Pline 3D, có cao độ từng điểm có thể thay đổi (Các vertex có thể thuộc các mặt phẳng khác nhau)
LWLPOLYLINE là Pline 2D, các vertex đều nằm chung trên 1 mặt phẳng

Cũng rất khó giả thích
-Gõ PL chỉ cho phép vẽ các điểm đồng phẳng, đang vẽ điểm ở mặt phẳng này, nhảy sang bắt điểm ở mặt phẳng khác ko được.
Lệnh PL (Polyline) vẽ được trên mặt phẳng OXY (x ≠ 0 , y ≠ 0, z = 0) và vẽ được trên mặt phẳng OYZ ( x =0 , y ≠ 0, z ≠ 0). Khi gõ Li để xem thì nó cùng được gọi LWPOLYLINE ???
Gõ 3DPOPLY : Vẽ được các điểm trên các mặt phẳng khác nhau. Khi gõ Li để xem thì nó gọi là POLYLINE.

-Kết luận: Khi xem thông tin trên Li phải hiểu rằng:
1- LWPOLYLINE là hình được vẽ bởi lệnh : Polyline
2- POLYLINE là hình được vẽ bởi lệnh : 3D Poliline

Tóm lại cơm là hình 3D, cháo là hình 2D!
  • 1
Đức hạnh lớn nhất mà bên cạnh đó, mọi đức hạnh khác đều mờ nhạt đi, đó là không làm hại ai và tùy sức mà giúp đỡ mọi người "
Người cảnh sát điều tra hình sự giỏi là người biết được tất cả những hành vi thủ đoạn trộm cắp của bọn trộm cắp, nhưng lại dốt ăn cắp ăn trộm ...

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2012 - 03:33 PM

-Kết luận: Khi xem thông tin trên Li phải hiểu rằng:
1- LWPOLYLINE là hình được vẽ bởi lệnh : Polyline
2- POLYLINE là hình được vẽ bởi lệnh : 3D Poliline

1- LWPOLYLINE là hình được vẽ bởi lệnh : Pline (không có lệnh Polyline)
2- POLYLINE là hình được vẽ bởi lệnh : 3dpoly (không có lệnh 3dpolyline)

Mọi người cho mình hỏi Lệnh POLYLINE và LWPOLYNE là 2 lệnh riêng biệt hay là cùng một lệnh. sự khác nhau của chúng là thế nào.
Tại sao khi mình vẽ lệnh PL trên cad R14 và cad 2007 khi LI lên thì nó hiển thị là LWPOLYLINE
mà ở cad 2004 khi vẽ lênh PL khi LI lên thì nó hiển thị là : POLYLINE
Thank!

Cad 2004 thì LI vẫn là LWPOLYLINE! Không biết R14 thì LI sẽ ra cái gì? => thông tin này nguy hiểm quá!
  • 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.


#7 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 16 April 2012 - 03:53 PM

Cad 2004 thì LI vẫn là LWPOLYLINE! Không biết R14 thì LI sẽ ra cái gì? => thông tin này nguy hiểm quá!


Ở cad R14 khi LI lên thì cũng là LWPOLYLINE. Về cad thì mình vẫn còn tối tăm lắm. chỉ cài và sử dụng chưa biết hiệu chỉnh nhiều. nên cứ cài mặc định.
nên khi vẽ lệnh PL ở cad R14 và cad2007 li thì đều là LWPOLYLINE ( lấy được tọa độ các đỉnh của PL)
Còn ở cad 2004 nó chỉ là POLYLINE.

Tìm nửa ngày cuối cùng cũng được cái này. để đưa thằng PL ở cad2004 là LWPOLYLINE

Search một hồi thì ra cái này PLINETYPE
0 - POLYLINE
1 - LWPOLYLINE


  • 1

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#8 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2012 - 04:02 PM


Ở cad R14 khi LI lên thì cũng là LWPOLYLINE. Về cad thì mình vẫn còn tối tăm lắm. chỉ cài và sử dụng chưa biết hiệu chỉnh nhiều. nên cứ cài mặc định.
nên khi vẽ lệnh PL ở cad R14 và cad2007 li thì đều là LWPOLYLINE ( lấy được tọa độ các đỉnh của PL)
Còn ở cad 2004 nó chỉ là POLYLINE.

Tìm nửa ngày cuối cùng cũng được cái này. để đưa thằng PL ở cad2004 là LWPOLYLINE

Hoá ra POLYLINE hay LWPOLYLINE là ở biến PLINETYPE, chứ cad 2004 hay 2007... thì không quan trọng.
Bạn check 2004 với Plinetype=0, tôi check 2004 với plinetype=1 nên khác nhau. Ái dà, cái này thì phải xem lại các lisp cũ thôi, kẻo nó lỗi hết.
  • 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.


#9 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 16 April 2012 - 04:12 PM

Hoá ra POLYLINE hay LWPOLYLINE là ở biến PLINETYPE, chứ cad 2004 hay 2007... thì không quan trọng.
Bạn check 2004 với Plinetype=0, tôi check 2004 với plinetype=1 nên khác nhau. Ái dà, cái này thì phải xem lại các lisp cũ thôi, kẻo nó lỗi hết.

Nếu có lỗi thì bạn thông báo cho mọi người để cả nhà cùng chữa hỏa. để nhà nước khỏi mất tiền để xây cho anh em ta căn biệt thự bằng đá phiến.
Nhân tiện cho mình hỏi luôn. Lisp đang chỉ thực hiện khi là LWPOLYLINE giờ muốn nó thực hiện luôn với POLYLINE thì làm thế nào.
VD lisp này của Mr. PhamThanhBinh. với POLYLINE thì ko thực hiện được

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=63126&pid=195881&st=0&#entry195881

(defun c:gcoor (/ oldos k k1 p pl pls1 pmin pmax plst sc sh p1el ss1 ssl1 ssl2)
(Init)
(vl-load-com)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
;;; Ve duong bao
;;;(command "pline")
;;;(While (setq p (getpoint "\n chon lan luot cac dinh cua duong bao"))
;;; (command p)
;;;)
;;;(command "c")
(setq pl (car (entsel "\n Pick chon duong bao " ))
pls1 (acet-ent-geomextents pl)
pmin (list (* (1- (fix (/ (caar pls1) k1))) k1) (* (1- (fix (/ (cadar pls1) k1))) k1))
pmax (list (* (1+ (fix (/ (caadr pls1) k1))) k1) (* (1+ (fix (/ (cadadr pls1) k1))) k1))
)
;;;;;;Tao danh sach diem grid
(setq plst (list pmin)
sc 1)
(while (<= (+ (car pmin) (* sc k1)) (car pmax))
(setq p (list (+ (car pmin) (* sc k1)) (cadr pmin))
plst (append plst (list p))
sc (1+ sc)
)
)
(foreach p plst
(setq sh 1)
(while (<= (+ (cadr p) (* sh k1)) (cadr pmax))
(setq p1 (list (car p) (+ (cadr p) (* sh k1)))
plst (append plst (list p1))
sh (1+ sh)
)
)
)
plst
;;;;;;;;;;; Tao grid
(setq el (entlast)
ss1 (ssadd))
(foreach p plst
(xy p)
)
;;;; Loc grid
(while (setq el (entnext el))
(setq ss1 (ssadd el ss1))
)
(setq ssl1 (acet-ss-to-list ss1))
(setq ppl (list)
par 0
pob (vlax-ename->vla-object pl) )
(while (<= par (vlax-curve-getendparam pob))
(setq pa (vlax-curve-getpointatparam pob par)
ppl (append ppl (list pa))
par (+ par 0.1)
)
)
(setq ssl2 (acet-ss-to-list (ssget "cp" ppl )))
(foreach x ssl1
(if (not (member x ssl2))
(entdel x)
)
)


(setvar "osmode" oldos)
(command "undo" "e")
(Reinit)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;CT chich toa do tren ban do
;;;
(Defun Init()
(setvar "BLIPMODE" 0)
(setvar "CMDECHO" 0)
(setvar "LUPREC" 0)
(setq stl "standard")
(setq k (getint "\n nhap ty le ban do: ") k1 (/ k 10) ) (setq scale k)
(setq hi (* 0.002 scale))
(setq wi 0.9)
)
(Defun Reinit()
(setvar "BLIPMODE" 1)
(setvar "CMDECHO" 1)
(setvar "LUPREC" 4)
(princ)
)
(Defun XY( pt / x y xx yy ptx pty)


(setq y (car pt))
(setq x (cadr pt))
(command "_Line"
(list (- y (* 0.0025 scale)) x 0.0)
(list (+ y (* 0.012 scale)) x 0.0) ""
)
(command "_Line"
(list y (- x (* 0.0025 scale)) 0.0)
(list y (+ x (* 0.0025 scale)) 0.0) ""
)
(setq xx (rtos x 2))
(setq yy (rtos y 2))
(setq pt y)
(setq y x)
(setq x pt)
(setq ptx (list (+ x (* 0.001 scale)) (- y (* 0.0025 scale)) 0.0))
(setq pty (list (+ x (* 0.0025 scale)) (+ y (* 0.001 scale)) 0.0))
(Maketext ptx 0 xx)
(Maketext pty 90 yy)

)
(Defun Maketext( diem ang string / etd)
(setq edt (list (cons 0 "text")
(cons 8 "GhichuTD")
(cons 62 5)
(cons 10 diem)
(cons 1 string)
(cons 7 stl)
(cons 40 hi)
(cons 41 wi)
(cons 50 (/ (* ang PI) 180.0))
)
)
(entmake edt)
)


  • 1

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#10 Hai_YenLang

Hai_YenLang

    biết lệnh explore

  • Members
  • PipPipPipPipPipPip
  • 473 Bài viết
Điểm đánh giá: 149 (tàm tạm)

Đã gửi 16 April 2012 - 06:42 PM

1- LWPOLYLINE là hình được vẽ bởi lệnh : Pline (không có lệnh Polyline)
2- POLYLINE là hình được vẽ bởi lệnh : 3dpoly (không có lệnh 3dpolyline)

Cảm ơn bác, em đã nhầm lẫn tên lệnh với tên biểu tượng của lệnh.
Dòng command chỉ nhận lệnh Pline và 3dpoly không nhận Polyline và 3D Polyline

Hình đã gửi
  • 0
Đức hạnh lớn nhất mà bên cạnh đó, mọi đức hạnh khác đều mờ nhạt đi, đó là không làm hại ai và tùy sức mà giúp đỡ mọi người "
Người cảnh sát điều tra hình sự giỏi là người biết được tất cả những hành vi thủ đoạn trộm cắp của bọn trộm cắp, nhưng lại dốt ăn cắp ăn trộm ...

#11 Tri

Tri

    biết vẽ circle

  • Members
  • PipPip
  • 31 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 16 April 2012 - 08:29 PM

Nếu có lỗi thì bạn thông báo cho mọi người để cả nhà cùng chữa hỏa. để nhà nước khỏi mất tiền để xây cho anh em ta căn biệt thự bằng đá phiến.
Nhân tiện cho mình hỏi luôn. Lisp đang chỉ thực hiện khi là LWPOLYLINE giờ muốn nó thực hiện luôn với POLYLINE thì làm thế nào.
VD lisp này của Mr. PhamThanhBinh. với POLYLINE thì ko thực hiện được


;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=63126&pid=195881&st=0&#entry195881

(defun c:gcoor (/ oldos k k1 p pl pls1 pmin pmax plst sc sh p1el ss1 ssl1 ssl2)
(Init)
(vl-load-com)
(command "undo" "be")
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
;;; Ve duong bao
;;;(command "pline")
;;;(While (setq p (getpoint "\n chon lan luot cac dinh cua duong bao"))
;;; (command p)
;;;)
;;;(command "c")
(setq pl (car (entsel "\n Pick chon duong bao " ))
pls1 (acet-ent-geomextents pl)
pmin (list (* (1- (fix (/ (caar pls1) k1))) k1) (* (1- (fix (/ (cadar pls1) k1))) k1))
pmax (list (* (1+ (fix (/ (caadr pls1) k1))) k1) (* (1+ (fix (/ (cadadr pls1) k1))) k1))
)
;;;;;;Tao danh sach diem grid
(setq plst (list pmin)
sc 1)
(while (<= (+ (car pmin) (* sc k1)) (car pmax))
(setq p (list (+ (car pmin) (* sc k1)) (cadr pmin))
plst (append plst (list p))
sc (1+ sc)
)
)
(foreach p plst
(setq sh 1)
(while (<= (+ (cadr p) (* sh k1)) (cadr pmax))
(setq p1 (list (car p) (+ (cadr p) (* sh k1)))
plst (append plst (list p1))
sh (1+ sh)
)
)
)
plst
;;;;;;;;;;; Tao grid
(setq el (entlast)
ss1 (ssadd))
(foreach p plst
(xy p)
)
;;;; Loc grid
(while (setq el (entnext el))
(setq ss1 (ssadd el ss1))
)
(setq ssl1 (acet-ss-to-list ss1))
(setq ppl (list)
par 0
pob (vlax-ename->vla-object pl) )
(while (<= par (vlax-curve-getendparam pob))
(setq pa (vlax-curve-getpointatparam pob par)
ppl (append ppl (list pa))
par (+ par 0.1)
)
)
(setq ssl2 (acet-ss-to-list (ssget "cp" ppl )))
(foreach x ssl1
(if (not (member x ssl2))
(entdel x)
)
)


(setvar "osmode" oldos)
(command "undo" "e")
(Reinit)
)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;CT chich toa do tren ban do
;;;
(Defun Init()
(setvar "BLIPMODE" 0)
(setvar "CMDECHO" 0)
(setvar "LUPREC" 0)
(setq stl "standard")
(setq k (getint "\n nhap ty le ban do: ") k1 (/ k 10) ) (setq scale k)
(setq hi (* 0.002 scale))
(setq wi 0.9)
)
(Defun Reinit()
(setvar "BLIPMODE" 1)
(setvar "CMDECHO" 1)
(setvar "LUPREC" 4)
(princ)
)
(Defun XY( pt / x y xx yy ptx pty)


(setq y (car pt))
(setq x (cadr pt))
(command "_Line"
(list (- y (* 0.0025 scale)) x 0.0)
(list (+ y (* 0.012 scale)) x 0.0) ""
)
(command "_Line"
(list y (- x (* 0.0025 scale)) 0.0)
(list y (+ x (* 0.0025 scale)) 0.0) ""
)
(setq xx (rtos x 2))
(setq yy (rtos y 2))
(setq pt y)
(setq y x)
(setq x pt)
(setq ptx (list (+ x (* 0.001 scale)) (- y (* 0.0025 scale)) 0.0))
(setq pty (list (+ x (* 0.0025 scale)) (+ y (* 0.001 scale)) 0.0))
(Maketext ptx 0 xx)
(Maketext pty 90 yy)

)
(Defun Maketext( diem ang string / etd)
(setq edt (list (cons 0 "text")
(cons 8 "GhichuTD")
(cons 62 5)
(cons 10 diem)
(cons 1 string)
(cons 7 stl)
(cons 40 hi)
(cons 41 wi)
(cons 50 (/ (* ang PI) 180.0))
)
)
(entmake edt)
)

Bạn có biết viết Lisp không?
Nếu bạn biết thì bạn có thể sử dụng lệnh Convert (command "Convert"........) để chuyển Polyline thành LWPolyline thì lúc đó chạy sẽ không bị lỗi nữa
  • 0

#12 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 16 April 2012 - 08:43 PM

Thank! Viết lsp thì mình mù tịt luôn. có đọc các bài hướng dẫn viết nhưng cứ như vịt nghe sấm à. mình chỉ biết sử dụng thôi.
  • 0

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html