Đến nội dung


Hình ảnh
- - - - -

Lisp điền cao độ bị lỗi!!!


  • Please log in to reply
68 replies to this topic

#41 duyngoc

duyngoc

    biết vẽ pline

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

Đã gửi 08 January 2013 - 11:22 AM

Hề hề, Bác quá lời rồi, chẳng qua chú muốn cho lisp hoàn thiện hơn thôi. Dẫu sao cũng cảm ơn Bác nhiều!
  • 0

#42 Dzzzung

Dzzzung

    biết zoom

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

Đã gửi 10 February 2015 - 04:47 PM

Chào các bác. Em xin mạn phép đào mộ topic một tý, lập topic mới với vấn đề đơn giản sau đây thì dễ bay vô thùng rác lắm.

Trước tiên xin cảm ơn bác Thaistreetz, em làm bên giao thông, đã sử dụng lisp mà bác đã hoàn thiện ở post #2, rất tuyệt vời, ưu điểm hơn hẳn các lisp ghi cao độ khác do không cần block đi kèm, xuất bản vẽ đẹp.

Tiếp nữa rất mong a Thaistreetz và các cao nhân trên diễn đàn giúp em giải quyết thêm một tý (bớt 1 tý thì đúng hơn). Đó là điền luôn cái cao độ kết quả vào dtext có sẵn trên cắt ngang. Cụ thể như sau:

- Chọn điểm tim trắc ngang (điểm tim đường)

- Chọn cao độ của tim đường (pick chuột vào text cao độ của tim)

- Chọn điểm cần tra cao độ.

- Chọn  thay thế cao độ vào dtext có sẵn trên bản vẽ (pick chuột vào text cao độ của điểm cần tra cao độ)

Trường hợp của em giống với trường hợp của bác Namhai đã post và bị trôi ở post #3, tuy nhiên e đã lục trong topic cũng như forum chưa tìm được câu trả lời hợp lý nhất. Tạm thời em đang xuất cao độ theo lisp của bác Thaistreetz, rồi copy sang dtext trắc ngang. Cũng ok nhưng hơi dở. Mong các bác giúp đỡ.

 

Cắt ngang ví dụ:

http://www.cadviet.c...015_vi_du_1.dwg


  • 0

#43 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 11 February 2015 - 11:05 AM

- ngón này nhoc ko rành lắm, nhoc thử sữa lại theo ý bạn, bạn xem có đúng ko ^^, nhoc chỉ sợ lượt bớt nhiều quá làm sai kết quả ^^

(defun DXFcn (code elist) (cdr (assoc code elist)))
;============================================================
(prompt "\n[Cmd:CDX] - GHI CAO DO DIEM TREN TRAC NGANG by Thaistreetz - huuthais@yahoo.com\n")
;============================================================
(defun c:Cdx (/ DZ pt  ptside ang OT sc1 scale tx ty tx1 ty1 y H0) ; 
(command "Undo" "BEGIN")
(if (= tx nil) 
	(setq tx 1))
(if (= ty nil) 
	(setq ty 1))
	(setq 		  tx1 (getreal (strcat "\nTy le theo phuong X <1/"(rtos tx 2 2)">: 1/")) 
		  ty1 (getreal (strcat "\nTy le theo phuong Y <1/"(rtos ty 2 2)">: 1/"))
	)
(if tx1 (setq tx tx1))
(if ty1 (setq ty ty1))
(setq ATLAST (getvar "Attreq"))
(setq CMLAST (getvar "cmdecho"))
(setq OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(setvar "cmdecho" 0)
(command "osmode" 99)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien") "end")) (print)
(setq x0 (car pt0) y0 (cadr pt0))
;(setvar 'osmode 0)
(setq ed (entget (car (entsel "\nChon cao do tim: "))))
(setq H0 (read (DXFcn 1 ed))) 
(While (and (setq pt (getpoint "\nChon diem chuan : ")) (setq doitt (car (entsel "\nChon text de chinh sua: "))))
(Progn
	(setq y (- (cadr pt) y0 (- H0)))
(cond 
	((> y 0) (entmod (subst (cons 1 (strcat "+" (rtos (* y ty) 2 2))) (assoc 1 (entget doitt)) (entget doitt))))
	((< y 0) (entmod (subst (cons 1 (rtos (* y ty) 2 2)) (assoc 1 (entget doitt)) (entget doitt)))) 
	((= y 0) (entmod (subst (cons 1 "%%p0.00") (assoc 1 (entget doitt)) (entget doitt))))
)

);progn
);while 
(setvar "OSMODE" OSLAST)(setvar "ORTHOMODE" OT)(setvar "cmdecho" CMLAST)
(prompt "\n[GHI CAO DO TRAC NGANG] by Thaistreetz - huuthais@yahoo.com\n")
(command "Undo" "End")
(princ)
);end

  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#44 Dzzzung

Dzzzung

    biết zoom

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

Đã gửi 25 February 2015 - 09:06 AM

Năm mới chúc các bác mạnh khỏe, làm ăn phát đạt. Cảm ơn bác Nhoclangbat đã edit dùm em. Sau khi chạy thử có phát sinh một lỗi như sau: Khi bắt điểm tim và text cao độ chuẩn xong, đến bước bắt điểm cần nội suy cao độ thì lại mất toàn bộ chế độ bắt điểm. Nếu F3 và chọn lại cùng dùng được rồi nhưng thế rườm rà quá. Bác Nhoclangbat khi nào khai xuân chơi tết xong xuôi có thời gian sửa chỗ ấy giúp em với. Em cảm ơn nhiều


  • 0

#45 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 25 February 2015 - 10:23 AM

 

- bạn mún những bắt điểm nào hay toàn bộ ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#46 Dzzzung

Dzzzung

    biết zoom

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

Đã gửi 25 February 2015 - 03:03 PM

Thường thì trong osnap em chọn tất. Bác điều chỉnh giúp em chế độ bắt điểm không thay đổi so với trước khi dùng li sp là được


  • 0

#47 nhoclangbat

nhoclangbat

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1409 Bài viết
Điểm đánh giá: 379 (khá)

Đã gửi 25 February 2015 - 03:25 PM

- nhoc đã sữa lại ở trên ^^


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#48 Dzzzung

Dzzzung

    biết zoom

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

Đã gửi 27 February 2015 - 09:48 AM

Cảm ơn bác Nhoclangbat. Lisp trên như vậy đã giải quyết ngon lành những gì em cần. Chúc các bác những ngày làm việc hiệu quả!


  • 0

#49 nhaquehy

nhaquehy

    Chưa sử dụng CAD

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

Đã gửi 27 February 2015 - 01:01 PM

hj chào các cao thủ :D

Xem thêm ứng dụng android hay như: Tai Google Play , CH Play , Clean Master , Tai Facebook Lite , MoboMarket , download ch play


  • 0

#50 ngocdao tran

ngocdao tran

    biết zoom

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

Đã gửi 07 January 2016 - 11:13 AM

1/ (setq ed (entget (car (entsel "\nChon cao do tim: "))))

(setq cdd (atof (cdr(assoc 1 (entget(car(entsel "\n Pick chon Text cao do dau :")))))))

cho hỏi 2 câu lệnh này khác nhau như thế nào. không hiểu sao những lisp mình tải về xem thì đến bước chọn text cao độ ở câu lệnh 1 cho kết quả toàn bằng 0 hay trật lất còn câu 2 thì đúng. 

2/ file cdx.lsp mình tải về xài toàn cho kết quả bằng 0 . các bác chỉ dùm...


  • 0

#51 ngocdao tran

ngocdao tran

    biết zoom

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

Đã gửi 07 January 2016 - 11:17 AM

 

- ngón này nhoc ko rành lắm, nhoc thử sữa lại theo ý bạn, bạn xem có đúng ko ^^, nhoc chỉ sợ lượt bớt nhiều quá làm sai kết quả ^^

(defun DXFcn (code elist) (cdr (assoc code elist)))
;============================================================
(prompt "\n[Cmd:CDX] - GHI CAO DO DIEM TREN TRAC NGANG by Thaistreetz - huuthais@yahoo.com\n")
;============================================================
(defun c:Cdx (/ DZ pt  ptside ang OT sc1 scale tx ty tx1 ty1 y H0) ; 
(command "Undo" "BEGIN")
(if (= tx nil) 
	(setq tx 1))
(if (= ty nil) 
	(setq ty 1))
	(setq 		  tx1 (getreal (strcat "\nTy le theo phuong X <1/"(rtos tx 2 2)">: 1/")) 
		  ty1 (getreal (strcat "\nTy le theo phuong Y <1/"(rtos ty 2 2)">: 1/"))
	)
(if tx1 (setq tx tx1))
(if ty1 (setq ty ty1))
(setq ATLAST (getvar "Attreq"))
(setq CMLAST (getvar "cmdecho"))
(setq OSLAST (getvar "OSMODE"))
(setq DZ (getvar "DIMZIN"))
(setq OT (getvar "ORTHOMODE"))
(setvar "ORTHOMODE" 0)
(setvar "cmdecho" 0)
(command "osmode" 99)
(setq pt0 (osnap (getpoint "Diem tim TN tu nhien") "end")) (print)
(setq x0 (car pt0) y0 (cadr pt0))
;(setvar 'osmode 0)
(setq ed (entget (car (entsel "\nChon cao do tim: "))))
(setq H0 (read (DXFcn 1 ed))) 
(While (and (setq pt (getpoint "\nChon diem chuan : ")) (setq doitt (car (entsel "\nChon text de chinh sua: "))))
(Progn
	(setq y (- (cadr pt) y0 (- H0)))
(cond 
	((> y 0) (entmod (subst (cons 1 (strcat "+" (rtos (* y ty) 2 2))) (assoc 1 (entget doitt)) (entget doitt))))
	((< y 0) (entmod (subst (cons 1 (rtos (* y ty) 2 2)) (assoc 1 (entget doitt)) (entget doitt)))) 
	((= y 0) (entmod (subst (cons 1 "%%p0.00") (assoc 1 (entget doitt)) (entget doitt))))
)

);progn
);while 
(setvar "OSMODE" OSLAST)(setvar "ORTHOMODE" OT)(setvar "cmdecho" CMLAST)
(prompt "\n[GHI CAO DO TRAC NGANG] by Thaistreetz - huuthais@yahoo.com\n")
(command "Undo" "End")
(princ)
);end

1/ (setq ed (entget (car (entsel "\nChon cao do tim: "))))

      (setq cdd (atof (cdr(assoc 1 (entget(car(entsel "\n Pick chon Text cao do dau :")))))))

cho hỏi 2 câu lệnh này khác nhau như thế nào. không hiểu sao những lisp mình tải về xem thì đến bước chọn text cao độ ở câu lệnh 1 cho kết quả toàn bằng 0 hay trật lất còn câu 2 thì đúng. 

2/ file cdx.lsp mình tải về xài toàn cho kết quả bằng 0 . các bác chỉ dùm...


  • 0

#52 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 07 January 2016 - 04:49 PM

1/ (setq ed (entget (car (entsel "\nChon cao do tim: "))))

      (setq cdd (atof (cdr(assoc 1 (entget(car(entsel "\n Pick chon Text cao do dau :")))))))

cho hỏi 2 câu lệnh này khác nhau như thế nào. không hiểu sao những lisp mình tải về xem thì đến bước chọn text cao độ ở câu lệnh 1 cho kết quả toàn bằng 0 hay trật lất còn câu 2 thì đúng. 

2/ file cdx.lsp mình tải về xài toàn cho kết quả bằng 0 . các bác chỉ dùm...

Hề hề hề,

1/- (setq ed (entget (car (entsel "\n Chon cao do tim)))) trả về kết quả là một danh sách chứa các mã dxf của đối tượng text được chọn.

     (setq cdd (atof (cdr (assoc 1 (entget (car (entsel "\n Pick chon text cao do"))))))) trả về giá trị số của text cao độ được chọn

2/- Việc sử dụng 2 code này ở đâu và ra sao tùy vào ý định của người viết lisp hay người dùng lisp . Không thể thay thề cái nọ bằng cái kia được.

3/- bạn sử dụng lisp nào và với bản vẽ nào mà thấy không đúng thì phải gửi cả hai cái đó lên mới có thể tìm được lỗi. Hỏi như bạn là đánh đố mọi người vì họ chẳng biết bạn dùng lisp nào và với bản vẽ nào cả.

4/- Lisp không phải là công cụ vạn năng có thể dùng cho mọi bản vẽ bạn có mà nó chỉ có thể dùng với những bản vẽ thỏa mãn điều kiện sử dụng nó do người viết lisp xác định mà thôi. Muốn sử dụng tốt lisp thì người dùng phải có những kiến thức tối thiểu về lisp để có thể đọc và hiểu nội dung của nó và hiểu được nó dùng cho việc gì, trong môi trường bản vẽ nào bạn ạ.


  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#53 ngocdao tran

ngocdao tran

    biết zoom

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

Đã gửi 07 January 2016 - 09:31 PM

Hề hề hề,

1/- (setq ed (entget (car (entsel "\n Chon cao do tim)))) trả về kết quả là một danh sách chứa các mã dxf của đối tượng text được chọn.

     (setq cdd (atof (cdr (assoc 1 (entget (car (entsel "\n Pick chon text cao do"))))))) trả về giá trị số của text cao độ được chọn

2/- Việc sử dụng 2 code này ở đâu và ra sao tùy vào ý định của người viết lisp hay người dùng lisp . Không thể thay thề cái nọ bằng cái kia được.

3/- bạn sử dụng lisp nào và với bản vẽ nào mà thấy không đúng thì phải gửi cả hai cái đó lên mới có thể tìm được lỗi. Hỏi như bạn là đánh đố mọi người vì họ chẳng biết bạn dùng lisp nào và với bản vẽ nào cả.

4/- Lisp không phải là công cụ vạn năng có thể dùng cho mọi bản vẽ bạn có mà nó chỉ có thể dùng với những bản vẽ thỏa mãn điều kiện sử dụng nó do người viết lisp xác định mà thôi. Muốn sử dụng tốt lisp thì người dùng phải có những kiến thức tối thiểu về lisp để có thể đọc và hiểu nội dung của nó và hiểu được nó dùng cho việc gì, trong môi trường bản vẽ nào bạn.

 

Hề Hề..hiểu sơ sơ. để ngâm cứu tiếp. cảm ơn đã giải thích...


  • 0

#54 vtcd09b

vtcd09b

    Chưa sử dụng CAD

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

Đã gửi 27 February 2016 - 04:06 PM

lisp rất hay nhưng em nhờ các bác sửa lại cho text xuất ra ở dạng 3 chữ số sau dấu phẩy được không, cám ơn mọi người, e gà món này lắm


  • -1

#55 phuhvp

phuhvp

    biết vẽ line

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

Đã gửi 27 March 2016 - 11:32 AM

Hề hề hề,

1/- (setq ed (entget (car (entsel "\n Chon cao do tim)))) trả về kết quả là một danh sách chứa các mã dxf của đối tượng text được chọn.

     (setq cdd (atof (cdr (assoc 1 (entget (car (entsel "\n Pick chon text cao do"))))))) trả về giá trị số của text cao độ được chọn

2/- Việc sử dụng 2 code này ở đâu và ra sao tùy vào ý định của người viết lisp hay người dùng lisp . Không thể thay thề cái nọ bằng cái kia được.

3/- bạn sử dụng lisp nào và với bản vẽ nào mà thấy không đúng thì phải gửi cả hai cái đó lên mới có thể tìm được lỗi. Hỏi như bạn là đánh đố mọi người vì họ chẳng biết bạn dùng lisp nào và với bản vẽ nào cả.

4/- Lisp không phải là công cụ vạn năng có thể dùng cho mọi bản vẽ bạn có mà nó chỉ có thể dùng với những bản vẽ thỏa mãn điều kiện sử dụng nó do người viết lisp xác định mà thôi. Muốn sử dụng tốt lisp thì người dùng phải có những kiến thức tối thiểu về lisp để có thể đọc và hiểu nội dung của nó và hiểu được nó dùng cho việc gì, trong môi trường bản vẽ nào bạn ạ.

Mong mọi người giúp dùm, các bác cao thủ rãnh tay chém phát giúp em

Em muốn lấy giá trị khoảng cách cộng dồn và cao độ tuyệt đối của 1 đoạn Pline ( đường tự nhiên) và xuất ra scv

Em chỉ cần xuất ra file scv đơn giản như tệp kèm phía dướ này thôi ạ

Và mỗi lần mình làm lại thì scv sẽ làm mới, (thay thế giá trị đã ghi lần trước) hoặc có thể ghi thêm phía dưới (cái nào đơn giản hơn thì làm ạ)

Đơn giản các thao tác (các thông số cài đặt sẵn đc ko ạ)

 

Phương án :( em thấy cái lisp này gần giống chỉ cần sửa giá trị 1 tí thôi, nhưng em ko biết sửa mong các Bác chỉ giáo)

http://www.cadviet.c...50815_coorn.lsp

lisp này là lisp xuất tọa độ x y cho 1 đoạn PLine theo gốc tọa độ

Dùng lệnh qq và chọn 1 đường Pline nó sẽ ghi ra file scv mà ko cần hỏi lưu ( đúng ý em ko cần hỏi lưu cho đỡ công đoạn)

Nếu sửa lis[ này mình nên thêm bước:

 

1 - đầu tiên là chọn hệ tọa độ mới (mình sẽ chọn hệ tọa độ mới tại tim đường) ( có thể bỏ qua bước này vì mình có thể sử dụng lệnh ucs riêng)

2 - Chọn Cao độ tim đường ( và cộng thêm giá trị này với tọa độ Oy của các điểm node nằm trên Pline được chọn)

 

sau đó mọi giá trị xuất ra scv sẽ đúng trừ hàng khoảng cách cộng dồn "bên trái" nó sẽ có giá trị âm và sắp xếp ngược so với mong muốn ( ý em là cho khoảng cách sẽ có giá trị dương hết, và khoảng cách ở cột "Bên Trái" sẽ đảo ngược tự dưới lên)

 

Loại bỏ bớt các thao tác của lisp củ là bỏ đi lệnh hỏi lưu file nào mà cho mặc định lưu luôn ra scv đc ko ạ hoặc bỏ cái lưu ra file .TXT đi ạ

 

Mong mọi người giúp sức

Em chỉ nghĩ ra hướng đi còn cách diễn dãi bằng ngôn ngữ lisp thì em chịu nên các bác thông cảm nếu có gì sai sót

Chân thành cảm ơn, chúc mọi người sức khỏe.

http://www.cadviet.c.../5/150815_3.rar

http://www.cadviet.c...815_11111_1.dwg


  • 0

#56 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 28 March 2016 - 02:45 AM

Bạn thử cái này xem:

(defun c:tt  (/ xuat_kq elv ent lsp lst-l lst-r lsw txt x y sep)
 (defun xuat_kq  (str lst / filename fn i)
  (setq i 1)
  (setq filename (strcat (getvar 'dwgprefix) (getvar 'dwgname) ".txt"))
  (or (findfile fileName) (progn (setq fn (open fileName "w")) (close fn)))
  (setq fn (open fileName "a"))
  (princ (strcat "\n" (write-line str fn)))
  (foreach x  lst
   (princ (strcat "\n" (write-line (strcat (itoa i) sep (car x) sep (cadr x)) fn)))
   (setq i (1+ i)))
  (close fn))
 (setq sep "\t")
 (while (and (setq ent (car (entsel "\nChon Pline trac ngang: ")))
             (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE")
             (not (redraw ent 3))
             (setq txt (car (entsel "\nChon Text cao do tim duong: ")))
             (wcmatch (cdr (assoc 0 (entget txt))) "*TEXT")
             (not (redraw ent 4))
             (setq elv (distof (cdr (assoc 1 (entget txt))) 2)))
  (setq lsp (acet-geom-vertex-list ent))
  (foreach pt  lsp
   (setq x (car pt)
         y (+ (cadr pt) elv))
   (cond ((< x 0) (setq lst-l (cons (list (rtos (abs x) 2 2) (rtos y 2 2)) lst-l)))
         ((> x 0) (setq lst-r (cons (list (rtos x 2 2) (rtos y 2 2)) lst-r)))))
  (xuat_kq (strcat "\nSTT" sep "K.cach" sep "Cao do\nBen trai:") lst-l)
  (xuat_kq "Ben phai:" (reverse lst-r))
  (setq lst-l nil
        lst-r nil))
(and ent (redraw ent 4))
 (princ "\nLisp created By QuocManh04tt-CadViet.com!")
 (princ))

P/s:

1​. Lsp xuất ra file .txt nằm cùng thư mục với file .dwg hiện hành.

2. Muốn xuất file .csv thì tìm trong lsp thay ".txt" bằng ".csv", ngăn cách giữa STT, K.cach, caodo bằng dấu ";" thì thay dòng:  (setq sep "\t") bằng dòng này:  (setq sep ";").

3. => Copy sẽ tốt hơn download ...


  • 1

#57 phuhvp

phuhvp

    biết vẽ line

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

Đã gửi 28 March 2016 - 05:33 AM

Bạn thử cái này xem:

(defun c:tt  (/ xuat_kq elv ent lsp lst-l lst-r lsw txt x y sep)
 (defun xuat_kq  (str lst / filename fn i)
  (setq i 1)
  (setq filename (strcat (getvar 'dwgprefix) (getvar 'dwgname) ".txt"))
  (or (findfile fileName) (progn (setq fn (open fileName "w")) (close fn)))
  (setq fn (open fileName "a"))
  (princ (strcat "\n" (write-line str fn)))
  (foreach x  lst
   (princ (strcat "\n" (write-line (strcat (itoa i) sep (car x) sep (cadr x)) fn)))
   (setq i (1+ i)))
  (close fn))
 (setq sep "\t")
 (while (and (setq ent (car (entsel "\nChon Pline trac ngang: ")))
             (wcmatch (cdr (assoc 0 (entget ent))) "*POLYLINE")
             (not (redraw ent 3))
             (setq txt (car (entsel "\nChon Text cao do tim duong: ")))
             (wcmatch (cdr (assoc 0 (entget txt))) "*TEXT")
             (not (redraw ent 4))
             (setq elv (distof (cdr (assoc 1 (entget txt))) 2)))
  (setq lsp (acet-geom-vertex-list ent))
  (foreach pt  lsp
   (setq x (car pt)
         y (+ (cadr pt) elv))
   (cond ((< x 0) (setq lst-l (cons (list (rtos (abs x) 2 2) (rtos y 2 2)) lst-l)))
         ((> x 0) (setq lst-r (cons (list (rtos x 2 2) (rtos y 2 2)) lst-r)))))
  (xuat_kq (strcat "\nSTT" sep "K.cach" sep "Cao do\nBen trai:") lst-l)
  (xuat_kq "Ben phai:" (reverse lst-r))
  (setq lst-l nil
        lst-r nil))
(and ent (redraw ent 4))
 (princ "\nLisp created By QuocManh04tt-CadViet.com!")
 (princ))

P/s:

1​. Lsp xuất ra file .txt nằm cùng thư mục với file .dwg hiện hành.

2. Muốn xuất file .csv thì tìm trong lsp thay ".txt" bằng ".csv", ngăn cách giữa STT, K.cach, caodo bằng dấu ";" thì thay dòng:  (setq sep "\t") bằng dòng này:  (setq sep ";").

3. => Copy sẽ tốt hơn download ...

Trước tiên xin cảm ơn bạn quocmanh04tt rất nhiều đã giúp mình

Bạn cho mình hỏi sao mình load lisp làm theo hướng dẫn rồi mà mình ko thấy có xuất ra tệp .txt nào cả, và mình cũng thử thay .scv vào mà vẫn ko thấy ra file nào cả. và mình muốn nó xuất ra csv theo dạng:

k.cách    cao độ

X1              Y1

X2              Y2

.....              ....

.....              ....

giống như file xuất ra từ lisp của mình đưa ra ở trên đó bạn, ra file .xls giống lisp mình càng tốt

Một lần nữa cảm ơn bạn rất nhiều và mong bạn bỏ ra ít thời gian chỉnh dùm mình tks


  • -1

#58 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 28 March 2016 - 09:57 AM

141736_untitled1_3.jpg

Chạy xong lệnh, bạn nhấn phím F2 và chụp hình đưa lên đây xem cad nó báo ra sao nào!


  • 0

#59 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

  • Members
  • PipPipPipPipPipPipPip
  • 665 Bài viết
Điểm đánh giá: 312 (khá)

Đã gửi 28 March 2016 - 10:25 AM

Cad của bạn chưa cài Express.


  • 1

#60 phuhvp

phuhvp

    biết vẽ line

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

Đã gửi 28 March 2016 - 10:45 AM

Anh ơi, tuyệt vời ông mặt trời luôn, giờ còn 1 xí nữa là nó ko xuất ra file nào hết anh, em muốn nó ra exl để mình copy đó ạ

Không biết phải báo đáp anh như thế nào... Rất cảm ơn anh nhiều nhiều


  • 0