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

[Hỏi] Lisp thao tác trong 3D

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

Cảm ơn anh Hiệp nhiều, số lượng đường ống tương đối lớn, tính bằng đơn vị container, bởi vậy nếu sai số tính bằng đơn vị xe cải tiến (tổng V/ diện tích ống s = chiều dài ống) là chị Hà em bắt anh phải bù... lỗ đó! :) :) :)

Bữa nào chị Hà em thử lisp, em sẽ mời anh đến thưởng thức món gà - đang đẻ trứng con so của nhà chị Hà em trồng được - luộc trong nồi  hấp cách thủy do chính tay em vặt lông nhé!

 

@ Hoằn:

Cái này chỉ tạo ra sai số về độ lệch tâm của cút so với tim chuẩn (đường 3dpolyline)

 

>>> sẽ ko có lỗ ... hoặc "lỗ nhỏ" mình bù đc mà :D :D :D

  • 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

- tới giờ chưa pit bạn Hiep làm ngành gì mà pit nhiều môn vậy ^^

 

nhoclangbat hỏi:- tới giờ chưa pit bạn Hiep làm ngành gì mà pit nhiều môn vậy ^^

Hoằn giả nhời: anh Nhóc à, anh Hiệp em chỉ thích ăn món tràng và trứng non  của gà mái đang đẻ trứng con so thôi anh à! Anh Hiệp em chúa ghét cái món nhất thủ nhì vĩ, anh ạ! :) :) :)

Anh muốn biết nghề nghiệp của anh Hiệp hãy xem chỗ này sẽ rõ:

1- Xem bài viết số # 34 : http://www.cadviet.com/forum/topic/66904-nghe-co-khi-do-vui/page-2

2- Xem chủ đề này: http://www.cadviet.com/forum/topic/95607-cho-em-hoi-chi-tiet-nay-la-chi-tiet-gi-co-khi/

 

@anh Hiệp: Anh có thể cho em biết độ lệch độ lệch tâm của cút so với tim chuẩn được không??? Với bản vẽ lắp tổng thể em thường in nét đậm có chiều dầy 0,25  => nếu lệch tâm chuẩn đến 0,5 thì không đáng ngại lắm!

  • 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

@ Hoằn:

Cái này chỉ tạo ra sai số về độ lệch tâm của cút so với tim chuẩn (đường 3dpolyline)

 

>>> sẽ ko có lỗ ... hoặc "lỗ nhỏ" mình bù đc mà :D :D :D

:) :) :)

Em vừa thử lisp của anh Hiệp:

Command: 3ddd

chon a:'_+dsettings >>Tab Index <0>:2

chon a:

chon b:

chon c:

chon d:

chon e:

chon f:

Chon vat: 52

Yes or No, please.

; error: Function cancelled

UCS "save_ucs" already exists.  Replace it? <N>

Em chọn điểm a, b ...trên đương 3dpoly ...>>> Khi lisp hỏi chọn vat ??? Em hoảng quá tưởng anh truy thu thuế giá trị gia tăng...

Phải mất 3 giây sau em mới tĩnh tâm được rồi gõ đại đường kính ống 52 . Kết quả không vẽ được ống và chế độ bắt điểm bị tắt ngóm! Chưa rõ nguyên nhân???

Sao không chọn 3dpoly mà phải chọn loằng ngoằng nhiều điểm thế hả 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

Chắc là haanh đã thử lisp trong bài này:

 

 


@ Tue_NV:

Nghe lời "xúi dại" của bác, em làm công cụ thay cho 3dalign ^^

Quả thật 2d thì còn dễ ngốn chứ quả 3d này đã làm em mất ngày chủ nhật đó :D :D :D

 

Tạm xong, em đưa lên đây xin đá ^^ :D :D :D

Đến khi ổn thì em cho vào code !

.............................

Lỗi tại ko đọc kĩ hdsd trước khi dùng ^^

 

Giờ thì có cái để thử rồi đây !

Hơi dài, do chưa tìm đc cách rút ngắn code

 

Mèo đen, mèo trắng miễn là bắt đc chuột :D :D :D

 

p/s: Lệnh là VE nghe haanh ^^

 

 

;lisp ve duong ong 3d
(defun c:VE(/ lst_va old D ss lst_TC_DUC cao_tam_cut R path cut base_w lst_ver lst_w obj i ss_ong ss_cut n len dau cuoi)
(setq lst_va '("osmode" "cmdecho"))
(setq old (mapcar 'getvar lst_va))
(mapcar 'setvar lst_va '(0 0))
;=================
(setq D (getdist "\nNhap duong kinh ong: ")
	  lst_TC_DUC '((12 . 26.0) (13 . 26.0) (18 . 35.0) (19 . 35.0) (22 . 40.0) (23 . 40.0) (28 . 
50.0) (29 . 50.0) (35 . 55.0) (34 . 55.0) (40 . 60.0) (52 . 70.0) (53 . 70.0) 
(70 . 80.0) (69 . 80.0) (85 . 90.0) (84 . 90.0) (104 . 100.0) (129 . 187.5) 
(154 . 225.0) (204 . 300.0) (254 . 375.0))
	  cao_tam_cut (cdr (assoc D lst_TC_DUC))
	  )	;setq
;=================
(prompt "\nChon 3DPOLY: ")
(setq ss (ssget "+.:E:S" '((0 . "POLYLINE"))))
(if (and
		D
		(member D (mapcar 'car lst_TC_DUC))
		ss)
	(progn
		(or #lan_ve (setq #lan_ve 0))
		(setq #lan_ve (1+ #lan_ve))
		;ve cut mau:
		(command "arc" "c" '(0 0 0) (list cao_tam_cut 0 0) (list 0 cao_tam_cut 0))
		(setq path (entlast))
		(command "circle" '(0 0 0) (setq R (/ D 2.0)))
		(command "sweep" (entlast) "" path)
		(setq cut (entlast))
		(setq base_w (mapcar '(lambda (x) (trans x 1 0)) (list (list cao_tam_cut 0 0) (list cao_tam_cut cao_tam_cut 0) (list 0 cao_tam_cut 0))))
		;== xong cut mau ==
		;Luu UCS:
		(command "ucs" "na" "s" "save1_ucs")
		;(command "-view" "s" "save_v")
		;*******************************
		(setq lst_ver (acet-geom-vertex-list (setq ename (ssname ss 0)))
			  lst_w (mapcar '(lambda (x) (trans x 1 0)) lst_ver)
			  obj (vlax-ename->vla-object ename))
		(setq i 0
			  ss_ong (ssadd)
			  ss_cut (ssadd)
			  )
		(repeat (setq n (1- (length lst_w)))
			(setq len (distance (setq dau (nth i lst_w)) (setq cuoi (nth (1+ i) lst_w))))
			(command "UCS" "za" (trans dau 0 1) (trans cuoi 0 1))
			(cond
				((= i 0) (command "CYLINDER" (trans dau 0 1) R (- len cao_tam_cut))	;ve ong
					(setq ss_ong (ssadd (entlast) ss_ong))
					(3DDD cut  
						(trans (car base_w) 0 1) 
						(trans (cadr base_w) 0 1) 
						(trans (last base_w) 0 1) 
						(trans (vlax-curve-getPointAtDist obj (- (vlax-curve-getDistAtParam obj 1) cao_tam_cut)) 0 1) 
						(trans (vlax-curve-getPointAtParam obj 1) 0 1) 
						(trans (vlax-curve-getPointAtDist obj (+ (vlax-curve-getDistAtParam obj 1) cao_tam_cut)) 0 1))	;align_copy cut
					(setq ss_cut (ssadd (entlast) ss_cut))
				)
				((= i (1- n)) (command "CYLINDER" (mapcar '+ (list 0 0 cao_tam_cut) (trans dau 0 1)) R (- len cao_tam_cut))	;ve ong
					(setq ss_ong (ssadd (entlast) ss_ong))
				)	
				(t (command "CYLINDER" (mapcar '+ (list 0 0 cao_tam_cut) (trans dau 0 1)) R (- len (* 2 cao_tam_cut)))	;ve ong
					(setq ss_ong (ssadd (entlast) ss_ong))
					(3DDD cut 
						(trans (car base_w) 0 1) 
						(trans (cadr base_w) 0 1) 
						(trans (last base_w) 0 1) 
						(trans (vlax-curve-getPointAtDist obj (- (vlax-curve-getDistAtParam obj (1+ i)) cao_tam_cut)) 0 1) 
						(trans (vlax-curve-getPointAtParam obj (1+ i)) 0 1) 
						(trans (vlax-curve-getPointAtDist obj (+ (vlax-curve-getDistAtParam obj (1+ i)) cao_tam_cut)) 0 1))		;align_copy cut
					(setq ss_cut (ssadd (entlast) ss_cut))
				)
			)
			(setq i (1+ i))
		)	;repeat
		;(command "-block" (strcat "Ong_" (rtos (getvar 'cdate) 2 4)) (trans (nth 0 lst_w) 0 1) ss_ong "")
		;(command "-block" (strcat "Cut_" (rtos (getvar 'cdate) 2 4)) (trans (nth 0 lst_w) 0 1) ss_cut "")
		(command "group" "c" (strcat "Ong_" (rtos (getvar 'cdate) 2 0) (itoa #lan_ve)) "Group_ong" ss_ong "")
		(command "group" "c" (strcat "Cut_" (rtos (getvar 'cdate) 2 0) (itoa #lan_ve)) "Group_cut" ss_cut "")
		;(mapcar 'entdel (list cut path))       ;Cai nay chay tren cad2014 thay co loi ko xoa path nen thay bang command
		(command ".ERASE" cut "")
		(command ".ERASE" path "")
		(command "ucs" "na" "r" "save1_ucs")
		(command "ucs" "na" "d" "save1_ucs")
		;(command "-view" "r" "save_v")
		;(command "-view" "d" "save_v")
	)
	(alert "***** Nhap du lieu chua dung ! *****")
)
(mapcar 'setvar lst_va old)
(princ)
)
(vl-load-com)
;*****************************************************************************************************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;=============================================================================================================================
(defun 3DDD(ss pt_a pt_b pt_c pt_1 pt_2 pt_3 / lst_va old lst_point_w moc new pre
huong_12_xoy huong_13_xoy huong_ab_xoy huong_ac_xoy 
huong_12_yoz huong_13_yoz huong_ab_yoz huong_ac_yoz 
huong_12_xoz huong_13_xoz huong_ab_xoz huong_ac_xoz 
pt_phu pt_phu_w pt_phu2 pt_phu2_w base truc truc_w ang anh anh_c anh_w pt_phu2_2d pt_phu2_w_3d pt_phu_2d pt_phu_3d pt_phu_w_3d)
;Ham 3dalign khong scale Voi 3 diem chon phai "bang nhau" ve kich thuoc hinh dang
(setq lst_va '("osmode" "cmdecho" "AUNITS" "ANGDIR"))
(setq old (mapcar 'getvar lst_va))
(mapcar 'setvar lst_va '(0 0 3 0))
(setq lst_point_w (mapcar '(lambda (x) (trans x 1 0)) (list pt_a pt_b pt_c pt_1 pt_2 pt_3)))
(command "ucs" "na" "s" "save_ucs")
;(command "-view" "s" "save_v")
(setq moc (entlast) 
	  new (ssadd))
(command "_.copy" ss "" pt_a pt_1)
(while (setq pre (entnext moc))
	(setq new (ssadd pre new)
		  moc pre)
)	;while
;======================================================================
;Kiem tra trung phuong, chieu
(command "ucs" "za" '(0 0 0) '(2.357 1.312 4.235))
(setq huong_12_xoy (angle (nth 3 lst_point_w) (nth 4 lst_point_w))
	  huong_13_xoy (angle (nth 3 lst_point_w) (nth 5 lst_point_w))
	  huong_ab_xoy (angle (nth 0 lst_point_w) (nth 1 lst_point_w))
	  huong_ac_xoy (angle (nth 0 lst_point_w) (nth 2 lst_point_w))
	  )
(command "ucs" "za" '(0 0 0) '(1 0 0))
(setq huong_12_yoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 4 lst_point_w) 0 1))
	  huong_13_yoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 5 lst_point_w) 0 1))
	  huong_ab_yoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 1 lst_point_w) 0 1))
	  huong_ac_yoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 2 lst_point_w) 0 1))
	  )
(command "ucs" "za" '(0 0 0) '(1 0 0))
(setq huong_12_xoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 4 lst_point_w) 0 1))
	  huong_13_xoz (angle (trans (nth 3 lst_point_w) 0 1) (trans (nth 5 lst_point_w) 0 1))
	  huong_ab_xoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 1 lst_point_w) 0 1))
	  huong_ac_xoz (angle (trans (nth 0 lst_point_w) 0 1) (trans (nth 2 lst_point_w) 0 1))
	  )
(command "ucs" "na" "r" "save_ucs")
;=====================================================================
(cond
	((and 
		(equal huong_12_xoy huong_ab_xoy 1e-5) 
		(equal huong_12_yoz huong_ab_yoz 1e-5)
		(equal huong_12_xoz huong_ab_xoz 1e-5)
		)
		(cond
			((and 
				(equal huong_13_xoy huong_ac_xoy 1e-5) 
				(equal huong_13_yoz huong_ac_yoz 1e-5)
				(equal huong_13_xoz huong_ac_xoz 1e-5)
				)
				(princ "\nAlign = Copy ! ")
				(princ)
			)
			(t 
				(setq pt_phu (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
					  pt_phu_w (trans pt_phu 1 0))
				(command "ucs" "za" pt_1 pt_2)
				(command "rotate" new "" 
					(setq base (trans (nth 3 lst_point_w) 0 1))
					(- (angle base (trans (nth 5 lst_point_w) 0 1)) (angle base (trans pt_phu_w 0 1)))
					)
			)
		)
	)
	;========================================================
	((and 
		(or (equal (+ huong_12_xoy pi) huong_ab_xoy 1e-5) (equal (- huong_12_xoy pi) huong_ab_xoy 1e-5))
		(or (equal (+ huong_12_yoz pi) huong_ab_yoz 1e-5) (equal (- huong_12_yoz pi) huong_ab_yoz 1e-5))
		(or (equal (+ huong_12_xoz pi) huong_ab_xoz 1e-5) (equal (- huong_12_xoz pi) huong_ab_xoz 1e-5))
		)
			(setq truc (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
				  truc_w (trans truc 1 0))
			(setq anh (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
				  anh_w (trans anh 1 0))
			(command "ucs" "za" pt_1 truc)
			(command "rotate" new "" (setq base (trans (nth 3 lst_point_w) 0 1)) pi)
			(setq pt_phu2_2d
				(polar 
						base 
						(+ pi (angle base (setq anh_c (trans anh_w 0 1)))) 
						(distance base (list (car anh_c) (cadr anh_c)))
						)
				pt_phu2_w_3d (trans (list (car pt_phu2_2d) (cadr pt_phu2_2d) (last anh_c)) 1 0)
				)
			(cond
				((and 
					(equal huong_13_xoy huong_ac_xoy 1e-5) 
					(equal huong_13_yoz huong_ac_yoz 1e-5)
					(equal huong_13_xoz huong_ac_xoz 1e-5)
					)
					(princ)
				)
				((and 
					(or (equal (+ huong_13_xoy pi) huong_ac_xoy 1e-5) (equal (- huong_13_xoy pi) huong_ac_xoy 1e-5))
					(or (equal (+ huong_13_yoz pi) huong_ac_yoz 1e-5) (equal (- huong_13_yoz pi) huong_ac_yoz 1e-5))
					(or (equal (+ huong_13_xoz pi) huong_ac_xoz 1e-5) (equal (- huong_13_xoz pi) huong_ac_xoz 1e-5))
					)
					(command "ucs" "za" base (mapcar '(lambda (x) (* 0.5 x)) (mapcar '+ (trans pt_phu2_w_3d 0 1) (trans (nth 4 lst_point_w) 0 1))))
					(command "rotate" new "" (trans (nth 3 lst_point_w) 0 1) pi)
				)
				(t 
					(command "ucs" "3p" base (trans (nth 5 lst_point_w) 0 1) (trans truc_w 0 1))
					(command "rotate" new ""
						(setq base (trans (nth 3 lst_point_w) 0 1))
						(* -1 (angle base (trans truc_w 0 1)))
					)
				)
			)
	)
	;==================================================================
	(t 
		(cond
			((and 
					(equal huong_13_xoy huong_ac_xoy 1e-5) 
					(equal huong_13_yoz huong_ac_yoz 1e-5)
					(equal huong_13_xoz huong_ac_xoz 1e-5)
					)
					(setq pt_phu (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
						  pt_phu_w (trans pt_phu 1 0))
					(command "ucs" "za" pt_1 pt_3)
					(command "rotate" new "" 
						(setq base (trans (nth 3 lst_point_w) 0 1))
						(- (angle base (trans (nth 4 lst_point_w) 0 1)) (angle base (trans pt_phu_w 0 1)))
					)
			)
			((and 
					(or (equal (+ huong_13_xoy pi) huong_ac_xoy 1e-5) (equal (- huong_13_xoy pi) huong_ac_xoy 1e-5))
					(or (equal (+ huong_13_yoz pi) huong_ac_yoz 1e-5) (equal (- huong_13_yoz pi) huong_ac_yoz 1e-5))
					(or (equal (+ huong_13_xoz pi) huong_ac_xoz 1e-5) (equal (- huong_13_xoz pi) huong_ac_xoz 1e-5))
					)
					(setq truc (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
						  truc_w (trans truc 1 0))
					(setq anh (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
						  anh_w (trans anh 1 0))
					(command "ucs" "za" pt_1 truc)
					(command "rotate" new "" (setq base (trans (nth 3 lst_point_w) 0 1)) pi)
					(command "ucs" "3p" base (trans (nth 4 lst_point_w) 0 1) (trans truc_w 0 1))
					(command "rotate" new ""
						(setq base (trans (nth 3 lst_point_w) 0 1))
						(* -1 (angle base (trans truc_w 0 1)))
					)
			)
			(t
				(setq pt_phu (mapcar '+ pt_1 (mapcar '- pt_b pt_a))
					  pt_phu_w (trans pt_phu 1 0)
					  pt_phu2 (mapcar '+ pt_1 (mapcar '- pt_c pt_a))
					  pt_phu2_w (trans pt_phu2 1 0))
				(command "ucs" "3p" pt_1 pt_2 pt_phu)
				(command "rotate" new "" 
					(setq base (trans (nth 3 lst_point_w) 0 1)) 
					(setq ang (* -1 (angle base (trans pt_phu_w 0 1))))
				)
				(setq pt_phu_2d 
						(polar 
							base 
							(+ ang (angle base (setq anh_c (trans pt_phu2_w 0 1)))) 
							(distance (list (car base) (cadr base)) (list (car anh_c) (cadr anh_c))))
					  pt_phu_3d (list (car pt_phu_2d) (cadr pt_phu_2d) (last anh_c))
					  pt_phu_w_3d (trans pt_phu_3d 1 0))
				(command "ucs" "za" (trans (nth 3  lst_point_w) 0 1) (trans (nth 4  lst_point_w) 0 1))
				(command "rotate" new "" 
					(setq base (trans (nth 3 lst_point_w) 0 1))
					(- (angle base (trans (nth 5 lst_point_w) 0 1)) (angle base (trans pt_phu_w_3d 0 1)))
				)
			)
		)
	)
)
(command "ucs" "na" "r" "save_ucs")
(command "ucs" "na" "d" "save_ucs")
;(command "-view" "r" "save_v")
;(command "-view" "d" "save_v")
(mapcar 'setvar lst_va old)
(princ)
)
  • 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

Chắc là haanh đã thử lisp trong bài này:

@ Tue_NV:

Nghe lời "xúi dại" của bác, em làm công cụ thay cho 3dalign ^^

Quả thật 2d thì còn dễ ngốn chứ quả 3d này đã làm em mất ngày chủ nhật đó :D :D :D

 

Tạm xong, em đưa lên đây xin đá ^^ :D :D :D

Đến khi ổn thì em cho vào code !

.............................

Lỗi tại ko đọc kĩ hdsd trước khi dùng ^^

 

Giờ thì có cái để thử rồi đây !

Hơi dài, do chưa tìm đc cách rút ngắn code

 

Mèo đen, mèo trắng miễn là bắt đc chuột :D :D :D

p/s: Lệnh là VE nghe haanh ^^

;lisp ve duong ong 3d

(defun c:VE(/ lst_va old D ss lst_TC_DUC cao_tam_cut R path cut base_w lst_ver lst_w obj i ss_ong ss_cut n len dau cuoi)

http://www.cadviet.com/forum/topic/43060-hoi-lisp-thao-tac-trong-3d/page-4

 

 

Cảm ơn anh Hiệp nhiều nhé!

. Lisp của anh có thể chống đói cho bà con dân làng Cấp tốc thoát nước được rồi vì dân Cấp tốc thoát nước không phải vẽ nhiều.

Tạm mời anh nghỉ dưỡng một thời gian để đánh cốt  lại đường...ống . Em sẽ nâng cấp lisp sang bài 2  để chống đói cho bà con dân làng Cơ khí sau nhé!

 

P/S: Mèo trắng mà rình chuột ở bức tường mầu đen và ngược lại mèo đen rình chuột ở bức tường mầu trắng được gọi là... báo hại gia 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

@ Hoằn:

Cái này chỉ tạo ra sai số về độ lệch tâm của cút so với tim chuẩn (đường 3dpolyline)

 

>>> sẽ ko có lỗ ... hoặc "lỗ nhỏ" mình bù đc mà :D :D :D

 

2- Lips của anh chạy nhanh nhưng sau đó nó tắt luôn tất cả chế độ bắt điểm

làm cho nhà ngói như nhà tranh mới gọi là chẳng biết đâu mà lần, anh ạ! :) :) :)

1- Giả sử layer hiện hành là laye ốngDN50 mầu xanh em muốn khi thực hiện xong lệnh VE thì

tất cả các cút sẽ chuyển sang layer cútDN50 mầu vàng . Như vậy thì anh sẽ trốn được dính chùm như Array trong Autocad2012. Khi tính tổng số lượng cút chỉ việc tắt các layer khác đi để tính số lượng cú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

2- Lips của anh chạy nhanh nhưng sau đó nó tắt luôn tất cả chế độ bắt điểm

làm cho nhà ngói như nhà tranh mới gọi là chẳng biết đâu mà lần, anh ạ! :) :) :)

1- Giả sử layer hiện hành là laye ốngDN50 mầu xanh em muốn khi thực hiện xong lệnh VE thì

tất cả các cút sẽ chuyển sang layer cútDN50 mầu vàng . Như vậy thì anh sẽ trốn được dính chùm như Array trong Autocad2012. Khi tính tổng số lượng cút chỉ việc tắt các layer khác đi để tính số lượng cút

 

2 --> Hoằn đang nói đến lisp nào vậy ?

Đã cập nhật đến phiên bản V1.n ở #80 ==> Hoằn xem lại chứ hình như nhà Hoằn đã là nhà tranh từ trước ấy chứ :D :D :D

 

1 --> Đang dính 1 chùm =group rồi đó, thích sang layer nào chỉ cần túm cổ 1 cái rồi vô properties mà chỉnh thì nó đi cả chùm thôi

(nếu là thống kê ko thì nó đã đếm sẵn)

Nếu cần tự động set layer thì đợi phiên bản sau với những tính năng mới (do haanh đưa ra) rồi cập nhật luôn vậy !

  • 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à em mái ngói đỏ hồng
Mọc lên tươi thắm giữa đồng lúa xanh
Gió về đồng lúa reo quanh
Hàng ngày những em vẫn  ...chạy nhanh về nhà..." :) :) :)

Em đang dùng phiên bản V1.n ở #80 >>> nó không dính chùm như Array trong AutoCAD2012, anh ạ! >>>Vẫn bị tắt tất cả các chế độ bắt điểm >>>"Nhà ngói như nhà gianh" >>> Chẳng dòm thấy chẳng dòm thấy cái gì!

Anh muốn chơi kiểu gì cũng được miễn mà thống kê được tổng số lượng cút DN50 và các loại ống DN khác/ 1 công trình nhanh là ...OK!

Em chỉ dám xài AutoCAD2007 để thử, chưa dám dùng AutoCAD2013. Không biết có phải lisp của anh của anh xung khắc với AutoCAD2007 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

Chuyện xung khắc ko thì mình vẫn chưa dám chắc, nhưng ởở đây nếu cad ko báo lỗi mà làm "nhà ngói thành nhà tranh" thì quả thực rất lạ

  • 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

Sau khi dùng lisp mất điện nhà ngói như nhà tranh luôn em vừa thử lại rồi không thấy nó báo lỗi,  anh Hiệp ạ! Tính năng dính chùm như Array trong ÂutoCAD cũng không có.

 

P/S: Nếu rảnh có thể vào đây xem các phương pháp khai triển,rồi vào đố vui chém gió cho vui nhé!http://www.cadviet.com/forum/topic/94955-khai-triafn-giup-giao-tuyazn-ang/

Chị Hà em nhờ anh viết lisp, em vào đây viết bài mang tính phản biện, chứ em không dám chém gió như trong câu đố vui. Dẫu chỉ là đố vui, em chỉ viết vui vẻ một tí, đã bị  chị ấy  mắng tung tóe như vỡ đường ống:

 

P/s: @Hoằn: Trước khi phát ngôn gì em phải trông trước ngó sau. mục đính ra câu đố của chị là để tìm ra nhiều cách làm khác nhau, chia sẽ và học hỏi kinh của người khác để bổ xung vào kiến thức của mình.

Các cụ bảo chỉ có phi thương bất phú thôi; nghề kỹ thuật bạc bẽo lắm, khi lên voi lúc xuống chó là chuyện thường, không ai có thể nói trước được điều gì. Dù sai cơ bản hay đúng cơ bản, xưa nay chẳng ai chết đói vì làm kỹ thuật cả, và trong bộ luật hình sự cũng không có điều luật phạt về tội nói phét vô thưởng vô phạ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

Bác Doanvanha co´ thể nói cụ thể hơn ko ?!

Tuy rằng e get vaˋ set trong cả hàm chính & hàm con, nhưng e đa˜ khai ràng no´ laˋ biến cục bộ cả rồi maˋ

E nghi˜ rằng như thê´ thiˋ no´ chẳng liên quan giˋ nhau ^^

  • 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

Bác Doanvanha co´ thể nói cụ thể hơn ko ?!

Tuy rằng e get vaˋ set trong cả hàm chính & hàm con, nhưng e đa˜ khai ràng no´ laˋ biến cục bộ cả rồi maˋ

E nghi˜ rằng như thê´ thiˋ no´ chẳng liên quan giˋ nhau ^^

Bạn hãy tự đặt osnap bất kỳ, sau đó test.

Từ đó rút ra vì sao nó lại thế. Tôi test rồi mới ý kiến. 

  • 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

@ bác DoanVanHa:

Mấy hôm nay bận quá e ko kiểm tra (theo ý kiến của bác) được

Nay e đã thử >>> ko có chuyện đó mà ???

 

Bác test lại, soi xét lại giùm em đi ^^

  • 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

@ bác DoanVanHa:

Mấy hôm nay bận quá e ko kiểm tra (theo ý kiến của bác) được

Nay e đã thử >>> ko có chuyện đó mà ???

 

Bác test lại, soi xét lại giùm em đi ^^

Hè! Trước đây, tôi test với bản vẽ không có 3DPoly >> mất osnap (nhưng không lỗi). Nay test có 3DPoly đầy đủ >> OK.

>> nên đặt việc set ra ngoài, chứ bạn đặt trong if là không nên.

  • 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

Thank bác !

Là do em trong quá trình sửa code dài quá nên "đặt nhầm chỗ" CHứ chủ ý của e ko phải vậy ^^

 

>>> Em edit lại chỗ cũ !

Ah! còn THợp nếu 3dpolyline là 1 dt thì vẫn lỗi, sẽ sửa lại sau nếu "ai đó" có nhu cầu

  • 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

Lên xe buýt, "đi ô tô của chính phủ" mà anh đặt tay nhầm chỗ là gay go to đó! :) :) :)

Em thử lại lisp của anh rồi, không bị lỗi nữa.

Cảm ơn anh Hiệp nhiều nhé! Tác phẩm đầu tay của anh rất hoành tráng và ấn tượng!

Em sẽ lập chủ đề mới để nâng cấp vẽ 3D đường ống nhằm rút ngắn thời gian vẽ, anh nhiệt tình tham gia viết tiếp 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. Vẫn chưa "ra nghề" nên dẫu có lỗi gì cũng còn có thầy Két chống lưng nên chẳng có gì phải sợ chuyện gay to gay nhỏ haanh àh ! :D :D :D

2. Chỉ là múa rùi qua mắt thợ thôi ! Các hạ quá khen ! :D

3. Dạo này mình cũng ko có nhiều thời gian lắm, song, nếu đề ra vừa sức thì mình sẽ "thử nhiệt tình" !

  • 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

Hiện nay có rất nhiều phầm mềm vẽ đường ống, ưu điểm chính của nó là nhanh vì nó tích hợp nhiều tư liệu vẽ Bích, Van, và các phụ kiện đường ống theo đúng Cataloge của các hãng nổi tiếng trên thế giới, khiến cho việc thiết kế nhanh chóng và thuận tiện. Tuy nhiên nó chỉ là trò chơi của con nhà giàu. Con nhà nghèo như dân Cơ khí và Cấp tốc thoát nước hiện tại chưa thể đánh đu với trò chơi đó được.

Phụ kiện đường ống đang trôi nổi trên thị trường rất đa dạng dạng về kích thước kiểu dáng và chất lượng. Làm xong công trình nào biết công trình đó thôi, có khi tạo được file thư viện xong, chẳng bao giờ dùng lại được nữa.

Cái khó của người thiết kế là không được thiết kế tự do theo ý thích của mình. Chủ đầu tư hào phóng quăng ra một cục tiền to, rất dễ lưa chọn phụ kiện, thao hồ vẽ hươu vẽ vượn.

Chủ đầy tư kẹt xỉn chỉ chi tiền nhỏ giọt, hoặc chủ đầu tư chỉ có một cục tiền nhỏ. Việc lựa chọn phụ kiện để hợp với túi tiền của chủ đầu tư vẫn là bài toán vô số nghiệm! (Không thể vẽ hươu vẽ vượn được mà chỉ vẽ được con giun thôi)

Bởi vậy, vẽ đường ống 3D trên AutoCAD vẫn là trò chơi của con nhà nghèo, anh Hiệp ạ!

Bữa nào rảnh anh thư giãn với Lisp vẽ đường ống cũng được.... :) :) :)

Bài 2: (Nâng cấp thêm tí ti thôi nhé)

11837_ha1.png

 

Cho layer hiện hành (layer đang vẽ) là layer mầu tím, các layer Ống DN50 và Cút DN50 đã có sẵn từ trước;

Sau khi thực hiện lisp trên layer hiện hành sẽ ra được ống và cút mang  layer  như hình vẽ và đường 3dpoly sẽ tự động biến mất để giảm dung lượng.

Mục đích : Sau khi vẽ xong toàn bộ bản vẽ >>> tắt tất cả các layer , chỉ còn để lại layer Cút DN50 để biết được số lượng của nó

  • 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

Đã mất công nâng cấp thì nâng thêm tí gì nữa đi cho bỏ công haanh ah ! Có thể thêm tí râu ria gì đó ...

Có thể là các thông tin mặc đinh của layer ống & cút để nhỡ vẽ trên bản vẽ mới thì ta tạo luôn layer đó tránh xả ra lỗi ...

  • 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

Vậy là anh Hiệp đã  ...OK rồi nhé! :) :) :)

Đó chỉ là ý tưởng của em, giờ anh muốn làm gì thì làm theo ý thích của mình,  em cũng đồng ý giơ cả hai tay luôn>>> Miễn là kết quả cuối cùng sau khi vẽ hoàn thiện bản tổng , có được số lượng thống kê tổng số của các chủng loại đường ống và cút khác nhau là được, anh ạ!

Chủ đề này luôn kính chào quý khách, xin mời các bác "Blisge" cùng thư giãn xóa đói giảm nghèo cho bà con dân làng Cơ khí và Cấp tốc thoát nước, em xin được nhiệt liệt cám ơn trước và đính kèm thêm cả cám ơn sau nữa ...hi ,,,hi,,,!

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. Vẫn chưa "ra nghề" nên dẫu có lỗi gì cũng còn có thầy Két chống lưng nên chẳng có gì phải sợ chuyện gay to gay nhỏ haanh àh ! :D :D :D

2. Chỉ là múa rùi qua mắt thợ thôi ! Các hạ quá khen ! :D

3. Dạo này mình cũng ko có nhiều thời gian lắm, song, nếu đề ra vừa sức thì mình sẽ "thử nhiệt tình" !

Các bài viết của Anh Hiệp trên diễn đàn, nếu có "đặt nhầm chỗ" , thầy Ketxu có thể giang tay đỡ được. Đi xe buýt mà anh "đặt tay nhầm chỗ" chắc thầy Két sợ ...liên luỵ , chẳng dám chống lưng đâu! Cảnh sát hình sự sẽ tóm gọn cả thầy lẫn trò đó! :) :) :)

Em đùa vậy thôi, anh đừng giận nhé!

Không hiểu ý của chị Hà em thế nào, em vẫn thích là sau khi thực hiện lệnh, lisp sẽ cho ra các các loại cút  DN50 (Theo tiêu chuẩn của Đức) hoặc cút 50A ( Theo tiêu chuẩn Nhật và Đài Loan) được dính chùm như khi thực hiện lệnh Array trong AutoCAD từ 2012 trở lại đây.

Vì số lượng ống cút trong một công trình tính bằng đơn vị Container, nếu không được dính chùm thì việc Zoom, pan, copy và di chuyển sẽ rất rất chậm, đòi hỏi máy có cấu hình cao mới nhanh được.

(Anh Hiệp nhớ lưu ý đến vấn đề dính chùm 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

@Hoằn:

Nếu ở máy của Hoằn khi chạy lisp trên vẫn ko dính chùm cút (ống) thì Hoằn có thể thực hiện lênh group để dính chùm vài đối tượng nào đó rồi F2 >>> copy/paste dòng lệnh lên xem sao ???

  • 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

Rắc rồi quá anh Hiệp ạ!

Em đã tham khảo 2 bài viết:

http://www.cadviet.com/forum/topic/9332-giup-do-ve-lenh-group/

http://www.cadviet.com/forum/topic/14100-huong-dan-em-cach-dung-lenh-group-voi/

Mà chẳng hiểu ra làm sao cả???

Command: group
Command: GROUPDISPLAYMODE Unknown command "GROUPDISPLAYMODE".  Press F1 for
help.
Command: -> Unknown command "->".  Press F1 for help.
Command: 0
Unknown command "0".  Press F1 for help.

114276_aaa000.jpg

Không thấy nó dính liền....chưa rõ tại sao???

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  

×