Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
5 replies to this topic

#1 hoapt8903

hoapt8903

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 28 July 2009 - 11:07 AM

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:
  • 0

#2 hoapt8903

hoapt8903

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 29 July 2009 - 10:23 AM

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.
  • 0

#3 ngochop

ngochop

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 29 July 2009 - 10:42 AM

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

#4 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 29 July 2009 - 11:19 AM

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ự.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#5 hoapt8903

hoapt8903

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 30 July 2009 - 09:21 AM

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.
  • 0

#6 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 31 July 2009 - 02:47 PM

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 "" "" "")
)
;;;-------------------------------------------------------------

  • 2