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

Nhờ các bác chỉnh hộ Lisp vẽ hình chữ nhật

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

Mình có lisp của bác Đoàn Văn Hà

Bây giờ mình muốn chỉnh

Pick diem A:

Pick diem B:

Cho khoảng cách cạnh vuông góc với cạnh AB: đánh ở dấu nhắc giá trị cạnh

>>> Vẽ hình chữ nhật có cạnh AB, và cạnh vuông với AB là giá trị vừa đánh vào (tất nhiên hướng chữ nhật là cạnh AB)

Sau đó muốn vẽ hình chữ nhật nữa thì:

 

Pick diem A:

Pick diem B:

Cho khoảng cách cạnh vuông góc với cạnh AB: (vào giá khoảng cách- nếu không vào giá trị Enter thì mặc nhiên lấy giá trị cũ)

Xin các Bác chỉ giáo !

Trân trọng!http://www.cadviet.com/upfiles/3/123341_vehcnvuong_ha.lsp

  • 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âu hỏi này chính đáng, sao ai nỡ dislike thế?

Nếu cần vẽ nhiều hình chữ nhật xiên thì nó sẽ nhanh hơn cad cơ mà!

Chỉ tiếc là: tại sao không hỏi ở ngay topic đó mà mở thêm topic chi cho nhạt forum.

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

đang luyện công nhưng mạo muội sửa bậy

>>>> hòng học đc nhiều cái hay sau 1 rổ đá :D :D :D

(defun C:HA( / pa pb h1 pc)
 (BAT_DAU)
 (initget 1) (setq pa (getpoint "\nPick diem A: "))
 (initget 1) (setq pb (getpoint pa "\nPick diem B: "))
 (acet-sysvar-set (list "cmdecho" 0))
 (command "ucs" "z" (/ (* 180 (angle pa pb)) pi))
 (setq pa (trans pa 0 1))
 (setq pb (trans pb 0 1))
 (grvecs (list -3 pa pb))
 (acet-sysvar-set (list "orthomode" 1))
 (if (not h) (setq h 100))
 (setq h1 (getdist pb (strcat "Chieu cao <" (rtos h 2 4) " >: ")))
 (if h1
	(setq h h1)
	)
 (princ (strcat "Nhan chieu cao " (rtos h 2 4)))
 (setq pc (polar pb (/ pi 2) h))
 (command "rectangle" pa pc)
 (redraw)
 (command "ucs" "w")
 (acet-sysvar-restore)
 (KET_THUC)
 (princ))
(defun BAT_DAU()
 (vl-load-com)
 (setq AcDoc (vla-get-activeDocument (vlax-get-acad-object)))
 (vla-StartUndoMark AcDoc)
 (setq err *error* *error* KHI_LOI))
(defun KET_THUC()
 (acet-sysvar-restore)
 (vla-EndUndoMark AcDoc)
 (setq *error* err))
(defun KHI_LOI(msg)
 (acet-sysvar-restore)
 (vla-EndUndoMark AcDoc)
 (redraw)
 (command "u")
 (princ (strcat "\n" msg ", Reset System Variables\n"))
 (setq *error* err))
  • 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

 

đang luyện công nhưng mạo muội sửa bậy

>>>> hòng học đc nhiều cái hay sau 1 rổ đá :D :D :D

(defun C:HA( / pa pb h1 pc)
 (BAT_DAU)
 (initget 1) (setq pa (getpoint "\nPick diem A: "))
 (initget 1) (setq pb (getpoint pa "\nPick diem B: "))
 (acet-sysvar-set (list "cmdecho" 0))
 (command "ucs" "z" (/ (* 180 (angle pa pb)) pi))
 (setq pa (trans pa 0 1))
 (setq pb (trans pb 0 1))
 (grvecs (list -3 pa pb))
 (acet-sysvar-set (list "orthomode" 1))
 (if (not h) (setq h 100))
 (setq h1 (getdist pb (strcat "Chieu cao <" (rtos h 2 4) " >: ")))
 (if h1
	(setq h h1)
	)
 (princ (strcat "Nhan chieu cao " (rtos h 2 4)))
 (setq pc (polar pb (/ pi 2) h))
 (command "rectangle" pa pc)
 (redraw)
 (command "ucs" "w")
 (acet-sysvar-restore)
 (KET_THUC)
 (princ))
(defun BAT_DAU()
 (vl-load-com)
 (setq AcDoc (vla-get-activeDocument (vlax-get-acad-object)))
 (vla-StartUndoMark AcDoc)
 (setq err *error* *error* KHI_LOI))
(defun KET_THUC()
 (acet-sysvar-restore)
 (vla-EndUndoMark AcDoc)
 (setq *error* err))
(defun KHI_LOI(msg)
 (acet-sysvar-restore)
 (vla-EndUndoMark AcDoc)
 (redraw)
 (command "u")
 (princ (strcat "\n" msg ", Reset System Variables\n"))
 (setq *error* err))

Cảm ơn bạn

hiepttr

bạn làm đúng ý mình rồi nhưng cần sửa lại hộ mình là hình chữ nhật đó vẽ về phía nào la do mình

Chứ như chương trình bạn sửa là chỉ mạc định về 1 phía thôi!

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ác là phải thêm nhiều dấu - nữa ??? 

 

Mình có lisp của bác Đoàn Văn Hà

Bây giờ mình muốn chỉnh

Pick diem A:

Pick diem B:

Cho khoảng cách cạnh vuông góc với cạnh AB: đánh ở dấu nhắc giá trị cạnh

>>> Vẽ hình chữ nhật có cạnh AB, và cạnh vuông với AB là giá trị vừa đánh vào (tất nhiên hướng chữ nhật là cạnh AB)

Sau đó muốn vẽ hình chữ nhật nữa thì:

 

Pick diem A:

Pick diem B:

Cho khoảng cách cạnh vuông góc với cạnh AB: (vào giá khoảng cách- nếu không vào giá trị Enter thì mặc nhiên lấy giá trị cũ)

Xin các Bác chỉ giáo !

Trân trọng!http://www.cadviet.com/upfiles/3/123341_vehcnvuong_ha.lsp

 

 

Nhờ các bác chỉ giáo

Đây là tác phẩm của bác Hà nhờ bác chỉ cho

 

 

Cảm ơn bạn

hiepttr

bạn làm đúng ý mình rồi nhưng cần sửa lại hộ mình là hình chữ nhật đó vẽ về phía nào la do mình

Chứ như chương trình bạn sửa là chỉ mạc định về 1 phía thôi!

CẢm ơn!

 

 

Cám ơn Bạn.

NHờ bạ chỉnh thêm lisp kí hiệu nhà , them vào các đường trong hình chữ nhật trên

theo hình vẽ của file dưới

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

Hi, cháu k quan tâm 2 người hay 1 người, dù văn phong như nhau :)

 

@tientracdia : bạn reply ai vậy ?  Nếu là mình thì câu trả lời là : file bản vẽ của bạn

@DanKhaosat : mình đọc lại kỹ yêu cầu bạn đưa ra từ đầu vào.

 - 1 là file lisp lấy từ topic có cả đường dẫn, nhưng bạn lại mở thêm topic mới 

-  2 là không có yêu cầu về hướng trong bài đầu tiên. Tất nhiên 1 người viết lisp tốt sẽ lường được tình huống này để linh động, nhưng nó cũng k phải bài tập bắt buộc với người viết, không ai ép họ phải đắn đo quá nhiều thay bạn, nên có sao thì cũng nên trách mình từ đầu. Bạn k tick like công của hiepttr, nhưng cũng cảm ơn 2 lần trong 1 post rồi, coi như là vừa đẹ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

Cảm ơn các bạn thực ra Lisp bạn Tien trắc địa cần mình thấy trên Cadviet có rồi đây này của bác Thaistreetz! http://www.cadviet.com/upfiles/3/123341_ve_nha_nbnha.lsp

Còn bác Hiepttr bác đưa lên là đủ rồi lúc mình kiểm tra vội nên chưa kiểm tra hết 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 các bạn thực ra Lisp bạn Tien trắc địa cần mình thấy trên Cadviet có rồi đây này của bác Thaistreetz! http://www.cadviet.com/upfiles/3/123341_ve_nha_nbnha.lsp

Còn bác Hiepttr bác đưa lên là đủ rồi lúc mình kiểm tra vội nên chưa kiểm tra hết Cảm ơn bạn!

Rất cám ơn Bạn, Lisp này rất hay nhưng ý mình muốn vẽ nhà khi chọn qua 3 điểm lisp tự xử lý góc vuông qua 2 điểm chọn 1 và 3. Sau đó vẻ ký hiệu nóc nhà theo phương pháp chọn vẻ hình chữ nhật trê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

Bạn dựa vào đâu mà khẳng định ?

1). Khẳng định 1 điều chưa chắc đúng thì không bao giờ sai. Chỉ khi khẳng định 1 điều là sai hoặc đúng thì mới có thể đúng hoặc sai.

2). "Tiến Trắc Địa" là tôi dịch từ "tientracdia" và "Dân Khảo Sát" là tôi dịch từ "Dankhaosat" - 2 nickname của 2 bạn ấy 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 hÀ CÓ LẦN CHÊ MÌNH ĐẶT VẤN ĐỀ KHÔNG RÕ

GIỜ MÌNH CŨNG ĐẶT VẤN ĐỀ ĐÓ VƠI BẠN

Bạn đang đặt vấn đề gì? Mình đang giải thích cho "tientracdia" chứ đâu giải thích cho "Dankhaosat"?

Nếu 2 in 1 hoặc 1 in 2 thì bó tay.

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

Thôi giúp nhau về lisp đi bạn,

Mình muốn vẽ thêm một dường từ lisp vẽ hình chử nhật trên từ điểm A đến C thì phải chỉnh như thế nào ?

Xin nhờ các Bạn giúp.

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ông biết ý của chủ thớt có phải là vẽ nhà không nhỉ?

Mình viết cái Lisp vẽ nhà này lâu rồi.

Bạn thử xem có ổn không? Cần chỉnh sửa gì ko?

(defun c:vn() ;Ve nha
  (command "un" "be")
  (setq i 1)
  (while
    (progn
  	(command "osnap" "cen,end,mid,node")
	(setq P1 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m th\U+1EE9 nh\U+1EA5t: ")
	      P2 (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m th\U+1EE9 hai: ")
	      P3a (getpoint "\nCh\U+1ECDn \U+0111i\U+1EC3m th\U+1EE9 ba ")
	)
  	(setq Phia (CCW P1 P2 P3a))
	(setq  D23 (distance P2 P3a))
        (setq Goc12 (angle P1 P2))
        (setq Goc21 (angle P2 P1))
        (if (= Phia "PH")
	  (progn
	      (setq P4 (polar P1 (+ Goc12 (DTR 270)) D23)
	            P3 (polar P2 (+ Goc21 (DTR 90)) D23)
	      )
	  )
	  (progn
	      (setq P4 (polar P1 (+ Goc12 (DTR 90)) D23)
	            P3 (polar P2 (+ Goc21 (DTR 270)) D23)
	      )
	  )
	)
  	(setq TD (list (/ (+ (car p1) (car P3)) 2)(/ (+ (cadr p1) (cadr P3)) 2)))
  	(if (< (distance p1 p2) (distance p2 p3))
	  (progn
	  	(setq TD1 (list (/ (+ (car p1) (car P2)) 2)(/ (+ (cadr p1) (cadr P2)) 2)))
	  	(setq TD2 (list (/ (+ (car p3) (car P4)) 2)(/ (+ (cadr p3) (cadr P4)) 2)))
	  	(setq K1 (polar TD1 (angle TD1 TD2) (/ (distance TD1 TD2) 3)))
	  	(setq K2 (polar TD1 (angle TD1 TD2) (* 2 (/ (distance TD1 TD2) 3))))
  	  	(command "osnap" "off")
	  	(command "pline" p1 p2 p3 p4 p1 "")
	  	(command "pline" p1 k1 k2 p3 "")
		(command "pline" p2 k1 k2 p4 "")
	  )
	  (progn
	  	(setq TD1 (list (/ (+ (car p3) (car P2)) 2)(/ (+ (cadr p3) (cadr P2)) 2)))
	  	(setq TD2 (list (/ (+ (car p1) (car P4)) 2)(/ (+ (cadr p1) (cadr P4)) 2)))
	  	(setq K1 (polar TD1 (angle TD1 TD2) (/ (distance TD1 TD2) 3)))
	  	(setq K2 (polar TD1 (angle TD1 TD2) (* 2 (/ (distance TD1 TD2) 3))))
  	  	(command "osnap" "off")
	  	(command "pline" p1 p2 p3 p4 p1 "")
	  	(command "pline" p1 k2 k1 p3 "")
		(command "pline" p2 k1 k2 p4 "")
	  )
	)
        (setq i (+ i 1))
      )
    )
  (command "un" "end")
  (princ)
)

(defun CCW  (P1 P2 P /) ;Xac dinh diem P nam ben trai hay phai doan thang P1 P2
  (setq BP "PH")
  (setq BT "TR" )
  (setq dX  ( - (car P) (car P1))
	dY  ( - (cadr P) (cadr P1))
	dX0 ( - (car P2) (car P1))
	dY0 ( - (cadr P2) (cadr P1))
	d   ( - (* dX dY0) (* dY dX0))
  )
  (if (> d 0)
    BP
    BT
  )
)
(defun DTR (A) (/ (* A pi) 180)) ; Degrees to Radian

 

  • 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

Hồi xửa mình có viết theo yêu cầu của 1 bác khảo sát ra bộ lisp như này. Các bác khảo sát ngó xem có dùng được gì không. (Bên cadviet cũng có post rồi nhưng lười tìm)

http://duy782006.blogspot.com/2009/08/tien-ich-lisp-cho-khao-sat-ia-hinh.html

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 là phải thêm nhiều dấu - nữa ??? 

 

 

 

 

 

 

 

E ko biết về lisp. 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 nha.

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ờ mọi người giúp đỡ viết lisp vẽ hình chữ nhật, chương trình sẽ hỏi chiều rộng (W) và chiều cao (H) hình chữ nhật. Khi vẽ thì cad chỉ cần vẽ ra theo chiều rộng mà chương trình đã hỏi,chiều dài là do mình click chuột trên bản vẽ, không cần chiều cao. Vẽ xong sẽ xuất text WxH với chiều cao chữ sẽ được chương trình lisp hỏi (vẽ lần sau thì chương trình tự nhớ chiều cao chữ,nếu muốn thay đổi thì mình mới đánh lại chiều cao chữ

 

 Cám ơn 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

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


×