Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
haanh

LISP VẼ ĐƯỜNG ỐNG 3D trên AutoCAD

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

Trước khi nhờ các bác viết Em_Lisp CHÈN PHỤ KIỆN ĐƯỜNG ỐNG, em nhờ các bác thư giãn  với lisp vẽ tê thu cho các loại ống theo tiêu chuẩn Đức, có các đường kính ống theo DN:

 

11837_ha2.png

(Tê thu tự chế là loại tê phi tiêu chuẩn, giao tuyến giữa hai ống là đường cong R lượn chứ không phải là đường kẻ chỉ! Ống, cút và tê.... chỉ vẽ dạng mô phỏng lỗ đặc để giảm dung lượng cho file bản vẽ....dễ zom, pan, copy và move...)

File:   http://www.cadviet.com/upfiles/4/11837_haanh.dwg

Cho trước 1 cái tê thu tự chế DN250_DN200, em muốn nhờ các bác viết lisp:

1 - Sau khi gõ lệnh lisp, thay đổi trị số của D lớn và d nhỏ sẽ ra được các loại tê thu có đường kính khác nhau theo tiêu chuẩn ống của Đức.

2 - Nếu phải mua các loại tê thu trên thị trường có chiều dài khác với tê thu tự chế, người dùng có thể tự sửa lại được dòng Code của Lisp công thức tính chiều dài  2d nhỏ và (D/2)+(d/4),  để ra được chiều dài mong muốn.

3 - Em không biết là viết lisp với số liệu như thế có gặp trở ngại gì không???

Em rất hân hạnh được tiếp đón các bác viết lisp trên diễn đàn ghé thăm lều quán nhà em!

Sự hiện diện của các bác sẽ mang lại niềm vui lớn cho cái Hoằn, hy vọng là khi vui, cái Hoằn sẽ ngẫu hứng hát tặng các bác bài hát EM CỦA NGÀY HÔM QUA, bằng một giọng ca hương đồng gió nội mềm mại mượt mà như lúa đang thì con gái nhưng đã nồng nàn "hương lúa chín thoang thoảng bay làm lung lay hàng cột điện làm xáo động cả hàng cây"  và ngọt ngào hơn cả mía lùi bếp gas! :) :) :)

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ù chị Hà:

3/ Viết Lisp theo công thức tính chiều dài  2d nhỏ và (D/2)+(d/4) không khả thi, bởi vậy chẳng có bác nào giả nhời chị! :) :) :)

4/ Dùng lệnh Cyl vẽ đoạn ống DN250 và đoạn ống DN200 >>> Move đoạn ốngDN200 chọn chế độ  bắt điểm M2p vào trọng tâm ống DN250 >>>3drotate xoay đoạn ống DN200 theo hướng tuỳ thích >>> Union để tạo thành một found Tê ( Thao tác chưa đến 10 giây)

5/ Nếu dùng ít thì cứ thế copy đến vị trí của nó, nếu dùng nhiều thì có thể tạo block...Thực tế là số lượng Tê trong một công trình rất ít, không đáng để viết lisp, chị ạ!

 

5- Chị đã viết:

"Cho trước 1 cái tê thu tự chế DN250_DN200, em muốn nhờ các bác viết lisp:

1 - Sau khi gõ lệnh lisp, thay đổi trị số của D lớn và d nhỏ sẽ ra được các loại tê thu có đường kính khác nhau theo tiêu chuẩn ống của Đức.

2 - Nếu phải mua các loại tê thu trên thị trường có chiều dài khác với tê thu tự chế, người dùng có thể tự sửa lại được dòng Code của Lisp công thức tính chiều dài  2d nhỏ và (D/2)+(d/4),  để ra được chiều dài mong muốn".

Chị nghĩ viết lisp vẽ tê cũng đáng để anh Hiepttr mầy mò tìm đường đi tới lisp vẽ tê ngắn nhất. Biết đâu khi dò đường giữa đêm khuya thanh vắng, anh Hiepttr không dẫm phải "mìn ...của Hoằn" mà lại tình cờ đá phải bao tải tiền của ai đó đánh rơi giữa đồng không mông quạnh :) :) :)

Sao không thấy anh Hiệp có ý kiến gì 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

Anh Hiệp, ơi , giờ miền Trung đang là mùa khô, thành cổ Quảng Trị quê anh  đã hết lũ lụt chư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

khà khà :D :D :D

 

Bỏ chạy lâu ngày ko ngoảnh mặt lại, khi trở lại nước đã rút nhưng cứ tưởng rằng chẳng ai cần nên ko code :D

 

>>> Hàng đây, ném đá đi :D :D :D

;lisp ve te theo D & d nhap vao
(defun c:VET()
(setq os (getvar 'osmode)
	  lay (getvar "clayer")
	  cmd (getvar 'cmdecho))
(mapcar 'setvar (list 'osmode 'cmdecho) '(0 0))
;================================
;ham bay loi
(setq temperr *error*)
(defun errorTrap (msg)
    (and os (setvar 'osmode os))
	(and lay (setvar "clayer" lay))
	(and cmd (setvar 'cmdecho cmd))
	(cond
		((tblsearch "ucs" "save_ucs_ve_T") 
			(command "ucs" "na" "r" "save_ucs_ve_T")
			(command "ucs" "na" "d" "save_ucs_ve_T")
			)
	)
    (setq *error* temperr)
	(princ "\n*** Da set lai bien, OK ! ***")
    (princ)
)
(setq *error* errorTrap)
;======het ham bay loi = P1 ============================
;===========================================================================================
(command "ucs" "na" "s" "save_ucs_ve_T")
(setq #D_lon (NGT #D_lon 254. getdist "Nhap duong kinh ong lon (D)")
	  #d_nho (NGT #d_nho 204. getdist "Nhap duong kinh ong nho (d)")
	  bl_name (strcat "T_" (rtos #D_lon 2 0) "_" (rtos #d_nho 2 0))
)
(if (tblsearch "layer" bl_name) 
			(setvar "clayer" bl_name) 
			(command "layer" "m" bl_name "c" "t" "45,159,225" "" "")
			)	;if
;=========================================================================================
(if (not (tblsearch "block" bl_name))
	(progn
		(command "ucs" "na" "w")
		(command "CYLINDER" (list 0 0 (- #d_nho)) (/ #D_lon 2.) (* 2 #d_nho))
		(setq part_1 (entlast))
		(command "ucs" "za" "" '(1 0 0))
		(command "CYLINDER" '(0 0 0) (/ #d_nho 2.) (+ (/ #D_lon 2.) (/ #d_nho 4.)))
		(command "_.union" part_1 (entlast) "")
		(command "ucs" "za" "" '(-1 0 0))
		(command "-block" bl_name '(0 0 0) (entlast) "")
		(command "ucs" "na" "r" "save_ucs_ve_T")
	)
)	;Neu chua co _ tao block Te
;==========================================================================================
(if (and
		(setq base_pt (getpoint "\nChon diem giao tim 02 tuyen ong: "))
		(setq pt1 (getpoint "\nChon diem thuoc tim tuyen ong lon: "))
		(setq pt2 (getpoint "\nChon diem thuoc tim tuyen ong nho: "))
		(not (equal base_pt pt1 (setq fuzz (/ #d_nho 100))))
		(not (equal base_pt pt2 fuzz))
		(not (equal pt2 pt1 fuzz))
	)
	(progn
		(command "ucs" "3p" base_pt pt2 pt1)
		(command "insert" bl_name '(0 0 0) "" "" "")
	)
)
(command "ucs" "na" "r" "save_ucs_ve_T")
(command "ucs" "na" "d" "save_ucs_ve_T")
(setq *error* temperr)
(setvar 'osmode os)
(setvar "clayer" lay)
(setvar 'cmdecho cmd)
(princ "\nOK !")
(princ)
)
;===================================================================================================
(defun NGT(a mac_dinh ham str_nhac / modul)
;;Nhan gia tri
(or a (setq a mac_dinh))
(setq a (cond
	((= "" (setq modul (ham (strcat "\n" str_nhac " <" (vl-princ-to-string a) ">: ")))) a)
	(modul)
	(a)
	)
	)
)
  • Like 1
  • Vote tăng 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

 

HA_zpse7oomhp8.gif

Cảm ơn anh Hiệp rất nhiều nhiều nhé! Em đã trót dại nhờ cái Hoằn ném cho anh mấy tảng thịt trâu rừng hun khói, không biết anh đã nhận được chưa??? :) :) :)

Tình hình là em muốn các bác trên diễn đàn và anh Hiệp viết lisp chèn phụ kiện vào đường ống! Đầu vào là các block tê, van, rắc co, bích có điểm chèn tại điểm giữa (trùng với đường tâm ống). Đầu ra là các vị trí bất kỳ trên các đường ống với điều kiện tê, van...phải xoay được theo mọi hướng như ảnh 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

@haanh: Ai là người "quên mật khẩu" khi mình đã thắc mắc & nhắn tin (vì sợ làm loãng topic) & đã đợi mãi chẳng thấy hồi âm ?
 

Mở hộp tin nhắn đi, nó sẽ nói lên tất cả :D :D :D

  • 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

Xin lỗi anh Hiệp đúng là em bị mất...mật khẩu nên nên hôm nay mới được đọc ...công hàm của anh :) :) :)

 

Tê dùng trong đường ống công nghệ của cơ khí không lắp bằng ren như  Tê của đường ống nước mà hàn trực đối đầu trực tiếp

Tê với các kích cỡ khác nhau được tạo block để trong file tư liệu. Cần dùng loại nào thì lôi nó ra đưa vào đúng vị trí của đường ống cần chèn, có thể xoay theo vị trí mong muốn như hình ảnh minh họa ở bài viết trên.

Khi đã bấm chuột để chèn cố định vào đường ống thì đoạn ống dài đúng bằng chiều dài của Tê sẽ phải trở về với cát bụi đúng như anh đã viết: "- Khi chèn phụ kiện, (sau khi chọn loại phụ kiện cần chèn) ta chỉ cần kích chọn đoạn ống >>> lisp sẽ lấy được thông tin từ xdata để xác định đc đường kính phụ kiện ..., đồng thời vẽ lại 2 đoạn ống & xóa đoạn ống cũ đi (mục đích là tạo khoảng hở tại vị trí chèn)"

Chèn các phụ kiện khác chẳng hạn như Bích nối ống , Van chặn , Ống bù giãn nở...được hàn trực tiếp vào ống cũng tương tự như chèn Tê

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  

×