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

tạo Block cho các đối tuợng vừa vẽ

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

Em xin chào các anh chị trên diễn đàn.

Em mới làm quen nới lisp nên ko rành lém, mạo muội nhờ các anh chị chỉ jum. Em đang muốn viết 1 lisp tạo 1 Block cho các đối tuợng em vẽ bằng lisp. Mong các anh chị trên diễn đàn chỉ giùm em với. :s_dead:

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 ko ai reply ai hết nhỉ, em đang cần cái này lắm lắm. nhờ mấy anh chỉ giùm em với.

Bạn vào mục tìm kiếm xem có không

  • 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
Em xin chào các anh chị trên diễn đàn.

Em mới làm quen nới lisp nên ko rành lém, mạo muội nhờ các anh chị chỉ jum. Em đang muốn viết 1 lisp tạo 1 Block cho các đối tuợng em vẽ bằng lisp. Mong các anh chị trên diễn đàn chỉ giùm em với. :s_dead:

Cách củ chuối nhất như sau:

-Vẽ ra 1 đối tượng. Tạo nó thành block với lựa chọn last.

-Chèn cái block vừa tạo ra, x nó ra. Vẽ đối tượng tiếp theo. Tạo block với lựa chọn Previous và lựa chọn last

Sẽ có block với 2 đối tượng vừa vẽ. Tìn thêm trên diển đàn với tên thành viên tue_VN có nói cách chọn các đối tượng sinh ra bời lệnh BO. Về nguyên tắc công việc bạn cần là tương tự.

  • 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

Em xin chân thành cảm ơn anh Duy nhiều. Nhưng thật sự là em mới làm quen với lisp nên cũng ko hiểu ý của anh. Em đưa file lisp của em lên. anh code cho em 1 đoạn với

 (defun c:brt (/)
(setq OS (getvar "OSMODE"))
(setq PB (getvar "PICKBOX"))
 (setvar "PICKBOX" 3)
 (setvar "OSMODE" 0)
 (setq	d 40
  d1  235
da1 240
df1 227
b 44
delta 10
l 50
Dlon 60
C 15
bt 12
ht 3.3
ct 3.7
dlo 0
dl1 (- (/ (- df1 Dlon) 4.0) (/ delta 2.0) (/ dlo 2.0))
dl2 (- (/ (- df1 Dlon) 4.0) (/ delta 2.0) (/ dlo 2.0))
v1 2
r1 3
goc 0
)
 (setq O (getpoint "chon diem chen"))
 (setq A1 (polar O (/ pi 2) (/ da1 2.0))
  A2 (polar (polar O 0 b) (/ PI 2) (/ da1 2))
  A3 (polar (polar O 0 b) (/ PI 2) (/ df1 2))
	A4 (polar (polar O 0 b) (/ PI 2) (- (/ df1 2.0) delta))
  A5 (polar A4 pi (/ (- b C) 2.0) )
  A6 (polar A5 (/ (* 3 pi) 2) dl1)
A7 (polar A6 (/ (* 3 pi) 2) dlo)
A8 (polar A7 (/ (* 3 pi) 2) dl2)
A9 (polar A8 0 (/ (- b C) 2.0) )
A10 (polar A9 (/ (* 3 pi) 2) (- (/ (- Dlon d) 2.0) ht))
A11 (polar (polar O 0 b) (/ (* 3 pi) 2) (+ (/  d 2.0) 2.0))
A12 (polar (polar O 0 b) (/ (* 3 pi) 2) (/  Dlon 2.0))
A13 (polar A12 pi (/  (- b c) 2.0))
A14 (polar A13 (/ (* 3 pi) 2) dl2)
A15 (polar A14 (/ (* 3 pi) 2) dlo)
A16 (polar A15 (/ (* 3 pi) 2) dl1)
A17 (polar (polar O 0 b) (/ (* 3 pi) 2) (- (/ df1 2.0) delta))
A18 (polar (polar O 0 b) (/ (* 3 pi) 2) (/ df1 2.0) )
A19 (polar (polar O 0 b) (/ (* 3 pi) 2) (/ da1 2.0) )
A20 (polar A19 pi b )
A21 (polar A18 pi b )
A22 (polar A17 pi b )
A23 (polar A16 pi C )
A24 (polar A15 pi C )
A25 (polar A14 pi C )
A26 (polar A13 pi C )
A27 (polar A12 pi b )
A28 (polar A12 pi l )
A29 (polar A11 pi l )
A30 (polar A10 pi l )
A31 (polar A9 pi l )
A32 (polar A9 pi b )
A33 (polar A8 pi c )
A34 (polar A7 pi c )
A35 (polar A6 pi c )
A36 (polar A5 pi c )
A37 (polar A4 pi b )
A38 (polar A3 pi b )
B1 (polar (polar A30 0 2.0) (/ (* 3 pi) 2) ct)
B1b (polar (polar B1 pi 2) (/ pi 2) 2)
B2 (polar B1 0 (- l 4))
B2b (polar (polar B2 0 2) (/ pi 2) 2)
B4 (polar (polar A29 0 2) (/ pi 2) 2)
B3 (polar B4 0 (- l 4))

C1 (polar A1 (* 1.5 pi) v1)
C2 (polar A1 0 v1)
C3 (polar A2  pi v1)
C4 (polar A2 (* 1.5 pi) v1)
C5 (polar A5 0 r1)
C6 (polar A5 (* 1.5 pi) r1)
C7 (polar A8 (* 0.5 pi) r1)
C8 (polar A8 0 r1)
C9 (polar A9 pi r1)
C10 (polar A9 (* 1.5 pi) r1)
C11 (polar A31 (* 1.5 pi) r1)
C12 (polar A31 0 r1)
C13 (polar A33 pi r1)
C14 (polar A33 (* 0.5 pi) r1)
C15 (polar A36 (* 1.5 pi) r1)
C16 (polar A36 pi r1)

C1b (list (Car C1) (- (* 2.0 (cadr O)) (cadr C1)) )
C2b (list (Car C2) (- (* 2.0 (cadr O)) (cadr C2)) )
C3b (list (Car C3) (- (* 2.0 (cadr O)) (cadr C3)) )
C4b (list (Car C4) (- (* 2.0 (cadr O)) (cadr C4)) )
C5b (list (Car C5) (- (* 2.0 (cadr O)) (cadr C5)) )
C6b (list (Car C6) (- (* 2.0 (cadr O)) (cadr C6)) )
C7b (list (Car C7) (- (* 2.0 (cadr O)) (cadr C7)) )
C8b (list (Car C8) (- (* 2.0 (cadr O)) (cadr C8)) )
C9b (list (Car C9) (- (* 2.0 (cadr O)) (cadr C9)) )
C10b (list (Car C10) (- (* 2.0 (cadr O)) (cadr C10)) )
C11b (list (Car C11) (- (* 2.0 (cadr O)) (cadr C11)) )
C12b (list (Car C12) (- (* 2.0 (cadr O)) (cadr C12)) )
C13b (list (Car C13) (- (* 2.0 (cadr O)) (cadr C13)) )
C14b (list (Car C14) (- (* 2.0 (cadr O)) (cadr C14)) )
C15b (list (Car C15) (- (* 2.0 (cadr O)) (cadr C15)) )
C16b (list (Car C16) (- (* 2.0 (cadr O)) (cadr C16)) )
)
(if (equal 0 dlo)
(command "zoom" "w" (polar O (* 0.5 pi) (+ (/ da1 2) 10) ) (polar A19 (* 1.75 pi) 5) ""
   "line" A38 C1 C2 C3 C4 A3 ""
 "pline" A38 A3 A4 C5 "A" "R" r1 C6 "l" A6 C7 "A" "R" r1 C8 "L" C9 "A" "D" A9 C10 "L" A10 A30 C11 "A" "D" A31 C12 "L"  C13 "A" "R" r1 C14 "L" A35 C15 "A" "R" r1 C16 "l" A37 A38 ""
 "line" A37 (polar A32 (* 1.5 pi) 3) ""
 "zoom" "w" (polar A32 (* 0.75 pi) 15) (polar A32 (* 1.75 pi) 15) ""
	 "trim" "" (ssget (polar A32 (* 1.5 pi) 3)) ""

 "line" A21 C1b C2b C3b C4b A18""
 "pline" A21 A22 C16b "A" "R" r1 C15b "l" A24 A25 C14b "A" "R" r1 C13b "L" C12b "A" "D" A28 C11b "L" A29 B4 B3 A11 C10b "A" "D" A12 C9b "L" C8b "A" "R" r1 C7b "L" C6b "A" "R" r1 C5b "l" A17 A18 A21 ""
 "line" A22 (polar A27 (* 0.5 pi) 3) ""
 "zoom" "w" (polar A27 (* 0.75 pi) 15) (polar A27 (* 1.75 pi) 15) ""
	 "trim" "" (ssget (polar A27 (* 0.5 pi) 3)) ""	  

 "color" "3" ""
 "zoom" "w" (polar A38 (* 0.75 pi) 5) (polar A7 0 (/ b 2))""
  "hatch" "ansi31" 10 goc (polar A38 0 (/ b 2)) ""
	  "zoom" "w" (polar A21 (* 1.75 pi) 5) (polar A14 (* 0 pi) (/ b 2)) ""
  "hatch" "ansi31" 10 goc (polar A21 0 (/ b 2)) ""
  "color" "ByLayer" ""

 "line" A4  C10 ""
 "line" A17 C10b ""
 "line" B1b B1 B2 B2b ""
 "line" B1 B4 ""
 "line" B2 B3 ""
 "line" A30 A29 ""
 "line" A11 A10 ""

 "color" "1" ""
 "line" (polar O pi (- l (- b 5))) (polar O 0 (+ l 5)) ""
	 "line" (polar (polar O (* 0.5 pi) (/ d1 2)) pi 5) (polar (polar (polar O (* 0.5 pi) (/ d1 2)) pi 5) 0 (+ b 10)) ""
 "line" (polar (polar O (* 1.5 pi) (/ d1 2)) pi 5) (polar (polar (polar O (* 1.5 pi) (/ d1 2)) pi 5) 0 (+ b 10)) ""
 "color" "bylayer" ""
 "zoom" "w" (polar O (* 0.5 pi) (+ (/ da1 2) 10) ) (polar A19 (* 1.75 pi) 5) ""
 )

 (command "zoom" "w" (polar O (* 0.5 pi) (+ (/ da1 2) 10) ) (polar A19 (* 1.75 pi) 5) ""
   "line" A38 C1 C2 C3 C4 A3 ""
 "pline" A38 A3 A4 C5 "A" "R" r1 C6 "l" A6 A35 C15 "A" "R" r1 C16 "l" A37 A38 ""
 "pline" A30 C11 "A" "D" A31 C12 "L"  C13 "A" "R" r1 C14 "L" A34 A7 C7 "A" "R" r1 C8 "L" C9 "A" "D" A9 C10 "L" A10 A30  ""
	 "line" A37 (polar A32 (* 1.5 pi) 3) ""
 "zoom" "w" (polar A32 (* 0.75 pi) 15) (polar A32 (* 1.75 pi) 15) ""
	 "trim" "" (ssget (polar A32 (* 1.5 pi) 3)) ""

 "line" A21 C1b C2b C3b C4b A18""
 "pline" A21 A22 C16b "A" "R" r1 C15b "l" A24 A15 C6b "A" "R" r1 C5b "l" A17 A18 A21 ""
 "pline" A29 C11b "A" "R" r1  C12b "L" C13b "A" "D" A26 C14b "L" A25 A14 C7b "A" "D" A13 C8b "L" C9b "A" "D" A12 C10b "L" A11 B3 B4 A29  ""
	 "line" A22 (polar A27 (* 0.5 pi) 3) ""
 "zoom" "w" (polar A27 (* 0.75 pi) 15) (polar A27 (* 1.75 pi) 15) ""
	 "trim" "" (ssget (polar A27 (* 0.5 pi) 3)) ""	  
 "color" "3" ""

 "zoom" "w" (polar A38 (* 0.75 pi) 5) (polar A7 0 (/ b 2))""
  "hatch" "ansi31" 10 goc (polar A38 0 (/ b 2)) ""
  "zoom" "w" (polar A30 (* 1.25 pi) 5) (polar A6 0 (/ b 2)) ""
  "hatch" "ansi31" 10 goc (polar A30 0 (/ l 2)) ""
	  "zoom" "w" (polar A21 (* 1.75 pi) 5) (polar A14 (* 0 pi) (/ b 2)) ""
  "hatch" "ansi31" 10 goc (polar A21 0 (/ b 2)) ""
  "zoom" "w" (polar A29 (* 0.75 pi) 15) (polar A15 0 (/ b 2)) ""
  "hatch" "ansi31" 10 goc A29 ""
  "color" "ByLayer" ""

 "line" A35 A34 ""
 "line" A6 A7 ""
 "line" A25 A24 ""
 "line" A14 A15 ""
 "line" A4  (polar A9 (* 1.5 pi) r1) ""
 "line" A17 (polar A12 (* 0.5 pi) r1) ""
 "line" B1b B1 B2 B2b ""
 "line" B1 B4 ""
 "line" B2 B3 ""
 "line" A30 A29 ""
 "line" A11 A10 ""

 "color" "1" ""
 "line" (polar O pi (- l (- b 5))) (polar O 0 (+ l 5)) ""
	 "line" (polar (polar O (* 0.5 pi) (/ d1 2)) pi 5) (polar (polar (polar O (* 0.5 pi) (/ d1 2)) pi 5) 0 (+ b 10)) ""
 "line" (polar (polar O (* 1.5 pi) (/ d1 2)) pi 5) (polar (polar (polar O (* 1.5 pi) (/ d1 2)) pi 5) 0 (+ b 10)) ""
 "line" (polar (polar A25 (* 1.5 pi) (/ dlo 2.0)) pi 5) (polar (polar A14 (* 1.5 pi) (/ dlo 2.0)) 0 5) ""
 "line" (polar (polar A35 (* 1.5 pi) (/ dlo 2.0)) pi 5) (polar (polar A6 (* 1.5 pi) (/ dlo 2.0)) 0 5) ""
 "color" "bylayer" ""
 "zoom" "w" (polar O (* 0.5 pi) (+ (/ da1 2) 10) ) (polar A19 (* 1.75 pi) 5) ""

 )
)

(setvar "OSMODE" OS)
(setvar "PICKBOX" PB) 
 )

 

 

 

vấn đề của em là khi chạy lisp trên thì đc hình vẽ, nhưng em muốn Block cái bánh răng lại thành 1 Block cho dễ thao tác và lắp ghép với các đối tượng khác. Em xin cảm ơn trước.

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 xin chào các anh chị trên diễn đàn.

Em mới làm quen nới lisp nên ko rành lém, mạo muội nhờ các anh chị chỉ jum. Em đang muốn viết 1 lisp tạo 1 Block cho các đối tuợng em vẽ bằng lisp. Mong các anh chị trên diễn đàn chỉ giùm em với. :s_dead:

Bạn tham khảo ví dụ sau:

 

;;;-------------------------------------------------------------
(defun ThuGom (e / SS) ;;;Selection set from e to entlast
(setq SS (ssadd))
(while e (ssadd e SS) (setq e (entnext e)))
SS
)
;;;-------------------------------------------------------------
(defun C:MB( / e p)
;;;Chuan bi
(setq e (entlast))

;;;Tao cac doi tuong tuy y
(setq p (getpoint "\nBase point:"))
(command "circle" p 10 "circle" p 20 "circle" p 30)

;;;Tao va insert block tu cac doi tuong vua tao o tren
(if e (setq e (entnext e)) (setq e (entnext)))
(command "block" "MyBlock" p (ThuGom e) "")
(command "insert" "MyBlock" p "" "" "")
)
;;;-------------------------------------------------------------

  • 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ạ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  

×