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

Viết Lisp theo yêu cầu

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

Chào mọi người!

Công việc của mình thường xuyên làm việc vói các Block. Lisp ẩn và hiện lại các đối tượng rất hữu dụng trong trường hợp này. Rất mong mọi người viết dùm lisp chuyển đổi qua lại giữa các đối tượng này. Cụ thể là:

- Khi ta nhâp chon "Blank"(tên lệnh ẩn các đối tượng đó), sẽ ẩn đối tượng được chọn.

- Unblank (tên lệnh hiện lại các đối tượng ẩn), sẽ làm hiện lại các đối tượng đang ẩn.

- Reveser Blank (chuyển đổi qua lại giữa các đối tượng ẩn và hiên), các độ tượng đang ẩn sẽ hiện và các đối tượng đang hiện sẽ bị ẩn.

Hai Lisp đầu đã có, mong mọi người viết dùm minh cái Lisp thứ ba. Xin chân thành 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
Chào mọi người!

Công việc của mình thường xuyên làm việc vói các Block. Lisp ẩn và hiện lại các đối tượng rất hữu dụng trong trường hợp này. Rất mong mọi người viết dùm lisp chuyển đổi qua lại giữa các đối tượng này. Cụ thể là:

- Khi ta nhâp chon "Blank"(tên lệnh ẩn các đối tượng đó), sẽ ẩn đối tượng được chọn.

- Unblank (tên lệnh hiện lại các đối tượng ẩn), sẽ làm hiện lại các đối tượng đang ẩn.

- Reveser Blank (chuyển đổi qua lại giữa các đối tượng ẩn và hiên), các độ tượng đang ẩn sẽ hiện và các đối tượng đang hiện sẽ bị ẩn.

Hai Lisp đầu đã có, mong mọi người viết dùm minh cái Lisp thứ ba. Xin chân thành cảm ơn.

Xin lỗi vì để bác phải đợi lâu. Lisp đáp ứng yêu cầu của bác đây: http://www.cadviet.com/upfiles/AN_HIEN_DT.zip

( pass giải nén là www.cadviet.com)

Cái lisp này em thường dùng với thói quen lệnh của em nên không được chính xác lệnh như yêu cầu của bác (theo em ngoài việc chẳng may bị trùng với lệnh có sẵn của bác thì nó cũng tiện dụng)

Lệnh 1Q : Ẩn đối tượng chọn

Lệnh 2Q : Hiện tất cả đối tượng

Lệnh 3Q : Chỉ hiện đối tượng được chọn

Lệnh 12Q : Chuyển đổi qua lại giữa đối tượng ẩn và hiện.

Các lệnh giống như layon và layoff thôi. Mong rằng giúp ích được cho bác và cho các anh em.

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ào bạn phamthanhbinh. Mình đã nói là viết cho mình một cái lisp chứ không phải là biểu vẽ hình đó ra. Là như vậy nè, viết lisp khung giống như vậy để mình đưa vào autocad xong mình chỉ nhập kích thước của chiều cao từng tầng . Ví dụ 3 tầng thì nhập chiều cao 3 lần, nhập chiều rộng bước cột thì sẽ cho ra một cái khung như vậy. Ý mình là vậy?

Bạn tyanhCAD ơi, Mìnhkhông phải là dân xây dựng hay kiến trúc gì cả, mình là lũ me cha ni cô nên chịu không thể hiểu được bạn. Việc viết cái lisp như bạn yêu cầu không phải là quá khó, đặc biệt là với các cao thủ ở diễn đàn này. Mình tuy chỉ võ vẽ về lisp nhưng cũng có thể viết cho bạn chạy chơi được.

Song để viết lisp, bạn cần phải cho đầy đủ các kích thước chứ, ví dụ kích thước cột, chiều cao và chiều rộng bậc tam cấp, chiều cao đặt lanhtô, v.v...... Không lẽ bạn cứ bắt người viết phải tự cho thông số sao? Nếu vậy rất có thể nó chẳng ra cái nhà mà ra cái chuồng trâu bạn ạ.

Đành rằng các thông số đó có thể do người sử dụng lisp tự nhập khi chạy lisp nhưng dân xây dựng các bạn chắc cũng phải có những quy chuẩn nhất định chứ phải không bạn? Vậy nên cái gì là thông số phải nhập thì bạn cứ ghi trên bản vẽ bằng ký hiệu a,b,c gí đó theo bạn hiểu, còn thông số nào là thông số quy chuẩn thì bạn cho giá trị cụ thể hay biểu thức tính trên bản vẽ của bạn. Từ đó người viết lisp mới có thể làm ra đúng cái ý bạn xài được chứ.

Rất mong bạn bớt chút thời gian hoàn chỉnh các thông số theo yêu cầu trên bản vẽ của bạn để mọi người có thể giúp bạn được tốt nhất.

Trong trường hợp bạn đã có thể tự sửa lisp có sẵn theo ý mình thì việc bạn yêu cầu mọi người viết hộ là hơi khiên cưỡng và bạn có thể tham khảo ngay cái lisp Venha của bác SSG trên diễn đàn này để hoàn chỉnh cái lisp bạn mong muốn.

Cám ơn bạn và chúc bạn thành cô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
Xin lỗi vì để bác phải đợi lâu. Lisp đáp ứng yêu cầu của bác đây: http://www.cadviet.com/upfiles/AN_HIEN_DT.zip

( pass giải nén là www.cadviet.com)

Cái lisp này em thường dùng với thói quen lệnh của em nên không được chính xác lệnh như yêu cầu của bác (theo em ngoài việc chẳng may bị trùng với lệnh có sẵn của bác thì nó cũng tiện dụng)

Lệnh 1Q : Ẩn đối tượng chọn

Lệnh 2Q : Hiện tất cả đối tượng

Lệnh 3Q : Chỉ hiện đối tượng được chọn

Lệnh 12Q : Chuyển đổi qua lại giữa đối tượng ẩn và hiện.

Các lệnh giống như layon và layoff thôi. Mong rằng giúp ích được cho bác và cho các anh em.

Cám ơn bạn nataca rất nhiều, Lisp của bạn sử dụng rất tốt, nhưng rất tiếc là file *.vlx. Nếu có thể được, bạn có thể cho mình xin file*.Lisp được không vậy? Vì mình muốn dụa trên Lisp đó để phát triển thêm một số lệnh như : Ẩn hoặc hiện các Block cùng tên, cùng nhóm tên..., Nếu được bạn có thể up lên diễn đàn hoặc gửi qua email : hongphuc1080@yahoo.com

Xin chân thành cám ơn bạ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
Cám ơn bạn nataca rất nhiều, Lisp của bạn sử dụng rất tốt, nhưng rất tiếc là file *.vlx. Nếu có thể được, bạn có thể cho mình xin file*.Lisp được không vậy? Vì mình muốn dụa trên Lisp đó để phát triển thêm một số lệnh như : Ẩn hoặc hiện các Block cùng tên, cùng nhóm tên..., Nếu được bạn có thể up lên diễn đàn hoặc gửi qua email : hongphuc1080@yahoo.com

Xin chân thành cám ơn bạn.!

;;=======================================================
;;;------------ CHI HIEN DOI TUONG DUOC CHON--------------
;;;=======================================================

(defun C:3Q	(/ SSet0 SSet Count Elem)

 	(setq SSet (cadr (ssgetfirst)))
 	(prompt "\n Chon cac doi tuong se hien: ")
(if (null SSet)
	(setq SSet (ssget))
)
(cond	(	(setq SSet0 (ssget "_X"))
 			(repeat (setq 	Count (sslength SSet0))
   				(setq 	Count (1- Count)
		 			Elem  (ssname SSet0 Count)
   				)
   				(if 	(/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))
	 				(if (Dxf 60 Elem)
	   					(entmod	(subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem)))
	   					(entmod (append (entget Elem) (list '(60 . 1))))
	 				)
			  	)
   			)								
			)									
)
 	(cond	(	SSet
 				(repeat (setq 	Count (sslength SSet))
   				(setq 	Count (1- Count)
		 				Elem  (ssname SSet Count)
   				)
   				(if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))
	 				(if (Dxf 60 Elem)
	   					(entmod	(subst '(60 . 0) (assoc 60 (entget Elem)) (entget Elem)))
	   					(entmod (append (entget Elem) (list '(60 . 0))))
	 				)			
 					)										
				)			
		)
)
)
;;;=======================================================
;;;--------DOI TUONG AN VA HIEN DOI CHO CHO NHAU----------
;;;=======================================================

(defun C:12Q (/ SSet0 SSet Count Elem)

 	(setq SSet (ssget "_X" '((60 . 1))))
 	(cond	(	(setq SSet0 (ssget "_X"))
 			(repeat (setq 	Count (sslength SSet0))
   				(setq 	Count (1- Count)
		 			Elem  (ssname SSet0 Count)
   				)
   				(if 	(/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))
	 				(if (Dxf 60 Elem)
	   					(entmod	(subst '(60 . 1) (assoc 60 (entget Elem)) (entget Elem)))
	   					(entmod (append (entget Elem) (list '(60 . 1))))
	 				)
			  	)
   			)								
			)									
)
 	(cond	(	SSet
 				(repeat (setq 	Count (sslength SSet))
   				(setq 	Count (1- Count)
		 				Elem  (ssname SSet Count)
   				)
   				(if (/= 4 (logand 4 (Dxf 70 (tblobjname "layer" (Dxf 8 Elem)))))
	 				(if (Dxf 60 Elem)
	   					(entmod	(subst '(60 . 0) (assoc 60 (entget Elem)) (entget Elem)))
	   					(entmod (append (entget Elem) (list '(60 . 0))))
	 				)			
 					)										
				)			
		)
)
)

  • Vote tăng 4

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ọi người thông cảm em tìm hòai trên diễn đàn mà hổng thấy có một cái List nào như em cần nên ....... Anh Hoành ơi nhờ anh viết dùm em 1 cái list để vẽ đường Parabon đi, em làm bên kết cấu dạo này đang vướng vào 1 công trình dùng sàn ứng lực, nên cần 1 cái List để vẽ mặt cắt cáp sàn. thank anh

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ọi người thông cảm em tìm hòai trên diễn đàn mà hổng thấy có một cái List nào như em cần nên ....... Anh Hoành ơi nhờ anh viết dùm em 1 cái list để vẽ đường Parabon đi, em làm bên kết cấu dạo này đang vướng vào 1 công trình dùng sàn ứng lực, nên cần 1 cái List để vẽ mặt cắt cáp sàn. thank anh

Bạn xem ở đây: Vẽ đồ thị hàm số toán học trong AutoCAD

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ọi người thông cảm em tìm hòai trên diễn đàn mà hổng thấy có một cái List nào như em cần nên ....... Anh Hoành ơi nhờ anh viết dùm em 1 cái list để vẽ đường Parabon đi, em làm bên kết cấu dạo này đang vướng vào 1 công trình dùng sàn ứng lực, nên cần 1 cái List để vẽ mặt cắt cáp sàn. thank anh

Mặt cắt cáp sàn dự ứng lực như thế này phải không bạn?

cap.jpg

Bạn xem ở đây: Vẽ đồ thị hàm số toán học trong AutoCAD

Ở chủ đề Vẽ đồ thị hàm số toán học trong AutoCAD chưa thể giải quyết được vấn đề này đâu bác Hoành ạ.

Vì ở chủ đề đó khi chúng ta có cặp điểm thì mới xây dựng được đồ thị trong toán học được.

 

Mình nói bài toán đó như thế này không biết có đúng ý bạn không?

Nhìn vào hình vẽ trên ta thấy độ võng lớn nhất là -150 và độ võng bé nhất là -55

Ý bạn có phải muốn nói là vẽ một đường cong thể hiện tọa độ cáp như trên hình vẽ và nó đi qua độ võng lớn nhất là -150 và độ võng bé nhất là -55 như trên hình vẽ phải không?

 

Có lẽ bạn phamthanhhungks chưa diễn giải đủ ý để mọi người có thể hiểu hết được. Mong bạn hãy viết bài diễn giải cho thật đầy đủ (có thể kèm theo các hình ảnh minh họa nếu cần để mọi người có thể hiểu và từ đó mới giúp cho bạn được và cũng để đỡ tốn thời gian cho mọi người bạn nhé.

 

TB : LISP là chữ viết tắt của cụm từ tiếng Anh : LISp Processor (Xử lý danh sách). (Chứ không phải List)

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

xin chào:

- bạn nào có lisp cad nào có thể đổi kiểu ghi kích thước nhanh(giống như lisp đổi layer và lisp gán nhanh layer) không? nếu có thì send cho minh với

-nếu không có em nhờ Bác Hoành viết hộ em được 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
xin chào:

- bạn nào có lisp cad nào có thể đổi kiểu ghi kích thước nhanh(giống như lisp đổi layer và lisp gán nhanh layer) không? nếu có thì send cho minh với

-nếu không có em nhờ Bác Hoành viết hộ em được không ạ? ^_^

ý của bạn là đổi từ dạng dim này sang dạng dim khác.mình có cách làm khá nhanh.mong là giúp được bác: dùng lệnh dda chọn hết các dim hoặc chỉ các dim bạn muốn thay đổi(lệnh này chỉ chọn các dim mà ko chọn các layer khác- nó dùng để sửalôĩi nhảy dim) enter- enter.dùng lệnh ma- chọn dim mẫu thay đổi-dùng biến p-enter.

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ài toán đặt ra: làm sao tìm giao điểm giữa 1 đa giác và một đường thẳng rồi in ra tọa độ các giao điểm này ra màng hình. Nhờ các bạn giúp mình vớ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

KET_QUA_1.bmp

Em đã thử sử dụng lệnh Spline rồi, mà không thể nào vẽ ra được một đường cáp USV rải trong sàn giống như trong Hình vẽ 1 được, Các aem có thể chỉ cho em cách nào vẽ được nét cáp theo dạng đường Parabon như vậy không? cảm ơn các aem nhiều. còn Đây là file của đoạn sàn mà bên em đang làm.

http://www.cadviet.com/upfiles/1_8.dwg

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
KET_QUA_1.bmp

Em đã thử sử dụng lệnh Spline rồi, mà không thể nào vẽ ra được một đường cáp USV rải trong sàn giống như trong Hình vẽ 1 được, Các aem có thể chỉ cho em cách nào vẽ được nét cáp theo dạng đường Parabon như vậy không? cảm ơn các aem nhiều. còn Đây là file của đoạn sàn mà bên em đang làm.

http://www.cadviet.com/upfiles/1_8.dwg

cap.jpg

Thường để vẽ cáp sàn dự ứng lực ta biết được độ võng lớn nhất của cáp và độ võng nhỏ nhất của cáp.

Tọa độ các điểm giữa của cáp thì bạn hoàn toàn chưa biết. Bạn chỉ biết được tọa độ cáp tại điểm có độ võng lớn nhất và tọa độ cáp tại điểm có độ võng bé nhất. Như vậy, đường cong của tọa độ cáp phải đi qua các điêm này.

Có file Lisp này sẽ giúp bạn vẽ đường cong đó. Đường cong đó là đường cong nội suy đi qua các điểm tọa độ cáp tại điểm có độ võng lớn nhất và tọa độ cáp tại điểm có độ võng bé nhất.

File Lisp đây : http://www.cadviet.com/upfiles/noisuy.vlx

Tên Lệnh là NS.

Trước khi sử dụng file Lisp đó bạn phải vẽ 1 đường Polyline đi qua tọa độ cáp tại điểm có độ võng lớn nhất và tọa độ cáp tại điểm có độ võng bé nhất.

Sau đó sử dụng lệnh NS chọn đường Polyline vừa vẽ, thì chương trình sẽ vẽ đường cong nội suy đó cho bạn.

 

Nếu bạn có thể biết được nhiều điểm của tọa độ cáp thì đường cong nội suy sẽ chính xác hơn

Bạn có thể lưu file http://www.cadviet.com/upfiles/1_8.dwg của bạn xuống CAD2000 được không? Để tớ giúp cho, đang sử dụng CAD2004.

Chỉnh sửa theo Tue_NV
  • 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

Nhờ các bác viết dùm em lệnh Break mà chế độ truy bắt điểm phân ra 2 điểm đầu, cuối rõ rệt.

Vì hiện tại khi gõ Break rồi Enter thì hiện dòng Select Object cũng là chọn điểm thứ 1. Như vậy em không thể bắt điểm chính xác được.

Cám ơn các bác nhiều lắ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
Nhờ các bác viết dùm em lệnh Break mà chế độ truy bắt điểm phân ra 2 điểm đầu, cuối rõ rệt.

Vì hiện tại khi gõ Break rồi Enter thì hiện dòng Select Object cũng là chọn điểm thứ 1. Như vậy em không thể bắt điểm chính xác được.

Cám ơn các bác nhiều lắm.

Bạn có thể nói rõ hơn 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

Bác Tuệ hay ai đó giúp em vụ này với, hỏi mầy người roài mà họ cũng bó tay lun roài. Hiện tại bên cty em đang xài khung tên cho bản vẽ bằng cách xài xref một file khác vào bản vẽ của mình. Bình thường em sau khi Xref khung tên vào em vẫn có thể thay thế tên người TK, và tên BV vì trong file gốc khung tên của em là một Block có chứa các biến ATT. Nhưng mà hổng bít hôm nay sao tự nhiên mấy khung tên mà em Xref vào không thể xửa được các biến ATT trong khung tên đó nữa ai bít chỉ em cách sửa với... kiếm hoài trên diễn đàn mà không thấy bài nào nói rõ về mấy căn bệnh của Xref hết trơn...TRUOC_KHI_LOI_XREF.jpg

Đây là hình của khung tên trước khi bị lỗi Xref. hjc hjc

SAU_KHI_LOI_XREF.jpg

Còn đây là hình của khung tên sau khi bị lỗi.

http://www.cadviet.com/upfiles/CCP10___KHU...___090109_1.dwg đây là khung tên gốc nè...

http://www.cadviet.com/upfiles/SAU_KHI_XREF.dwg Còn đây là một file đã Xref file khung tên đó vào... em hổng bít sửa sao nữa mọi người có ji chỉ bảo dùm em với. thank mọi người nhiều

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

Thank bac Tue rat nhieu....

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

sao không chọn đối tượng được anh Tuệ ơi, em xài Polyline rồi mà sau khi chọn đối tượng xong thì Lisp nó cứ báo vậy nè

4_12.jpg

em hổng bít làm sao nữa. Chắc do mình lúa quá có jì nhờ anh kiểm tra lại cái Lisp dùm em hoặc hướng dẫn làm dùm nhà. thank anh nhiều

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 có thể nói rõ hơn không?

 

Bác ơi em nhầm rồi.

Sau khi mình gõ lệnh BR, sau đó chọn đối tượng rồi mình nhấn F thì có thể chọn lại điểm đầu tiên. Vậy vụ này em đã thông rồi, cám ơn bác nhiều nha.

 

Bác có thể giúp em xác định tọa độ của đối tượng hay không.

Ví dụ 1 : Em có 1 đoạn thẳng, làm thế nào xác định tọa độ điểm đầu, điểm cuối, trung điểm đoạn thẳng. Nếu mình muốn mở rộng thêm tọa độ vài điểm nữa có phải mình dùng lệnh Polar hay không.

Ví dụ 2 : Em có giao điểm giữa đường thẳng và đường tròn, làm thế nào xác định tọa độ giao điểm giữa đường thẳng và đường tròn và 4 điểm của đường tròn.

 

Xin 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
sao không chọn đối tượng được anh Tuệ ơi, em xài Polyline rồi mà sau khi chọn đối tượng xong thì Lisp nó cứ báo vậy nè

4_12.jpg

em hổng bít làm sao nữa. Chắc do mình lúa quá có jì nhờ anh kiểm tra lại cái Lisp dùm em hoặc hướng dẫn làm dùm nhà. thank anh nhiều

Mình đã nói với bạn là lưu file của bạn http://www.cadviet.com/upfiles/1_8.dwg

xuống CAD2000 để mình giúp cho.

Để vẽ cáp sàn dự ứng lực cũng giống như vẽ đồ thị hàm số vậy.

Bạn xem file này sẽ biết :

http://www.cadviet.com/upfiles/Drawing1_2.rar

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
Nhờ các bác viết dùm em lệnh Break mà chế độ truy bắt điểm phân ra 2 điểm đầu, cuối rõ rệt.

Vì hiện tại khi gõ Break rồi Enter thì hiện dòng Select Object cũng là chọn điểm thứ 1. Như vậy em không thể bắt điểm chính xác được.

Cám ơn các bác nhiều lắm.

http://www.cadviet.com/upfiles/break.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

Em đã Save lại file xuống CAD 2000 rồi, có jì anh Tuệ xem giùm em nha, cảm ơn anh.

http://www.cadviet.com/upfiles/Ve_cap_san_UVS.dwg

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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×