Đến nội dung


Hình ảnh
- - - - -

Lisp vẽ Angle các loại có cả file .DAT


  • Please log in to reply
5 replies to this topic

#1 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 31 March 2010 - 03:53 PM

Đây là lisp ai xem dùm với!!!! Lỗi gì vậy ta
;  Chansik, Ahn
; 1993. 6. 29
; ANGLE.LSP
(vmon)
(DEFUN C:ANGLE ( / A B t r1 r2 STR LP I type)


(SETVAR "BLIPMODE" 0)
(SETQ FP (open (findfile "angle.dat") "r"))

(SETQ STR (READ-LINE FP))
(SETQ LP 1)
(SETQ I 0)
(COMMAND "VSLIDE" "ANGLE")
;(PROMPT "\n *********** ANGLE SIZE ************* ")
;(PROMPT "\n Equal Angle ")
;(PROMPT "\nÚÄÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄ¿")
;(PROMPT "\n³ No. ³ 1A ³ 1B ³ 1C ³ 1D ³ 1E ³ 1F ³ 1G ³ 1H ³ 1i ³ 1J ³ 1K ³ 1L ³ 1M ³")
;(PROMPT "\nÃÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´")
;(PROMPT "\n³ A ³ 25 ³ 30 ³ 40 ³ 40 ³ 45 ³ 45 ³ 50 ³ 50 ³ 50 ³ 60 ³ 60 ³ 65 ³ 65 ³")
;(PROMPT "\n³ B ³ 25 ³ 30 ³ 40 ³ 40 ³ 45 ³ 45 ³ 50 ³ 50 ³ 50 ³ 60 ³ 60 ³ 65 ³ 65 ³")
;(PROMPT "\n³ t ³ 3 ³ 3 ³ 3 ³ 5 ³ 4 ³ 5 ³ 4 ³ 5 ³ 6 ³ 4 ³ 5 ³ 5 ³ 6 ³")
;(PROMPT "\nÆÍÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍÍØÍÍÍ͵")
;(PROMPT "\n³ No. ³ 2A ³ 2B ³ 2C ³ 2D ³ 2E ³ 2F ³ 2G ³ 2H ³ 2i ³ 2J ³ 2K ³ 2L ³ 2M ³")
;(PROMPT "\nÃÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´")
;(PROMPT "\n³ A ³ 65 ³ 70 ³ 75 ³ 75 ³ 75 ³ 80 ³ 90 ³ 90 ³ 90 ³100 ³100 ³100 ³100 ³")
;(PROMPT "\n³ B ³ 65 ³ 70 ³ 75 ³ 75 ³ 75 ³ 80 ³ 90 ³ 90 ³ 90 ³100 ³100 ³100 ³100 ³")
;(PROMPT "\n³ t ³ 8 ³ 6 ³ 6 ³ 9 ³ 12 ³ 6 ³ 6 ³ 7 ³ 10 ³ 13 ³ 7 ³ 10 ³ 13 ³")
;(PROMPT "\nÀÄÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÙ")
;(PROMPT "\n Unequal Angle ")
;(PROMPT "\nÚÄÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄÂÄÄÄÄ¿")
;(PROMPT "\n³ No. ³ 3A ³ 3B ³ 3C ³ 3D ³ 3E ³ 3F ³ 3G ³ 3H ³ 3i ³ 3J ³ 3K ³ 3L ³ 3M ³")
;(PROMPT "\nÃÄÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄÅÄÄÄÄ´")
;(PROMPT "\n³ A ³ 90 ³100 ³100 ³125 ³125 ³125 ³125 ³125 ³150 ³150 ³150 ³150 ³150 ³")
;(PROMPT "\n³ B ³ 75 ³ 75 ³ 75 ³ 75 ³ 75 ³ 75 ³ 90 ³ 90 ³ 90 ³ 90 ³100 ³100 ³100 ³")
;(PROMPT "\n³ t ³ 9 ³ 7 ³ 10 ³ 7 ³ 10 ³ 13 ³ 10 ³ 13 ³ 9 ³ 12 ³ 9 ³ 12 ³ 15 ³")
;(PROMPT "\nÀÄÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÁÄÄÄÄÙ")
;(PROMPT "\n************************************************************************\n")
(CLOSE FP)
(SETQ TYPE (STRCASE (GETSTRING "Select a ANGLE < No.>: ")))
(SETQ FP (open (findfile "angle.dat") "r"))
(SETQ STR (READ-LINE FP))
(SETQ LP 1)
(command "redraw")
(WHILE LP
(SETQ STR (READ-LINE FP))
(IF (= STR nil) (SETQ LP nil))
(IF (= TYPE (SUBSTR STR 1 2)) (SETQ LP nil))
)

(CLOSE FP)
(SETQ A (ATOF (SUBSTR STR 18 3)))
(SETQ B (ATOF (SUBSTR STR 23 3)))
(SETQ t (ATOF (SUBSTR STR 28 2)))
(SETQ r1 (ATOF (SUBSTR STR 33 3)))
(SETQ r2 (ATOF (SUBSTR STR 39 3)))

(GRAPHSCR)
(SETQ PNT (GETPOINT " Pick the base point: "))
(RESET)
(SETVAR "orthoMODE" 1)
(SETQ Dang (GETangle pnt " Direction of base face: "))
(SETQ dang (rTd dang))
(SETQ P1 (POLAR PNT (DTR dang) B))
(SETQ P2 (POLAR PNT (DTR (+ dang 90)) A))
(SETQ P3 (POLAR P1 (DTR (+ dang 90)) (- t r2)))
(SETQ P4 (POLAR P3 (DTR (+ dang 135)) (/ r2 (COS (DTR 45)))))
(SETQ P5 (POLAR P4 (DTR (+ dang 180)) (- B (+ t r1 r2))))
(SETQ P6 (POLAR P5 (DTR (+ dang 135)) (/ r1 (COS (DTR 45)))))
(SETQ P7 (POLAR P6 (DTR (+ dang 90)) (- A (+ t r1 r2))))
(SETQ P8 (POLAR P7 (DTR (+ dang 135)) (/ r2 (COS (DTR 45)))))

(COMMAND "LAYER" "S" "5" "")
(command "PLINE" Pnt "W" "0" "0" P1 p3 "A" p4 "L" p5 "A" p6 "L" p7 "A" p8 "L" p2 "C")
(SETVAR "BLIPMODE" 1)
(RESET1)
(PRIN1)
)

Còn đây là file .DAT
File angle.dat
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6007 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 31 March 2010 - 05:54 PM

Đây là lisp ai xem dùm với!!!! Lỗi gì vậy ta

;  Chansik, Ahn
; 1993. 6. 29
; ANGLE.LSP
(vmon)
(DEFUN C:ANGLE ( / A B t r1 r2 STR LP I type)
(SETVAR "BLIPMODE" 0)
(SETQ FP (open (findfile "angle.dat") "r"))

(SETQ STR (READ-LINE FP))
(SETQ LP 1)
(SETQ I 0)
(COMMAND "VSLIDE" "ANGLE")

(CLOSE FP)
(SETQ TYPE (STRCASE (GETSTRING "Select a ANGLE < No.>: ")))
(SETQ FP (open (findfile "angle.dat") "r"))
(SETQ STR (READ-LINE FP))
(SETQ LP 1)
(command "redraw")
(WHILE LP
(SETQ STR (READ-LINE FP))
(IF (= STR nil) (SETQ LP nil))
(IF (= TYPE (SUBSTR STR 1 2)) (SETQ LP nil))
)

(CLOSE FP)
(SETQ A (ATOF (SUBSTR STR 18 3)))
(SETQ B (ATOF (SUBSTR STR 23 3)))
(SETQ t (ATOF (SUBSTR STR 28 2)))
(SETQ r1 (ATOF (SUBSTR STR 33 3)))
(SETQ r2 (ATOF (SUBSTR STR 39 3)))

(GRAPHSCR)
(SETQ PNT (GETPOINT " Pick the base point: "))
(RESET)
(SETVAR "orthoMODE" 1)
(SETQ Dang (GETangle pnt " Direction of base face: "))
(SETQ dang (rTd dang))
(SETQ P1 (POLAR PNT (DTR dang) B))
(SETQ P2 (POLAR PNT (DTR (+ dang 90)) A))
(SETQ P3 (POLAR P1 (DTR (+ dang 90)) (- t r2)))
(SETQ P4 (POLAR P3 (DTR (+ dang 135)) (/ r2 (COS (DTR 45)))))
(SETQ P5 (POLAR P4 (DTR (+ dang 180)) (- B (+ t r1 r2))))
(SETQ P6 (POLAR P5 (DTR (+ dang 135)) (/ r1 (COS (DTR 45)))))
(SETQ P7 (POLAR P6 (DTR (+ dang 90)) (- A (+ t r1 r2))))
(SETQ P8 (POLAR P7 (DTR (+ dang 135)) (/ r2 (COS (DTR 45)))))

(COMMAND "LAYER" "S" "5" "")
(command "PLINE" Pnt "W" "0" "0" P1 p3 "A" p4 "L" p5 "A" p6 "L" p7 "A" p8 "L" p2 "C")
(SETVAR "BLIPMODE" 1)
(RESET1)
(PRIN1)
)

Còn đây là file .DAT
File angle.dat


Chào bạn hatieu,
Chắc bạn chép lisp không đầy đủ rồi. Cái hàm (vmon) này ở đâu ra vậy, mình tìm hoài trong help chả thấy có chỗ nào nói về cái hàm này cả.
Cái file angle.dat bạn có đặt nó trong các thư mục tìm kiếm của CAD hay không??? Nếu không có thì lisp báo lỗi là đương nhiên bạn ạ.
Bạn hãy kiểm tra lại nhé.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 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 March 2010 - 10:09 PM

Chào bạn hatieu,
Chắc bạn chép lisp không đầy đủ rồi. Cái hàm (vmon) này ở đâu ra vậy, mình tìm hoài trong help chả thấy có chỗ nào nói về cái hàm này cả.
Cái file angle.dat bạn có đặt nó trong các thư mục tìm kiếm của CAD hay không??? Nếu không có thì lisp báo lỗi là đương nhiên bạn ạ.
Bạn hãy kiểm tra lại nhé.

Chào anh Bình!
(vmon)Virtual Memory On. Hàm này dùng ở cái thời xưa lắc xưa lơ, khi còn tồn tại hệ điều hành DOS và cấu hình computer thấp lè tè! Thường người ta gọi (vmon) ở đầu chương trình lisp để kích hoạt bộ nhớ ảo. Hiện nay, (vmon) đã xếp vào viện bảo tàng, không cần dùng đến nữa. Tuy nhiên, "nguyên tắc vàng" của AutoLisp là bất cứ cái gì bạn đã học được từ "thời xửa thời xưa" đều có thể áp dụng được vào "thời nảy thời nay". Do đó, dù không có tác dụng, khi gọi (vmon) AutoCAD vẫn chấp nhận mà không báo lỗi. Ssg "mê" Lisp chính là ở chỗ này!
Anh thử nhập (vmon) ở dòng Command: xem, nó return nil và không có "ý kiến" gì (nếu không chấp nhận thì nó phải báo lỗi: ; error: no function definition: VMON)

@hatieu
Anh Bình nói đúng, Lisp bạn chép thiếu nhiều thứ lắm, không chạy được đâu. Bạn đến chỗ đã cho bạn chép để bổ sung.
  • 0

#4 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 03 April 2010 - 08:21 AM

dear Anh Bình!!!
File đó em chép đầy đủ không thiếu đâu. Còn file .DAT em cũng chẳng biết để đâu thì nó tìm thấy nữa (SETQ FP (open (findfile "angle.dat") "r"))
Em cũng thử đủ mọi cách mà không biết làm thế nào để dùng được
dear anh SSQ!!!
Em cũng không biết được lisp này thiếu cái gì nữa.Lisp này của em dùng để vẽ angle. anh xem có sửa cho em được không.
Nếu lisp này có thiếu thì chắc là thiếu từ trước khi em copy về.hicss
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119

#5 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 04 April 2010 - 08:59 AM

dear Anh Bình!!!
File đó em chép đầy đủ không thiếu đâu. Còn file .DAT em cũng chẳng biết để đâu thì nó tìm thấy nữa (SETQ FP (open (findfile "angle.dat") "r"))
Em cũng thử đủ mọi cách mà không biết làm thế nào để dùng được
dear anh SSQ!!!
Em cũng không biết được lisp này thiếu cái gì nữa.Lisp này của em dùng để vẽ angle. anh xem có sửa cho em được không.
Nếu lisp này có thiếu thì chắc là thiếu từ trước khi em copy về.hicss

Chào bạn hatieu!
Căn cứ vào code, tác giả xây dựng chương trình không chỉ có 2 file bạn đã chép (*.lsp và *.dat) mà còn một số file khác. Ít nhất phải có thêm 1 file *.lsp chứa các function con và 1 file ANGLE.dwg để hiển thị hình ảnh mặt cắt angle lên màn hình.
Mỗi người có một "cung cách" và quan điểm lập trình khác nhau, sửa lisp vất vả và mất thời gian lắm, lập chương trình mới còn sướng hơn!
Bạn tham khảo chương trình Mechanical CadViet, trong đó có tính năng vẽ các loại thép hình (I, U, V, L):
http://www.cadviet.c...?showtopic=1835
Chương trình cho phép bạn bổ sung thêm quy cách thép nếu cần. Chỉ e rằng bạn không thuộc chuyên ngành Cơ khí, có nhiều phần bạn không dùng đến. Nếu bạn biết chút chút về lisp thì tự tách riêng ra cái mình cần. Bản thân ssg đang rất nhiều việc phải làm (cả mấy tháng nay không đụng gì đến lisp) chắc không thể giúp được gì hơn cho bạn. Mong bạn thông cảm!
  • 1

#6 hatieu

hatieu

    biết vẽ pline

  • Advance Member
  • PipPip
  • 67 Bài viết
Điểm đánh giá: 13 (tàm tạm)

Đã gửi 05 April 2010 - 08:08 AM

Rất cảm ơn thiện chí của Mr SSG.
  • 0
Công ty cổ phần đầu tư và xây dựng AGA
Chuyên tư vấn, cung cấp, thi công hệ vách dựng nhôm kính khổ lớn, cửa nhôm kính,
kính cường lực, vách ngăn, lan can, cầu thang kinh, lam nhôm chăn nắng.
Hot: 0984.985.119