Chuyển đến nội dung
Diễn đàn CADViet
tranducanh

Em xin trợ giúp kết hợp lisp OCA, AE và TT vào một lisp

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

Em xin chào các tiền bối!
Hôm trước em có xin trợ giúp các tiền bối sửa lisp AE và đã được trợ giúp rất nhiệt tình. Hôm nay em xin muốn hỏi là em muốn kết hợp 3 lisp vào trong một lệnh để tiện trong công việc có được ko ạ?
Liệu em có thể copy đối tượng block ATT như trên mà số lô đất vẫn nhảy như dùng lisp OCA, chọn điểm trong lô đất đặt block nó sẽ nhận diện tích trong lô đất ấy theo lisp AE và ghi luôn vào dòng chữ em khoanh giống như dùng lisp TT không ạ? Có lẽ em hơi tham nhưng sự thật nếu được rất tiện trong thống kê lô đất. Mong các tiền bối giúp đỡ ạ. Em xin cảm ơn nhiều!image.thumb.png.c733e024d30518ee4b8cb995bd58406a.png

03-nghich dim xp.dwg

copy tien so od_oc_oca .lsp

MA doi tuong block-(TT).lsp

Tinh dien tich (AE) ĐA cai tien.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
14 giờ trước, Duong Nhat Duy đã nói:

Bạn đã thử copy, gộp 3 file lisp thành 1 file chưa, mình nghĩ chả cần biết tí gì về lisp cũng có thể làm được.

Em chưa từng nghĩ tới, nhưng thế chắc ko ổn vì phải dùng lệnh mới định dạng được số nào sẽ edit theo lệnh, số nào giữ nguyên chứ ạ.

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

+ Ông chủ thì muốn ghép lại thành 1 lệnh - Chức năng của lệnh: Khi copy cái Block đó đặt vào trong lô đất, được cái Block mới, có 2 att giá trị của nó thay đổi.

1 là số hiệu lô đất, 2 là diện tích lô đất.

+ Đầy tớ thì bảo dễ, copy nội dung của lisp này bỏ vào lisp khác.

+ Mình nghĩ với người mới học lisp mà làm yêu cầu trên cũng hơi vất vả.

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
4 giờ trước, quocmanh04tt đã nói:

+ Ông chủ thì muốn ghép lại thành 1 lệnh - Chức năng của lệnh: Khi copy cái Block đó đặt vào trong lô đất, được cái Block mới, có 2 att giá trị của nó thay đổi.

1 là số hiệu lô đất, 2 là diện tích lô đất.

+ Đầy tớ thì bảo dễ, copy nội dung của lisp này bỏ vào lisp khác.

+ Mình nghĩ với người mới học lisp mà làm yêu cầu trên cũng hơi vất vả.

Vất vã để học hỏi thêm 1 tí. có chi bác @quocmanh04tt giúp đở thêm 

(defun ChangeTagVal (obj tagName val)
  (setq obj(vlax-ename->vla-object obj))
  (foreach att (vlax-invoke obj 'GetAttributes)
    (if (= tagName (vla-get-tagstring att))
      (progn
	(vla-put-textstring att val)
	(vla-update att)))
  )
)
(defun C:CLD (/ STT lodat thongtin kyhieu diendat diemtruoc)
(command "undo" "be")
(setq STT1 STT2)
(if (not STT1) (setq STT1 "So lo bat dau"))
(setq STT (getstring (strcat "\nSo lo bat dau <" STT1 ">")))
(if (= STT "") (setq STT STT1))
(setq lodat (entsel "\nChon BLock dien ky hieu"))
(setq thongtin (car lodat))
(while
 	 (or
   	 (null lodat)
   	 (/= "INSERT" (cdr (assoc 0 (entget (car lodat)))))
	 )
	(princ "\nDoi tuong khong phai la Block! Chon lai")
 	(setq lodat (entsel "\nChon BLock dien ky hieu"))
	(setq thongtin (car lodat))
	)
(setq kyhieu (strcat "KL06-" STT))
(setq diendat (getpoint (cadr lodat) "\nPick diem dat:"))
(command "bhatch" diendat "")
(Command "area" "o" (entlast))
(command "_.erase" (entlast) "")
(command ".MOVE" (car lodat) "" (cadr lodat) diendat "")
(ChangeTagVal thongtin "TENLODAT" kyhieu)
(ChangeTagVal thongtin "DIENTICH" (rtos (getvar "area") 2 1))
(setq diemtruoc diendat)
(while (setq diendat (getpoint diemtruoc "\nPick diem dat:"))
(setq STT (+ (atoi STT) 1))
(setq STT2 (rtos STT 2 0))
(command "bhatch" diendat "")
(Command "area" "o" (entlast))
(command "_.erase" (entlast) "")
(command ".COPY" (car lodat) "" diemtruoc diendat "")
(setq thongtin (entlast))
(setq kyhieu (strcat "KL06-" (rtos STT 2 0)))
(ChangeTagVal thongtin "TENLODAT" kyhieu)
(ChangeTagVal thongtin "DIENTICH" (rtos (getvar "area") 2 1))
(setq STT STT2)
)
(command "undo" "end")
(princ)
)

 

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
11 giờ trước, huunhantvxdts đã nói:

Vất vã để học hỏi thêm 1 tí. có chi bác @quocmanh04tt giúp đở thêm 


(defun ChangeTagVal (obj tagName val)
  (setq obj(vlax-ename->vla-object obj))
  (foreach att (vlax-invoke obj 'GetAttributes)
    (if (= tagName (vla-get-tagstring att))
      (progn
	(vla-put-textstring att val)
	(vla-update att)))
  )
)
(defun C:CLD (/ STT lodat thongtin kyhieu diendat diemtruoc)
(command "undo" "be")
(setq STT1 STT2)
(if (not STT1) (setq STT1 "So lo bat dau"))
(setq STT (getstring (strcat "\nSo lo bat dau <" STT1 ">")))
(if (= STT "") (setq STT STT1))
(setq lodat (entsel "\nChon BLock dien ky hieu"))
(setq thongtin (car lodat))
(while
 	 (or
   	 (null lodat)
   	 (/= "INSERT" (cdr (assoc 0 (entget (car lodat)))))
	 )
	(princ "\nDoi tuong khong phai la Block! Chon lai")
 	(setq lodat (entsel "\nChon BLock dien ky hieu"))
	(setq thongtin (car lodat))
	)
(setq kyhieu (strcat "KL06-" STT))
(setq diendat (getpoint (cadr lodat) "\nPick diem dat:"))
(command "bhatch" diendat "")
(Command "area" "o" (entlast))
(command "_.erase" (entlast) "")
(command ".MOVE" (car lodat) "" (cadr lodat) diendat "")
(ChangeTagVal thongtin "TENLODAT" kyhieu)
(ChangeTagVal thongtin "DIENTICH" (rtos (getvar "area") 2 1))
(setq diemtruoc diendat)
(while (setq diendat (getpoint diemtruoc "\nPick diem dat:"))
(setq STT (+ (atoi STT) 1))
(setq STT2 (rtos STT 2 0))
(command "bhatch" diendat "")
(Command "area" "o" (entlast))
(command "_.erase" (entlast) "")
(command ".COPY" (car lodat) "" diemtruoc diendat "")
(setq thongtin (entlast))
(setq kyhieu (strcat "KL06-" (rtos STT 2 0)))
(ChangeTagVal thongtin "TENLODAT" kyhieu)
(ChangeTagVal thongtin "DIENTICH" (rtos (getvar "area") 2 1))
(setq STT STT2)
)
(command "undo" "end")
(princ)
)

 

Bạn đã đặt chân đến "Thành Rome", tuy nhiên bạn dẫn theo 1 "binh đoàn command" nên mình không có ý kiến gì thêm.

P/s: Nếu là mình, mình sẽ cho binh đoàn đó nghỉ, thay vào đó là 1 đoàn ca múa nhạc. hehehe ... (Chúng sẽ ca hát, nhảy múa ... thậm chí sexy gây hưng phấn hơn).

  • Like 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
12 giờ trước, huunhantvxdts đã nói:

Vất vã để học hỏi thêm 1 tí. có chi bác @quocmanh04tt giúp đở thêm 


(defun ChangeTagVal (obj tagName val)
  (setq obj(vlax-ename->vla-object obj))
  (foreach att (vlax-invoke obj 'GetAttributes)
    (if (= tagName (vla-get-tagstring att))
      (progn
	(vla-put-textstring att val)
	(vla-update att)))
  )
)
(defun C:CLD (/ STT lodat thongtin kyhieu diendat diemtruoc)
(command "undo" "be")
(setq STT1 STT2)
(if (not STT1) (setq STT1 "So lo bat dau"))
(setq STT (getstring (strcat "\nSo lo bat dau <" STT1 ">")))
(if (= STT "") (setq STT STT1))
(setq lodat (entsel "\nChon BLock dien ky hieu"))
(setq thongtin (car lodat))
(while
 	 (or
   	 (null lodat)
   	 (/= "INSERT" (cdr (assoc 0 (entget (car lodat)))))
	 )
	(princ "\nDoi tuong khong phai la Block! Chon lai")
 	(setq lodat (entsel "\nChon BLock dien ky hieu"))
	(setq thongtin (car lodat))
	)
(setq kyhieu (strcat "KL06-" STT))
(setq diendat (getpoint (cadr lodat) "\nPick diem dat:"))
(command "bhatch" diendat "")
(Command "area" "o" (entlast))
(command "_.erase" (entlast) "")
(command ".MOVE" (car lodat) "" (cadr lodat) diendat "")
(ChangeTagVal thongtin "TENLODAT" kyhieu)
(ChangeTagVal thongtin "DIENTICH" (rtos (getvar "area") 2 1))
(setq diemtruoc diendat)
(while (setq diendat (getpoint diemtruoc "\nPick diem dat:"))
(setq STT (+ (atoi STT) 1))
(setq STT2 (rtos STT 2 0))
(command "bhatch" diendat "")
(Command "area" "o" (entlast))
(command "_.erase" (entlast) "")
(command ".COPY" (car lodat) "" diemtruoc diendat "")
(setq thongtin (entlast))
(setq kyhieu (strcat "KL06-" (rtos STT 2 0)))
(ChangeTagVal thongtin "TENLODAT" kyhieu)
(ChangeTagVal thongtin "DIENTICH" (rtos (getvar "area") 2 1))
(setq STT STT2)
)
(command "undo" "end")
(princ)
)

 

Cảm ơn bác đã quan tâm. Lisp bác viết ấy em thử down về dùng thử nhưng ko được ạ :v

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
1 giờ} trướ}c, quocmanh04tt đã nói:

Bạn đã đặt chân đến "Thành Rome", tuy nhiên bạn dẫn theo 1 "binh đoàn command" nên mình không có ý kiến gì thêm.

P/s: Nếu là mình, mình sẽ cho binh đoàn đó nghỉ, thay vào đó là 1 đoàn ca múa nhạc. hehehe ... (Chúng sẽ ca hát, nhảy múa ... thậm chí sexy gây hưng phấn hơn).

Ý bác là không sử dụng những lisp cũ mà viết lại hẳn lisp mớ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
2 giờ trước, tranducanh đã nói:

Cảm ơn bác đã quan tâm. Lisp bác viết ấy em thử down về dùng thử nhưng ko được ạ :v

THẾ NÓ BÁO THẾ NÀO?????BẠN DÙNG CÓ ĐÚ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
3 giờ trước, quocmanh04tt đã nói:

Bạn đã đặt chân đến "Thành Rome", tuy nhiên bạn dẫn theo 1 "binh đoàn command" nên mình không có ý kiến gì thêm.

P/s: Nếu là mình, mình sẽ cho binh đoàn đó nghỉ, thay vào đó là 1 đoàn ca múa nhạc. hehehe ... (Chúng sẽ ca hát, nhảy múa ... thậm chí sexy gây hưng phấn hơn).

bác @quocmanh04tt có thể giới thiệu vài hàm để nghiên cứu nâng cao trình độ nhé

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
1 giờ} trướ}c, huunhantvxdts đã nói:

THẾ NÓ BÁO THẾ NÀO?????BẠN DÙNG CÓ ĐÚNG KHÔNG??

1.  Có lẽ là (VL-Load-com) chăng ??

2.  Lót dép hóng đoàn ca múa nhạc của các bác. Biết đâu lại thấy em nào xinh xinh thì lùa về :)))

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

Viết cho khỏi quên :( Tôi biết là với mỗi tiện ích này, các bạn sẽ làm công việc nhanh gấp trăm lần, nhưng số người quay lại tri ân anh em viết lisp chả có mấy :))

 

(defun c:foo(/ bn ld as lt 2v 3d e p p1 p2 _att a en)
(vl-load-com)
(setq bn "TKLD" ld "TENLODAT" as "DIENTICH" lt "TENBLOCK") ;Change by user
(or *st* (setq *st* 1))
(setq 2v vlax-ename->vla-object 3d vlax-3D-point)
(while (not (setq s (ssget "_+.:E:S" (list (cons 2 bn)))))(princ "\nMiss!"))
(setq 	e 		(2v (ssname s 0))
		*st* 	(cond ((getint (strcat "Start Number <" (itoa *st*) ">:")))(*st*))
		p 		(getpoint "\nBase point :")
		p1 (3d p)
		_att (lambda(b tag v / r)  
				(foreach at (vlax-invoke b 'GetAttributes)
					(if (eq tag (vla-get-TagString at))
					(setq r
						(if v (vla-put-textstring at v)
								(vla-get-textstring at)
						)
					)))
			r)
)
(while (setq p2 (acet-ss-drag-move s p "\nTo :"))
	(cond ((setq en (bpoly p2))
			(setq a (vla-get-area (2v en))) (entdel en)
			(vla-move (setq n (vla-copy e)) p1 (3d p2))
			(_att n ld 
				(strcat 
					(_att n lt nil) 
					(if (< *st* 10) "-0" "-")
					(itoa *st*)
				)
			)
			(_att n as (rtos a 2 2))
			(setq *st* (1+ *st*))
		)
	)
)
)

 

  • Like 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
18 giờ trước, huunhantvxdts đã nói:

THẾ NÓ BÁO THẾ NÀO?????BẠN DÙNG CÓ ĐÚNG KHÔNG??

Dạ, lisp bác viết nó vẫn hiện phần diện tích nhưng nó làm mất cái block gốc ban đầu, mặc định tên là LK06 chứ ko phải theo tên Block gốc ạ. Với lại mình phải chọn tên số lô bắt đầu thay vì tự nhảy như Lisp OCA ạ. Lisp của bác Ketxu rất ok ạ. 
Cảm kích vì sự nhiệt tình của bác. Em cảm ơ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
18 giờ trước, Danh Cong đã nói:

1.  Có lẽ là (VL-Load-com) chăng ??

2.  Lót dép hóng đoàn ca múa nhạc của các bác. Biết đâu lại thấy em nào xinh xinh thì lùa về :)))

Nó chưa hiển thị đúng ý đồ lắm bác ạ, giống như em trả lời bác Huunhantvxdts ở trên ạ. Lisp bác Ketxu rất ngon ạ :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
9 giờ trước, ketxu đã nói:

Viết cho khỏi quên :( Tôi biết là với mỗi tiện ích này, các bạn sẽ làm công việc nhanh gấp trăm lần, nhưng số người quay lại tri ân anh em viết lisp chả có mấy :))

 


(defun c:foo(/ bn ld as lt 2v 3d e p p1 p2 _att a en)
(vl-load-com)
(setq bn "TKLD" ld "TENLODAT" as "DIENTICH" lt "TENBLOCK") ;Change by user
(or *st* (setq *st* 1))
(setq 2v vlax-ename->vla-object 3d vlax-3D-point)
(while (not (setq s (ssget "_+.:E:S" (list (cons 2 bn)))))(princ "\nMiss!"))
(setq 	e 		(2v (ssname s 0))
		*st* 	(cond ((getint (strcat "Start Number <" (itoa *st*) ">:")))(*st*))
		p 		(getpoint "\nBase point :")
		p1 (3d p)
		_att (lambda(b tag v / r)  
				(foreach at (vlax-invoke b 'GetAttributes)
					(if (eq tag (vla-get-TagString at))
					(setq r
						(if v (vla-put-textstring at v)
								(vla-get-textstring at)
						)
					)))
			r)
)
(while (setq p2 (acet-ss-drag-move s p "\nTo :"))
	(cond ((setq en (bpoly p2))
			(setq a (vla-get-area (2v en))) (entdel en)
			(vla-move (setq n (vla-copy e)) p1 (3d p2))
			(_att n ld 
				(strcat 
					(_att n lt nil) 
					(if (< *st* 10) "-0" "-")
					(itoa *st*)
				)
			)
			(_att n as (rtos a 2 2))
			(setq *st* (1+ *st*))
		)
	)
)
)

 

Sự thật em rất cảm ơn bác rất nhiều, lisp bác viết 99% là chuẩn theo mong muốn của em. Chỉ có một cái dấu em muốn hiển thị chỗ diện tích là dấu "phẩy" chứ ko phải là dấu "chấm" để em có thể xuất sang exel. Trước có bác trợ giúp em sửa lisp AE nhưng giờ em áp dụng nó ko được. Bác có thể chỉ giáo nốt chỗ ấy được ko ạ. Đa tạ bác rất nhiều ạ.

  • Vote giảm 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

Cơm đã dọn, chỉ việc xúc ăn. 1% còn lại rất đơn giản, chịu khó học 1 tí thì những lệnh lấy số lẻ, đổi Chấm => Phẩy phải tự làm được.

Mở lisp của bạn ra, tìm chổ nào có dấu phẩy thì xem lệnh đó là gì rồi tự sử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
46 phút trước, anti lazy đã nói:

Cơm đã dọn, chỉ việc xúc ăn. 1% còn lại rất đơn giản, chịu khó học 1 tí thì những lệnh lấy số lẻ, đổi Chấm => Phẩy phải tự làm được.

Mở lisp của bạn ra, tìm chổ nào có dấu phẩy thì xem lệnh đó là gì rồi tự sửa

 

ấy chết phải đầu tư kính hiển vi để tìm mất.

Cái này bạn cần cài đặt trong hệ thống win thì phải cài dấu chấm thành dấu phẩy

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
5 phút trước, huunhantvxdts đã nói:

ấy chết phải đầu tư kính hiển vi để tìm mất.

Cái này bạn cần cài đặt trong hệ thống win thì phải cài dấu chấm thành dấu phẩy

Không phải bác, mình sửa ở trong lệnh luôn ạ. Trước em sửa lệnh AE đo diện tích để hiện thị bao nhiêu chữ số sau dấu chấm bác DanhCong chỉ cho em giờ em mò được, dấu chấm thành phẩy thì được bác Gia_bach chỉ cho sửa theo thế này và em sửa được. Nhưng hôm nay em chỉ mò ra sửa được số hiển thị sau dấu chấm, còn làm sao để thay dấu chấm thành dấu phẩy em ko mò được. nãy em thử copy dòng (setq TexS (vl-string-subst "," "." Tes)) thay cho (setq *st* (1+ *st*)) là nó hỏng luôn lisp :((. Tại vì em ko học, ko biết gì về lisp nên em chỉ có bắt chước được thôi ạ :(

image.png

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

1 - Khi xuất ra Excel rồi vẫn có thể ấn Ctrl + H để Replace "." => ","
2 - Nếu muốn làm luôn trong lisp thì bạn tìm dòng này :
 

(_att n as (rtos a 2 2))

Đổi nó thành 
 

(vl-string-translate "." "," (_att n as (rtos a 2 2)))

 

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
1 giờ} trướ}c, ketxu đã nói:

1 - Khi xuất ra Excel rồi vẫn có thể ấn Ctrl + H để Replace "." => ","
2 - Nếu muốn làm luôn trong lisp thì bạn tìm dòng này :
 

  • cadvietlisp.lsp
    lisp help
  •  

(_att n as (rtos a 2 2))

Đổi nó thành 
 

  • cadvietlisp.lsp
    lisp help
  •  

(vl-string-translate "." "," (_att n as (rtos a 2 2)))

 

Dạ, em đã thử và ko thành công bác ạ. Nó không những không đổi dấu mà còn mất luôn định dạng copy liên tục bá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

Gửi bạn tranducanh,

Mình cũng chuyên ngành quy hoạch, hạ tầng giống như bạn luôn, công việc trên mình cũng làm rất nhiều rồi. Gần đây có một bài cũng tương tự như vậy, bạn tham khảo nhé.

Giải pháp thì mình đã nêu trong bài đăng ở dưới, lisp sửa stt sẽ thay cho cái od oc chết tiệt gì đó ở trên, còn 2 lisp ma đối tượng block với tính diện tích là 2 lisp nhỏ, bạn cứ việc copy nguyên bọn nó vào phần cuối cái lisp của mình.

Mình xin nhấn mạnh lại việc đánh số thứ tự là bạn nên rải block trước, đánh stt sau (rải block bằng nhiều cách như copy, array, ... hoặc bằng lisp cho 1 vài trường hợp cụ thể (ví dụ rải tại giao điểm, mút, ...), cái này mình sẽ ko đề cập kỹ hơn). Ví dụ đơn giản như việc bạn đã rải xong xuôi, đánh số lô ngon lành hết rồi xong tự nhiên lại phải bỏ 1 lô ở giữa thì bạn tính sao ?, nếu như lisp trên là xóa hết đi rải lại, còn không thì sửa tay, lisp của mình giả quyết được vấn đề đó. Tin mình đi, mình làm công việc này cả trăm nghìn lần rồi nên mới chia sẻ với bạn như vậy, làm quy hoạch sửa nhiều hơn làm 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
23 phút trước, Duong Nhat Duy đã nói:

Gửi bạn tranducanh,

Mình cũng chuyên ngành quy hoạch, hạ tầng giống như bạn luôn, công việc trên mình cũng làm rất nhiều rồi. Gần đây có một bài cũng tương tự như vậy, bạn tham khảo nhé.

Giải pháp thì mình đã nêu trong bài đăng ở dưới, lisp sửa stt sẽ thay cho cái od oc chết tiệt gì đó ở trên, còn 2 lisp ma đối tượng block với tính diện tích là 2 lisp nhỏ, bạn cứ việc copy nguyên bọn nó vào phần cuối cái lisp của mình.

Mình xin nhấn mạnh lại việc đánh số thứ tự là bạn nên rải block trước, đánh stt sau (rải block bằng nhiều cách như copy, array, ... hoặc bằng lisp cho 1 vài trường hợp cụ thể (ví dụ rải tại giao điểm, mút, ...), cái này mình sẽ ko đề cập kỹ hơn). Ví dụ đơn giản như việc bạn đã rải xong xuôi, đánh số lô ngon lành hết rồi xong tự nhiên lại phải bỏ 1 lô ở giữa thì bạn tính sao ?, nếu như lisp trên là xóa hết đi rải lại, còn không thì sửa tay, lisp của mình giả quyết được vấn đề đó. Tin mình đi, mình làm công việc này cả trăm nghìn lần rồi nên mới chia sẻ với bạn như vậy.

 

 

Cảm ơn bạn Duong Nhat Duy. Hiện mình thấy lisp của bác Ketxu dùng rất tốt, nếu sửa được dấu phẩy nữa là rất ok. 
Lisp của bạn theo lý thuyết thì mình vẫn cần để ứng dụng, nhưng với trường hợp nó chỉ đánh lại thứ tự số "tên lô đất" chứ ko phải đánh số lại theo 1,2,3,4,... như lisp của bạn. Nếu bạn chỉ cho mình cải tiến thì mình rất cảm ơn. 
Còn hiện tại, nếu khi xong mà phải chèn lô hay bỏ lô thì mình đang dùng cách xuất block sang exel, đánh lại số thự tự lô bên exel rồi xuất ngược lại cad.
Mong bạn chỉ giáo thê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

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

×