Đến nội dung


Hình ảnh
- - - - -

Giúp mình cái lisp này


  • Please log in to reply
6 replies to this topic

#1 phitrongtuyen

phitrongtuyen

    biết zoom

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

Đã gửi 14 May 2012 - 11:17 AM

đây là lisp lần trước anh Hà cho mình.
giúp mình thêm lisp để ra hình như sau với.http://www.cadviet.c...24_drawing1.dwg
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 14 May 2012 - 11:44 AM

đây là lisp lần trước anh Hà cho mình.
giúp mình thêm lisp để ra hình như sau với.http://www.cadviet.c...24_drawing1.dwg

Với bản vẽ đó thì bạn vẽ 1 cái răng rồi array là xong ngay!
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 phitrongtuyen

phitrongtuyen

    biết zoom

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

Đã gửi 14 May 2012 - 12:04 PM

Với bản vẽ đó thì bạn vẽ 1 cái răng rồi array là xong ngay!

bạn có cách nào làm việc đó trên lisp không?mình gặp khó khăn khi bắt điểm đầu và cuối của đường thân khai
  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 14 May 2012 - 12:26 PM

bạn có cách nào làm việc đó trên lisp không?mình gặp khó khăn khi bắt điểm đầu và cuối của đường thân khai

1). Bạn post bài sai quy định. Hãy đọc nội quy post bài vào box autolisp.
2). Hình vẽ của bạn phải thể hiện đầy đủ kích thước diễn tả được chi tiết của mỗi răng. Tôi là người ngoại đạo nên nhìn hình không hiểu.
  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 Hai_YenLang

Hai_YenLang

    biết lệnh explore

  • Members
  • PipPipPipPipPipPip
  • 473 Bài viết
Điểm đánh giá: 149 (tàm tạm)

Đã gửi 14 May 2012 - 01:38 PM

Trong thực tế sản xuất, bản vẽ bánh răng được vẽ đại diện theo quy ước rồi đính kèm các thông số chế tạo bánh răng như mô-đun, bước...

Hình đã gửiHình đã gửi

Nếu bạn rỗi hơi, thừa thời gian vẽ hết tất cả các răng bằng lệnh Array cũng không sai.
Đây là lisp vẽ đường thân khai:

Có 1 cách là vẽ bằng đường spline. xác định 1 số điểm chính xác và nối lại bằng Spline. Nếu bạn biết sử dụng mã VBA thì đây là một đoạn mã để vẽ đường đường này(Ở đây r0 bằng 10)

Public Sub pratice()
Dim spl As AcadSpline
Dim i As Variant
Dim b(0 To 2) As Double
Dim p(0 To 2) As Double
Dim anpha As Double
Dim x1 As Double
Dim y1 As Double
Dim j As Integer
Dim step As Double
Dim l As Double
Dim r0 As Double
Dim p1(0 To 5) As Double
Dim startTan(0 To 2) As Double
Dim endTan(0 To 2) As Double


r0 = 10
l = 3 * r0
step = 5 * 3.14 / 180
i = ThisDrawing.Utility.GetPoint(, "Chon diem goc")
If Round(l / (r0 * step) - 0.5) > 1 Then
p1(0) = i(0) + l
p1(1) = i(1) + r0
p1(2) = 0
p1(3) = i(0) + r0 * Sin(step) + Cos(step) * (l - step * r0)
p1(4) = i(1) + r0 * Cos(step) - Sin(step) * (l - step * r0)
p1(5) = 0
startTan(0) = 0: startTan(1) = 0: startTan(2) = 0
endTan(0) = 0: endTan(1) = 0: endTan(2) = 0
Set spl = ThisDrawing.ModelSpace.AddSpline(p1, startTan, endTan)
Else
Exit Sub
End If
For j = 2 To Round(l / (r0 * step) - 0.5)
anpha = j * step
x1 = r0 * Sin(anpha)
y1 = r0 * Cos(anpha)
p(0) = i(0) + x1 + y1 / r0 * (l - anpha * r0)
p(1) = i(1) + y1 - x1 / r0 * (l - anpha * r0)
spl.AddFitPoint j, p
Next
'Ve duong tron
Dim cir As AcadCircle
Set cir = ThisDrawing.ModelSpace.AddCircle(i, r0)
End Sub

Còn đây là chương trình Autolisp tạo đường cong thân khai đường tròn tích hợp vào AutoCAD:
http://www.cadviet.c...04426_bai3b.pdf
  • 0
Đức hạnh lớn nhất mà bên cạnh đó, mọi đức hạnh khác đều mờ nhạt đi, đó là không làm hại ai và tùy sức mà giúp đỡ mọi người "
Người cảnh sát điều tra hình sự giỏi là người biết được tất cả những hành vi thủ đoạn trộm cắp của bọn trộm cắp, nhưng lại dốt ăn cắp ăn trộm ...

#6 hongtalinh2009

hongtalinh2009

    biết pan

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

Đã gửi 11 May 2013 - 02:46 PM

Lisp Ghi chiều dài thanh thép bên cạnh
Xin mọi người sửa giùm lisp sau.
Tôi muốn kết quả chiều cao chữ định sẵn , hoặc định một lần đầu, lần sau cứ enter là chiều cao chữ đó. ở đây tôi cứ mày mò ra được chiều cao chữ lần đầu sử dụng, nhưng enter thi cad không hiểu lệnh.
 
Mong mọi người giúp đỡ.
 
;; free lisp from cadviet.com
;; this lisp was downloaded from http://www.cadviet.c...?showtopic=3778
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq f (+ f mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:th (/ f ss e_name e_record e_type)
(setq f 0.0)
(setq ss (ssget))
(if (null ss)
(exit))
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")    
(setq f (+ f (getvar "PERIMETER")))
(ssdel e_name ss))
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))))
(setq p (getpoint "\n Chon diem nhap ket qua" ))
(if (not k) (setq k 1)) (setq h (getreal (strcat "\n Nhap chieu cao text < " (rtos k 2 2) " >: "))) (if h (setq k h))
(command "text" p h "0" (strcat(rtos f 2 0)))
;(prompt (strcat "\nTotal length is: " (rtos f 2 2)))
(princ));end

sửa giùm lisp nay mình, mình muốn nó định cỡ chữ sẵn, hoặc định một lần rồi lần sau tiếp tục lấy giá trị đó.
Thanhkyou

;; free lisp from cadviet.com
;; this lisp was downloaded from http://www.cadviet.c...?showtopic=3778
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq f (+ f mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:th (/ f ss e_name e_record e_type)
(setq f 0.0)
(setq ss (ssget))
(if (null ss)
(exit))
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")
(setq f (+ f (getvar "PERIMETER")))
(ssdel e_name ss))
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))))
(setq p (getpoint "\n Chon diem nhap ket qua" ))
(if (not k) (setq k 1)) (setq h (getreal (strcat "\n Nhap chieu cao text < " (rtos k 2 2) " >: "))) (if h (setq k h))
(command "text" p h "0" (strcat(rtos f 2 0)))
;(prompt (strcat "\nTotal length is: " (rtos f 2 2)))
(princ));end


  • 0

#7 hongtalinh2009

hongtalinh2009

    biết pan

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

Đã gửi 16 May 2013 - 03:28 PM

Lisp Ghi chiều dài thanh thép bên cạnh
Xin mọi người sửa giùm lisp sau.
Tôi muốn kết quả chiều cao chữ định sẵn , hoặc định một lần đầu, lần sau cứ enter là chiều cao chữ đó. ở đây tôi cứ mày mò ra được chiều cao chữ lần đầu sử dụng, nhưng enter thi cad không hiểu lệnh.
 
Mong mọi người giúp đỡ.
 
;; free lisp from cadviet.com
;; this lisp was downloaded from http://www.cadviet.c...?showtopic=3778
(defun add_mline ()
(foreach e_record_sub e_record
(cond ((= 10 (car e_record_sub))
(setq pt1 (cdr e_record_sub)
mline_len 0.0
)
)
((= 11 (car e_record_sub))
(setq pt2 (cdr e_record_sub)
mline_len (+ mline_len (distance pt2 pt1))
pt1 pt2
)
)
)
)
(setq f (+ f mline_len))
(ssdel e_name ss)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:th (/ f ss e_name e_record e_type)
(setq f 0.0)
(setq ss (ssget))
(if (null ss)
(exit))
(while (> (sslength ss) 0)
(setq e_name (ssname ss 0))
(setq e_record (entget e_name))
(setq e_type (cdr (assoc '0 e_record)))
(cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")
(command "lengthen" e_name "")    
(setq f (+ f (getvar "PERIMETER")))
(ssdel e_name ss))
((wcmatch e_type "MLINE") (add_mline))
(e_type (ssdel e_name ss))))
(setq p (getpoint "\n Chon diem nhap ket qua" ))
(if (not k) (setq k 1)) (setq h (getreal (strcat "\n Nhap chieu cao text < " (rtos k 2 2) " >: "))) (if h (setq k h))
(command "text" p h "0" (strcat(rtos f 2 0)))
;(prompt (strcat "\nTotal length is: " (rtos f 2 2)))
(princ));end

http://www.cadviet.c...pfiles/3/13694_


  • 0