Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Đăng nhập để thực hiện theo  
Phidoi_gabay

Xin lisp vẽ đường chéo

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

Phidoi_gabay    14

Hi các pác. E đang làm cái ctrình này mà nó nhiều lỗ kỹ thuật quá, có bác nào có lisp hoặc cách nào vẽ nhanh 2 đường chéo (ký hiệu lỗ rỗng, lỗ kỹ thuật) trong một hình khép kín như chữ nhật ko ? Bác nào biết chỉ em với, thanks !

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
hoa35ktxd    38

Bình thường khi vẽ các cấu kiện giống nhau ta vẽ đầy đủ chi tiết rồi copy, ai lại đi vẽ 1 loạt hình chữ nhật sau đó lại đi vẽ đường chéo cho chúng như thế.

Trường hợp bạn thấy cần thiết thì vẫn có thể làm được bằng Lisp sau với điều kiện các lỗ của bạn phải là polyline.

(defun c:VeDuongCheo()
 (setq SS (ssget '((-4 . "")))
SSlen (sslength ss)
I -1
J -1)
 (while (setq LWPL (ssname ss (setq I (1+ I))))
(setq LWPL (entget LWPL))
(setq LstPoint '())
(while (setq Att (nth (setq J (1+ J)) LWPL))
  (if (= (car Att) 10)
(setq LstPoint (append Lstpoint (list att)))
  )
)
(setq J -1)
(command "LINE" (cdr (nth 0 LstPoint)) (cdr (nth 2 LstPoint)) "")
(command "LINE" (cdr (nth 1 LstPoint)) (cdr (nth 3 LstPoint)) "")
 )
)

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
phatgtvt    1

Mấy a giúp dùm e viết 1 lisp vẽ đường chéo hình chữ nhật với.

E có 10 khung in hình chữ nhật (khổ A3), e muốn viết lisp nối đường chéo khung. Khi ta nhập lệnh, chọn 10 khung thì lisp sẽ vẽ 1 polyline nối 10 đường chéo khung hình chữ nhật lại với nhau và đánh số thứ tự từ 1 -10 tại mỗi hình chữ nhật. (polyline và số dùng layer depoint để ko in ra).

Cám ơn mọi người 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
tungnt08x1    0

Bình thường khi vẽ các cấu kiện giống nhau ta vẽ đầy đủ chi tiết rồi copy, ai lại đi vẽ 1 loạt hình chữ nhật sau đó lại đi vẽ đường chéo cho chúng như thế.

Trường hợp bạn thấy cần thiết thì vẫn có thể làm được bằng Lisp sau với điều kiện các lỗ của bạn phải là polyline.

(defun c:VeDuongCheo()  (setq SS (ssget '((-4 . "

khoongchayj được bác ơi, bác hướng dẫn em dùng 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

Sưu tầm.... chỉ vẽ được từng hình... dùng tạm nhé.

(defun c:vdc (/ pnt1 pnt2 pnt3 pnt4  lst e len n e1)

	(setq e (entget (car (entsel))))
	;get the entity list

	(setq len (length e))
	;get the length of the list

	(setq n 0)
	;set counter to zero
	(setq lst nil)
	(repeat len
	;repeat for the length of the entity list

	  (setq e1 (car (nth n e)))
	  ;get each item in the entity list
	  ;and strip the entity code number

	  (if (= e1 10)
	  ;check for code 10 (vertex)

	    (progn
	    ;if it's group 10 do the following

		(terpri)
		  ;new line
		(setq lst (if lst (append lst (list(cdr (nth n e))))(list(cdr (nth n e)))))	  
	    );progn

	  );if
	  (setq n (1+ n))
	  ;increment the counter

	);repeat
  (mapcar 'set '(pnt1 pnt2 pnt3 pnt4) lst)
  
	        (setq pnt1 (strcat(rtos(car pnt1))"," (rtos(cadr pnt1)) ",0"))
	      
		(setq pnt2 (strcat(rtos(car pnt2)) ","(rtos(cadr pnt2))",0"))

		(setq pnt3 (strcat(rtos(car pnt3)) ","(rtos(cadr pnt3))",0"))

		(setq pnt4 (strcat(rtos(car pnt4)) ","(rtos(cadr pnt4))",0"))

(command "line" pnt1 pnt3 "")
(command "line" pnt2 pnt4 "")
  (princ)
);defun
(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

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  

×