Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
thanhhoa.36

[Yêu cầu] Lisp xuất toạ độ các đỉnh của đường Line hoặc Plyline

Các bài được khuyến nghị

Em đi làm nhiều khi gặp trường hợp phải dùng tới và quản lý các toạ độ của các đối tượng như Line hoặc Polyline, em đã đọc và thầy rất nhiều Lisp hay nhưng chưa thấy Lisp nào viết xuất toạ độ của các đỉnh Line hoặc Polyline kèm theo tên điểm của các đỉnh Line hoặc Plyline đó. Em chưa viết Lisp bao giờ rất mong các bác có thể viết dùm em cái Lisp để sử lý tình huống này. Em xin cảm ơn !

 

Vd em có bản vẽ như sau:

http://www.cadviet.com/upfiles/2/drawing1_30.dwg

 

Em muốn có một file kết quả dạng (.TXT) nằm cùng thư mục chứa bản vẽ đó

File (.TXT) có dạng như sau:

http://www.cadviet.com/upfiles/2/kq.txt

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Em đi làm nhiều khi gặp trường hợp phải dùng tới và quản lý các toạ độ của các đối tượng như Line hoặc Polyline, em đã đọc và thầy rất nhiều Lisp hay nhưng chưa thấy Lisp nào viết xuất toạ độ của các đỉnh Line hoặc Polyline kèm theo tên điểm của các đỉnh Line hoặc Plyline đó. Em chưa viết Lisp bao giờ rất mong các bác có thể viết dùm em cái Lisp để sử lý tình huống này. Em xin cảm ơn !

 

Vd em có bản vẽ như sau:

http://www.cadviet.com/upfiles/2/drawing1_30.dwg

 

Em muốn có một file kết quả dạng (.TXT) nằm cùng thư mục chứa bản vẽ đó

File (.TXT) có dạng như sau:

http://www.cadviet.com/upfiles/2/kq.txt

bạn hãy sử dụng chức năng search của diễn đàn, từ khoá chính là tiêu đề bài viết của bạn.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
bạn hãy sử dụng chức năng search của diễn đàn, từ khoá chính là tiêu đề bài viết của bạn.

 

 

Em đã tìm hiểu dồi nhưng các Lisp đó vẫn chưa như em mong muốn, Bác Nguyen Hoanh có thể giúp em được không ? em xin cảm ơn bác nhé:

 

Ý của em là :

 

mỗi đoạn Line hoặc PlyLine có trên bản vẽ có chứa tên điểm do mình đặt là 1,2,3 hoặc A, B, C .... Lisp phải đọc và ghi vào file. txt tên điểm tại đỉnh các Line hoặc Plyline đó là 1,2,3 hoặc A,B,C... và toạ độ các đỉnh Line hoặc Plyline đó.

 

có thể toạ độ ten diem 1,2,3 hoặc A,B,C .... trùng hoặc khác với toạ độ các đỉnh Line hoặc Plyline, nhưng em cần toạ độ của các đỉnh Line hoặc Plyline đó thôi.

 

 

Bác có thể xem File gửi kèm của em thì bác sẽ hiểu rõ ý em nói.

 

Chúc bác luôn sức khoẻ !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn muốn toạ độ xuất sang TXT và cách cột cách nhau bởi Tab để bạn có thể copy sử lý trong EXECEL, vậy bạn chỉ cần tìm hiểu phần xuất sang TXT và lệnh xuất toạ độ ra bản vẽ trên CADVIET. Bạn search (defun c:td trên diễn đàn là được mà.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn luu ý là Polyline thì không gắn tên đỉnh cho bạn mà nó là một đối tượng khác. Mình kiếm được 1 cái xuất ra .txt cho bạn về tọa độ của các đỉnh Polyline đây. Còn yêu cầu có thêm tên đỉnh thì bạn nhờ các cao thủ xem thế nào.

http://www.cadviet.com/upfiles/3/doc_toa_do_pl.lsp

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn luu ý là Polyline thì không gắn tên đỉnh cho bạn mà nó là một đối tượng khác. Mình kiếm được 1 cái xuất ra .txt cho bạn về tọa độ của các đỉnh Polyline đây. Còn yêu cầu có thêm tên đỉnh thì bạn nhờ các cao thủ xem thế nào.

http://www.cadviet.com/upfiles/3/doc_toa_do_pl.lsp

Để đọc toạ độ của pline thì không còn là vấn đề nan giải, nhưng nhận diện tên đỉnh của nó thì đúng là khó thật. Nếu lấy tiêu chí là text gần đỉnh nhất thì cũng hơi chủ quan, nhưng mà ngoài cái đó ra, em không nghĩ ra một thuật toán nào khác :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn luu ý là Polyline thì không gắn tên đỉnh cho bạn mà nó là một đối tượng khác. Mình kiếm được 1 cái xuất ra .txt cho bạn về tọa độ của các đỉnh Polyline đây. Còn yêu cầu có thêm tên đỉnh thì bạn nhờ các cao thủ xem thế nào.

http://www.cadviet.com/upfiles/3/doc_toa_do_pl.lsp

Bác ponaparte2003 à, em dùng lisp của Bác dùng lệnh Gh rồi sao lại ko được nhỉ? nó báo là Command: GH

Select objects: 0 found

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Để đọc toạ độ của pline thì không còn là vấn đề nan giải, nhưng nhận diện tên đỉnh của nó thì đúng là khó thật. Nếu lấy tiêu chí là text gần đỉnh nhất thì cũng hơi chủ quan, nhưng mà ngoài cái đó ra, em không nghĩ ra một thuật toán nào khác :)

 

Tôi cũng nghĩ như vậy, tìm text gần đỉnh nhất là được rồi.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bác ponaparte2003 à, em dùng lisp của Bác dùng lệnh Gh rồi sao lại ko được nhỉ? nó báo là Command: GH

Select objects: 0 found

Bạn lưu ý là đối tượng được chọn là Lwpolyline chứ không nhận Polyline và Line đâu bạn nhé! bạn check lại xem thế nào! Nếu đối tượng của bạn toàn là Polyline thì bạn mở Lisp đó ra sửa cú pháp .lwpolyline thành .polyline là được

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bằng kim chỉ nam là text gần đỉnh của pline nhất, em đã viết một đoạn lisp sau, coi như là một hàm, nó dùng để xuất ra tên đỉnh có toạ độ tương ứng:

(((104.213 47.8395 0.0) "E") ((105.109 58.8957 0.0) "D") ((97.0241 66.4898 0.0) 
"C") ((86.0457 64.9032 0.0) "B") ((80.4412 55.3308 0.0) "A") ((84.4309 44.9807 
0.0) "G") ((95.0104 41.6467 0.0) "F"))

, trong đó, ví dụ: (104.213 47.8395 0.0) là đỉnh có tên tương ứng là "E".

1-17.jpg

Lisp:

;; Thuat toan (by pdle)
;; 1.Chon polyline va cac text toa do
;; 2.Lap danh sach toa do dinh polyline
;; 3.Lap danh sach cac goc cua text
;; 4.Kiem tra lan luot tuong dinh, xem text nao gan no nhat, se gan la ten cua no
;; 5.Cho ra danh sach ten cac dinh polyline
(defun tdpl (/ ent ss1 lsp dsp ptl i resl )
(prompt "\nChon polyline va ten cac dinh cua no: ")
(setq ss1 (ssadd))
(foreach ent  (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget))))
	(if (wcmatch (acet-dxf 0 (entget ent)) "*POLYLINE") (progn
		(setq dsp (acet-geom-vertex-list ent) lsp (vl-list-length dsp))
		(if (= 1 (acet-dxf 70 (entget ent))) (setq lsp (- lsp 1)))
	))
	(if (wcmatch (acet-dxf 0 (entget ent)) "*TEXT") (ssadd ent ss1))
)
(if (/= lsp (sslength ss1) ) (alert (strcat "\n So ten ko bang so dinh cua pline: [so dinh]= " (rtos lsp) "; [so ten]= " (rtos (sslength ss1)) ))
(progn
	(setq i 0 resl nil)
	(repeat lsp 
		(setq ptl (nth i dsp) disl nil)
		(foreach ent (mapcar 'cadr (ssnamex ss1))
			(setq 
				ptt (acet-dxf 10 (entget ent))
				disl (append disl (list (distance ptt ptl )))
			)
		)
		(setq 
			k (vl-position (apply 'min disl) disl)
			resl (append resl (list (list  (nth i dsp) (acet-dxf 1 (entget (ssname ss1 k))))))
			i (+ i 1)
		)
		(ssdel (ssname ss1 k) ss1)
	)
	)
)
resl
)

 

Sau đây là những ưu và nhược điểm của đoạn lisp này:

Ưu điểm:

1. Xét được cả 2 trường hợp polyline kín và hở

2. Kết quả xuất ra dưới dạng danh sách, dễ dàng phục vụ cho các mục đích khác

Khuyết điểm:

1. Chỉ làm việc với một polyline đơn lẻ

2. Chưa làm việc được với LINE

Phương án đề xuất:

1. Để làm việc được với nhiều pline, chắc chắn sẽ làm cho chương trình trở nên phức tạp hơn trong việc phân nhóm

2. Đối với line, một là có thể convert chúng thành pline, hoặc lấy code dxf 10 và 11 của từng đoạn thẳng, sau đó sẽ thu được một bộ điểm, đem so sánh 2 điểm nào trùng nhau, lập thành một. Cuối cùng ta có danh sách các đỉnh của đường tạo bởi cái line đó

 

Mong mọi người ghóp ý!

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình có 1 chút góp ý sau :

- Đưa tập *Text + * Pline ra làm đối số của hàm, như vậy mới đúng ý nghĩa là 1 hàm. Khi đã chuyển ra đối số, code hàm sẽ gọn hơn, và có thể làm vòng lặp để làm với nhiều nhóm

- Kiểm tra Pline kín hoặc hở. Trong trường hợp Pline kín thường sẽ ít ai ghi 2 Text cho 1 tọa độ trùng đầu + cuối đó => hàm không chạy do Text ít hơn đỉnh.Mình cũng thấy bạn lường trường hợp này rồi, tuy nhiên mã 70 sẽ = 1 khi vẽ Pline người ta "closed", chứ bắt điểm cuối trùng điểm đầu thì mặc dù dxf 70 = 0, bản chất nó vẫn là kín ^^

=> cũng không nhất thiết phải số Text = số đỉnh. Có thể đổi việc chọn nhóm text = quy định khoảng cách nhỏ nhất tìm text trong đối số. => trong list tên đỉnh có thể là Nil

- Đảo lại list kết quả :)

- Đối với Line, hãy để việc quyết định cho người sử dụng thì hay hơn và cũng đơn giản hơn :)

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình có 1 chút góp ý sau :

- Đưa tập *Text + * Pline ra làm đối số của hàm, như vậy mới đúng ý nghĩa là 1 hàm. Khi đã chuyển ra đối số, code hàm sẽ gọn hơn, và có thể làm vòng lặp để làm với nhiều nhóm

Đồng ý với ý kiến này của anh ketxu!

- Kiểm tra Pline kín hoặc hở. Trong trường hợp Pline kín thường sẽ ít ai ghi 2 Text cho 1 tọa độ trùng đầu + cuối đó => hàm không chạy do Text ít hơn đỉnh.Mình cũng thấy bạn lường trường hợp này rồi, tuy nhiên mã 70 sẽ = 1 khi vẽ Pline người ta "closed", chứ bắt điểm cuối trùng điểm đầu thì mặc dù dxf 70 = 0, bản chất nó vẫn là kín ^^

Như vậy ở đây ta sẽ làm việc trên danh sách các đỉnh của pline. Cụ thể là, khi vòng lặp chạy qua lần lượt các đỉnh của pline, nó sẽ kiểm tra là đỉnh đang xét có trùng với đỉnh nào trước nó hay không, nếu trùng rồi, thì bỏ qua, nếu chưa trùng ta sẽ tìm tên đỉnh đó. Làm như thế này thì sẽ giải quyết được trường hợp polyline kín, hoặc tự cắt tại đỉnh của nó.

=> cũng không nhất thiết phải số Text = số đỉnh. Có thể đổi việc chọn nhóm text = quy định khoảng cách nhỏ nhất tìm text trong đối số. => trong list tên đỉnh có thể là Nil

Đối với cái này thì nếu số đỉnh lớn hơn số lượng tên, nghĩa là cần phải cho người dùng nhập vào khoảng cách lớn nhất a từ tên đỉnh tới đỉnh. Đỉnh nào nằm cách các text tên đỉnh một khoảng lớn hơn a thì sẽ có tên là UN (Unknown).

- Đảo lại list kết quả :)

Cái này thì em không hiểu lắm :D

- Đối với Line, hãy để việc quyết định cho người sử dụng thì hay hơn và cũng đơn giản hơn :)

Em nghĩ sẽ tạo ra một danh sách chứa tất cả các đỉnh của các lines được nhập vào, sau đó xử lý với danh sách này. Các này cũng có thể được áp dụng để chọn nhiều polyline cùng một lúc, nhưng làm như thế này, e là sẽ loạn vì khi đó sẽ không biết là đỉnh nào của polyline nào. Theo em nên thống nhất, chỉ có 1 pline được nhập vào cho một lần xử lý

 

Ngoài ra, em còn mắc một số vấn đề như sau:

 

1. Hàm ssget, chúng ta có thể khống chế loại đối tượng được chọn , dạng như (ssget '((0 . "POLYLINE"))) là dùng để chỉ chọn đối tượng có tên là POLYLINE. Nhưng giả sử ta muốn giới hạn một cách rộng hơn, kiểu như đối tượng có thể la POLYLINE hoặc LWPOLYLINE, hay là có thể là "TEXT" hoặc "MTEXT", nghĩa là giới hạn đối tượng chọn là 2 hoặc một số kiểu đối tượng nào đó ?

 

2. cụm (acet-ss-to-list) mà anh ketxu từng nêu, nó làm cái gì đấy ạ?

 

Mong mọi người cho ý kiến!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

- À, vì list kết quả ngược lại so với thứ tự đỉnh

- Đoạn nhỏ nhất, lớn nhất mình nói bị ngược, đúng là khoảng cách lớn nhất. Chỉ xét cái nào nhỏ hơn khoảng giới hạn, và nếu có nhiều text trong đó, sẽ lấy cái gần nhất. Điều này làm phức tạp vấn đề hơn 1 chút, nếu có thời gian thì sửa, không thì thôi ^^

- 1.Filter list có thể ở dạng

(setq flt '((-4 . "<OR")

(0 . "TEXT")

(0 . "PLINE")

(0 . "MTEXT")

(-4 . "<AND")

(0 . "INSERT")

(66 . 1)

(-4 . "AND>")

(-4 . "OR>")

)

)

Các toán tử And, Or có lẽ không cần giải thích dài nữa.

- 2. acet-ss-to-list : chuyển tập chọn ss sang list các ename. Cú pháp (acet-ss-to-list ss), hàm trả về list các ename trong tập chọn

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

- À, vì list kết quả ngược lại so với thứ tự đỉnh

Đúng rồi anh ạ, giờ em mới để ý :D

- Đoạn nhỏ nhất, lớn nhất mình nói bị ngược, đúng là khoảng cách lớn nhất. Chỉ xét cái nào nhỏ hơn khoảng giới hạn, và nếu có nhiều text trong đó, sẽ lấy cái gần nhất. Điều này làm phức tạp vấn đề hơn 1 chút, nếu có thời gian thì sửa, không thì thôi ^^

Em cũng có ý như thế này anh ạ

- 1.Filter list có thể ở dạng

Ở đây mã dxf -4 là dùng cho các toán tử logic, and và or trong hàm ssget đúng không ạ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Ở đây mã dxf -4 là dùng cho các toán tử logic, and và or trong hàm ssget đúng không ạ?

Đúng rồi bạn ạ. NOT nữa. Mỗi lần <> sẽ tương đương 1 cặp dấu điều kiện

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Em đã sửa lại cái lisp trên như sau:

 

Các vấn đề đã giải quyết được:

 

1. Đã xử lý được với các đỉnh của lines

2. Không còn vướng mắc ở các đỉnh của polyline trùng nhau (polyline đi qua 1 điểm 2 lần) vì đã có phương loại các đỉnh bị lặp

3. Cho phép chọn một lúc nhiều line và polyline (co như 1 tổ hợp đường)

4. Ghi vào file .txt dưới dạng:

1-21.jpg

 

Các vấn đề còn tồn tại:

 

1. Khi ghi dữ liệu vào file .txt không hiểu tại sao TAB sau Y không hoạt động, nghĩa là khoảng cách từ tọa độ Y đến tọa độ Z không bằng 1TAB. Ngoài ra ở các điểm C và D, tọa độ X và Y cũng không cách nhau đúng 1 TAB?

 

2. Chưa giải quyết cho trường hợp số đỉnh nhiều hơn tên đỉnh

 

Sau đây là lisp:

;;; by pdle , from cadviet.com
;;; Nhap cac doi tuong line va polyline
(defun ImpL (/ ent vet)
(Prompt "\nNhap lines va polylines: ")
(setq lisvt nil)
(foreach ent(acet-ss-to-list(ssget'((-4 . "<OR") (0 . "LINE") (0 . "LWPOLYLINE") (0 . "POLYLINE")(-4 . "OR>") )))
	(if (= (acet-dxf 0 (entget ent)) "LINE" )(setq lisvt (vl-list*  (acet-dxf 11 (entget ent)) (acet-dxf 10 (entget ent)) lisvt)))
	(if (wcmatch (acet-dxf 0 (entget ent)) "*POLYLINE") (foreach vet (acet-geom-vertex-list ent) (setq lisvt (vl-list*  vet lisvt))))
)
(setq lisvt (Deldup (reverse lisvt)))
lisvt
)
;;; Loai nhung dinh trung nhau
(defun Deldup (lis)
(if lis (cons (car lis) (Deldup (vl-remove (car lis) (cdr lis)))))
)
;;; Nhap ten cua cac dinh
(defun ImpT (/ ent)
(prompt "\nNhap ten dinh: ")
(setq ssTex (ssadd))
(foreach ent(acet-ss-to-list (ssget'((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") (-4 . "OR>") )))
	(if (wcmatch (acet-dxf 0 (entget ent)) "*TEXT") (ssadd ent ssTex))
)
ssTex
)
;;; Trong truong hop so dinh bang so ten dinh
(defun Fil1 ( liv ssTe / i ptl resl k disl ptt)
(setq i 0 resl nil)
	(repeat (length liv) 
		(setq ptl (nth i liv) disl nil)
		(foreach ent (mapcar 'cadr (ssnamex ssTe))
			(setq 
				ptt (acet-dxf 10 (entget ent))
				disl (append disl (list (distance ptt ptl )))
			)
		)
		(setq 
			k (vl-position (apply 'min disl) disl)
			resl (append resl (list (list  (nth i liv) (acet-dxf 1 (entget (ssname ssTe k))))))
			i (+ i 1)
		)
		(ssdel (ssname ssTe k) ssTe)
	)
	resl
)
;;; Ghi vao file
(defun reco	(lispo / fn fid i sdt ent pte x y z)
(setq
	fn	(getfiled "Ten tep de xuat toa do x y z"  (getvar "dwgprefix") "txt" 1 )
	i	0
	sdt	(length lispo)     
	fid	(open fn "w")
)
(princ (strcat "Ten diem " "\t" " X " "\t" " Y " "\t" " Z " "\n") fid)
(repeat sdt
   (setq ent (nth i lispo )
	i   (1+ i)
	pte   (cadr ent)
	x   (car (car ent))
	y   (cadr (car ent))
	z   (caddr (car ent))
   )
   (princ (strcat pte "\t" (rtos x) "\t" (rtos y) "\t" (rtos z) "\n") fid )
)
(close fid)
(princ)
)
;;; Lenh chinh
(defun c:tdpl ()
(setq lisVERTEX (ImpL) ssTEXT (ImpT))
(if (= (length lisVERTEX) (sslength ssTEXT)) (progn
	(setq result (Fil1 lisVERTEX ssTEXT))
	(reco result))
	(alert (strcat "So dinh = " (rtos (length lisVERTEX) 2 0) " ; So ten dinh = " (rtos (sslength ssTEXT) 2 0 ) ". So dinh va so ten dinh phai bang nhau!"))
	)
)

 

Mong mọi người cho ý kiến!

 

Đây là file kết quả của các đường lines trong file cad mà chủ topic đã upload lên:

http://www.cadviet.com/upfiles/3/result.txt

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình thấy vẫn bình thường mà nhỉ, đủ 1 tab mà ^^

 

 

(defun ImpL (/ ent vet)
;(Prompt "\nNhap lines va polylines: ") ;Nen cho dong nay ra ngoai ham
;(setq lisvt nil)  ;Bo dong nay
(foreach ent (mapcar 'entget (acet-ss-to-list(ssget'( (0 . "LINE,*POLYLINE"))))) ;rut lai nhu nay
	(cond ;Dung cond thay the if se mach lac hon
		((= (cdadr ent) "LINE" )(setq lisvt (vl-list*  (acet-dxf 11 ent) (acet-dxf 10 ent) lisvt)))
		(T  (foreach vet (acet-geom-vertex-list (acet-dxf -1 ent)) (setq lisvt (vl-list*  vet lisvt))))
	)
)
(setq lisvt (Deldup (reverse lisvt)))
;lisvt => Bo dong nay, vi da co setq ngay tren no
)

;;; Nhap ten cua cac dinh
(defun ImpT (/ ent)	
(ssget '((0 . "*TEXT"))) ; =>Ca ham tuong duong voi 1 dong => khong can ham nay	
)
.....

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Mình thấy vẫn bình thường mà nhỉ, đủ 1 tab mà ^^

Anh ketxu xem cái file kết quả em upload lên chưa ạ? Chỗ của điểm C và D, tự nhiên Y bị hút về phía X, hay tại ở tọa độ X ở đấy ít chữ số hơn những điểm khác ạ?

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Anh ketxu xem thử cái này xem: http://www.cadviet.com/upfiles/3/example.rar

File kết quả: Example1.txt là em đã định dạng dữ liệu xuất ra có 2 số ở phần thập phân (rtos x 2 2), căn TAB chuẩn

File Example2.txt là để nguyên (rtos x), thì căn vẫn bị lệch ở điểm C và D!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chắc chắn là do cách hiển thị ở máy pdle rồi ^^

Example.jpg

Cả hai cái vẫn bình thường nè ^^

P/S : pdle sửa lại code cho gọn nhé, mình RL bài trước r

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chắc chắn là do cách hiển thị ở máy pdle rồi ^^

P/S : pdle sửa lại code cho gọn nhé, mình RL bài trước r

Vâng anh, em có đọc rồi.

Nhưng tại mấy hôm nay sắp phải trả bài cho thầy, nên em đang để lại đấy tí đã. Hôm sau có thời gian, em sẽ làm gọn lisp đó lại một lần nữa.

Cảm ơn anh ketxu một lần nữa!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Chắc chắn là do cách hiển thị ở máy pdle rồi ^^

Example.jpg

Cả hai cái vẫn bình thường nè ^^

P/S : pdle sửa lại code cho gọn nhé, mình RL bài trước r

Phần hiển thị ko giống nhau là do font chữ trong notepad.

Font có loại 1 char sẽ chiếm 1 số pixel cố định, có loại chỉ chiếm vừa đủ để thể hiện nhưng loại nào thì mình ko nhớ. pdle dùng font compact cho notepad thử xem hay format font giống ketxu thử.

Goodluck!

 

 

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

các bác cho em hỏi, trong trường hợp polyline mình tạo ra bằng cách pick điểm rồi dùng lệnh BOUNDARY để tạo, chứ chưa có sẵn để select, thì làm thế nào ah??? lính mới, mong các bác chỉ bảo!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

Đăng nhập để thực hiện theo  

×