Đến nội dung


Hình ảnh
- - - - -

vướng mắc autolisp tìm lời giải đáp


  • Please log in to reply
24 replies to this topic

#1 anhbr

anhbr

    biết pan

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

Đã gửi 11 August 2010 - 09:25 AM

Chào các anh trên diễn đàn!
E mới bắt đầu tập viết lisp.
E có một vướng mắc mà e tìm lời giải đáp chưa được mong các anh giải đáp hộ
E có một đoạn lisp thế này:
(defun c:H ( )
(prompt "\nNew dim method. ")
; (command "LAYER" "N" "Laydim" "C" "2" "Laydim" "")
; (command "LAYER" "S" "Laydim" "")
(setq pt1 (getpoint "\nSelect first extension line origin : ")
pt2 (getpoint "\nSelect second extension line origin : " pt1)
)
(if (= (car pt1) (car pt2))
(VER pt1 pt2)
(HOR pt1 pt2)
)
)
và e không hiểu chỗ lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là gán biển hay thế nào ah?
Cảm ơn diễn đàn!
  • 0

#2 ntduy1988

ntduy1988

    biết vẽ arc

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

Đã gửi 11 August 2010 - 09:38 AM

Chắc hẳn lisp của bạn đã bị thiếu code, trong autolisp đoạn mã (ver pt1 pt2) (hor pt1 pt2) không có ý nghĩa gì cả, khi chạy cad sẽ báo lỗi. ver hay hor là lệnh đi kèm theo lệnh vẽ đường xline hoặc construction Line để xác định xem đường thẳng đó nằm thẳng đứng hay nằm ngang.
  • 0

#3 Nghia_XD

Nghia_XD

    biết vẽ polygon

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

Đã gửi 11 August 2010 - 10:48 AM

Chào các anh trên diễn đàn!
E mới bắt đầu tập viết lisp.
E có một vướng mắc mà e tìm lời giải đáp chưa được mong các anh giải đáp hộ
E có một đoạn lisp thế này:
(defun c:H ( )
(prompt "\nNew dim method. ")
; (command "LAYER" "N" "Laydim" "C" "2" "Laydim" "")
; (command "LAYER" "S" "Laydim" "")
(setq pt1 (getpoint "\nSelect first extension line origin : ")
pt2 (getpoint "\nSelect second extension line origin : " pt1)
)
(if (= (car pt1) (car pt2))
(VER pt1 pt2)
(HOR pt1 pt2)
)
)
và e không hiểu chỗ lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là gán biển hay thế nào ah?
Cảm ơn diễn đàn!

đoạn lisp này lỗi
  • 0

Xây dựng dân dụng và công nghiệp


#4 anhbr

anhbr

    biết pan

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

Đã gửi 11 August 2010 - 11:25 AM

Cảm ơn các anh, nhưng nguyên văn của đoạn lisp là thế này
http://www.mediafire.com/myfiles.php
Khi load chạy vẫn bình thường, E thấy có mấy dòng lệnh khó hiểu nên thắc mắc ạ.
Mong diễn đàn giải đáp thêm
  • 0

#5 ndn386

ndn386

    biết vẽ pline

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

Đã gửi 11 August 2010 - 12:37 PM

đoạn lisp này lỗi

anh biết là bị lỗi thì phải sửa luôn đi chứ. Nếu chỉ nói thì cũng chưa hiệu quả lắm.
  • 0
Ai đem chim sáo sang sông
Để cho chim sáo ...mất công bay về

#6 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 11 August 2010 - 01:04 PM

Chào các anh trên diễn đàn!
E mới bắt đầu tập viết lisp.
E có một vướng mắc mà e tìm lời giải đáp chưa được mong các anh giải đáp hộ
E có một đoạn lisp thế này:
(defun c:H ( )
(prompt "\nNew dim method. ")
; (command "LAYER" "N" "Laydim" "C" "2" "Laydim" "")
; (command "LAYER" "S" "Laydim" "")
(setq pt1 (getpoint "\nSelect first extension line origin : ")
pt2 (getpoint "\nSelect second extension line origin : " pt1)
)
(if (= (car pt1) (car pt2))
(VER pt1 pt2)
(HOR pt1 pt2)
)
)
và e không hiểu chỗ lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là gán biển hay thế nào ah?
Cảm ơn diễn đàn!

theo tui nghĩ thì ở phía trên đoạn code nầy còn có 2 hàm con là
(defun VER (var1 var2) -->có nghĩa là hàm VER này làm việc với 2 biến var1 và var2
...
)

(defun HOR (var1 var2)
...
)
khi hàm chính là hàm (defun c:H()) làm việc có gọi lại 2 hàm con như ở trên. lúc này 2 biến pt1 và pt2 ở hàm chính sẽ dc thay vào 2 biến var1 và var2 để 2 hàm con tính toán.
  • 0
Hình đã gửi

#7 ntduy1988

ntduy1988

    biết vẽ arc

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

Đã gửi 11 August 2010 - 05:51 PM

Mình thấy bạn lp_hai nói có lý, khả năng ver và hor là 2 hàm con hoặc là bạn lisp đã bị sửa đổi, bạn về kiểm tra lại xem còn hàm con nào trong lisp không?
  • 0

#8 anhbr

anhbr

    biết pan

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

Đã gửi 11 August 2010 - 11:14 PM

Mình thấy bạn lp_hai nói có lý, khả năng ver và hor là 2 hàm con hoặc là bạn lisp đã bị sửa đổi, bạn về kiểm tra lại xem còn hàm con nào trong lisp không?

không đâu bạn à.
Lisp này là mình lấy nguyên bản vậy đó, đây là file gốc http://www.mediafire.com/myfiles.php
Load vẫn chạy bình thường.
Mình đang tập viết lisp nên lấy đoạn lisp này ra tìm hiểu về các lệnh,tự dưng thấy vậy khó hiểu quá. Do cũng chưa am tường về lisp nên cũng chưa hiểu rõ lỗi này nữa. Hay cũng có thể lệnh đó (ver.....hor...) không ảnh hưởng gì đến quá trình chạy lisp này chăng?
  • 0

#9 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 12 August 2010 - 08:59 AM

không đâu bạn à.
Lisp này là mình lấy nguyên bản vậy đó, đây là file gốc http://www.mediafire.com/myfiles.php
Load vẫn chạy bình thường.
Mình đang tập viết lisp nên lấy đoạn lisp này ra tìm hiểu về các lệnh,tự dưng thấy vậy khó hiểu quá. Do cũng chưa am tường về lisp nên cũng chưa hiểu rõ lỗi này nữa. Hay cũng có thể lệnh đó (ver.....hor...) không ảnh hưởng gì đến quá trình chạy lisp này chăng?

bạn phải copy cái đường dẫn của file bạn upload kia. chú link đó là dến thư mục upload của riêng bạn mà, sao tải dc.
nhưng mình chắc chắn VER và HOR là 2 hàm con. bạn thử mở lisp đó bằng notepad rồi dùng chế độ find (ctrl+F) tìm defun VER thử xem có ko??
bởi vì bạn xem kỹ lại các đoạn code trong hàm Defun C:H() ko hề có một lệnh nào đẻ thực thi theo ý của người vẽ. như vậy lệnh để bạn vẽ chắc chắn là nằm trong 2 hàm con đó.
hàm con ko nhất thiết phải nằm cùng một file với hàm chính. nó có thể nằm ở một lisp khác, miễn sao nó dc load để khi gọi nó thực hiện là dc.
  • 0
Hình đã gửi

#10 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 12 August 2010 - 09:21 AM

không đâu bạn à.
Lisp này là mình lấy nguyên bản vậy đó, đây là file gốc http://www.mediafire.com/myfiles.php
Load vẫn chạy bình thường.
Mình đang tập viết lisp nên lấy đoạn lisp này ra tìm hiểu về các lệnh,tự dưng thấy vậy khó hiểu quá. Do cũng chưa am tường về lisp nên cũng chưa hiểu rõ lỗi này nữa. Hay cũng có thể lệnh đó (ver.....hor...) không ảnh hưởng gì đến quá trình chạy lisp này chăng?

mình gửi một lisp này làm vd nha

(defun veline(A :(
(command "line" A B "")
)

(defun c:cheo()
(setq Rec (acet-geom-vertex-list (car (entsel "Chon hinh chu nhat")))
PT1 (nth 0 Rec)
PT2 (nth 1 Rec)
PT3 (nth 2 Rec)
PT4 (nth 3 Rec)
)
(veline PT1 PT3)
(veline PT2 PT4)
)

lisp này vẽ đường chéo một hinh chữ nhậ có sẵn. như bạn thấy ở hàm chính là hàm defun C:cheo() ko hề có lệnh vẽ line nào. còn ở hàm con là (defun veline(A :undecided: có 2 biến là A và B
khi ở hàm chính gọi hàm con (veline PT1 PT3) thì hàm con sẽ làm việc với 2 tham số thế vào là PT1 và PT3 (là vẽ line từ điểm A(khi này là pt1) đến diểm B(là pt2) )
tương tự như vậy cho lần gọi sau...
hy vọng giúp ích dc cho bạn!
  • 0
Hình đã gửi

#11 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 12 August 2010 - 10:40 AM

mình gửi một lisp này làm vd nha


(defun veline(A :(
(command "line" A B "")
)

(defun c:cheo()
(setq Rec (acet-geom-vertex-list (car (entsel "Chon hinh chu nhat")))
PT1 (nth 0 Rec)
PT2 (nth 1 Rec)
PT3 (nth 2 Rec)
PT4 (nth 3 Rec)
)
(veline PT1 PT3)
(veline PT2 PT4)
)

lisp này vẽ đường chéo một hinh chữ nhật có sẵn. như bạn thấy ở hàm chính là hàm defun C:cheo() ko hề có lệnh vẽ line nào. còn ở hàm con là (defun veline(A :undecided: có 2 biến là A và B
khi ở hàm chính gọi hàm con (veline PT1 PT3) thì hàm con sẽ làm việc với 2 tham số thế vào là PT1 và PT3 (là vẽ line từ điểm A(khi này là pt1) đến diểm B(là pt2) )
tương tự như vậy cho lần gọi sau...
hy vọng giúp ích dc cho bạn!

Bạn nêu chưa đủ ý lắm.
Lisp sẽ vẽ đường chéo của 1 tứ giác bất kì, trong đó có hình thang, hình bình hành, hình chữ nhật, hình thoi, hình vuông nữa
Bạn nên đưa thêm vào điều kiện kiểm tra đa tuyến đó có kín hay không, đa tuyến đó có 4 đỉnh hay không?
Nếu chỉ viết cho hình chữ nhật (hình vuông là trường hợp đặc biệt của hình chữ nhật) thì phải kiểm tra xem 3 góc của hình chữ nhật có bằng 90độ hay không?
  • 0

#12 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 12 August 2010 - 10:50 AM

Bạn nêu chưa đủ ý lắm.
Lisp sẽ vẽ đường chéo của 1 tứ giác bất kì, trong đó có hình thang, hình bình hành, hình chữ nhật, hình thoi, hình vuông nữa
Bạn nên đưa thêm vào điều kiện kiểm tra đa tuyến đó có kín hay không, đa tuyến đó có 4 đỉnh hay không?
Nếu chỉ viết cho hình chữ nhật (hình vuông là trường hợp đặc biệt của hình chữ nhật) thì phải kiểm tra xem 3 góc của hình chữ nhật có bằng 90độ hay không?

hehê!
chào bác Tue.
em chỉ VD để giải thích cho bạn anhbr về cái hàm con thôi bác ah!
  • 0
Hình đã gửi

#13 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 12 August 2010 - 11:11 AM

hehê!
chào bác Tue.
em chỉ VD để giải thích cho bạn anhbr về cái hàm con thôi bác ah!

Mình biết bạn ví dụ chứ.
Nhưng khi đã viết hoặc nêu 1 vấn đề nào đó thì nên viết hoặc nêu cho Tổng Quát bạn à
  • 0

#14 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 12 August 2010 - 02:12 PM

Có 1 ý nhỏ thế này ko biết có làm Tue_NV khó chịu ko. Bạn ngày càng khó tính rồi đó không phải ai cũng như mình được vậy.
Bài này sẽ được del vào cuối buổi chiều này. Bạn không cần trả lời vậy.

Cũng có thể do Tue_NV hơi khó tính. Tue_NV chỉ góp ý thôi mà
Xin lỗi các bạn vì đã làm cho các bạn không được vui. Sorry
Còn chuyện del bai của anh thì không nên vì em đã quote bài của anh rồi. Anh muốn del cũng không được. Hì hì
  • 1

#15 ndq111

ndq111

    biết pan

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

Đã gửi 12 August 2010 - 03:06 PM

Các bác ơi. Em muốn dùng lisp sau cho Bv2 thì làm thế nào, BV1 e dùng thì OK
http://www.cadviet.c...les/3/bv1_1.dwg
http://www.cadviet.c...les/3/bv2_1.dwg
http://www.cadviet.c...iles/3/nscd.rar
Mong các bác giúp đỡ
  • 0

#16 anhbr

anhbr

    biết pan

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

Đã gửi 12 August 2010 - 07:54 PM

Đúng rồi các bác ah, trong đoạn lisp có hàm con của VER và HOR
Đúng là có hàm con defun VER (...) và defun HOR (...) ở phần dưới của đoạn lisp. cảm ơn bác lp_hai và các bác nhiều.
Như vậy trong câu lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là thế nào nhỉ, thực sự e vẫn chưa hiểu rõ lắm về 2 câu lệnh này
  • 0

#17 anhbr

anhbr

    biết pan

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

Đã gửi 12 August 2010 - 08:00 PM

Xin lỗi các bác vì sự vô ý này hihi
Đây là link down: http://www.mediafire...1k6si693xeqyr5h
  • 0

#18 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 13 August 2010 - 08:13 AM

Đúng rồi các bác ah, trong đoạn lisp có hàm con của VER và HOR
Đúng là có hàm con defun VER (...) và defun HOR (...) ở phần dưới của đoạn lisp. cảm ơn bác lp_hai và các bác nhiều.
Như vậy trong câu lệnh (VER pt1 pt2) và lệnh (HOR pt1 pt2) là thế nào nhỉ, thực sự e vẫn chưa hiểu rõ lắm về 2 câu lệnh này

bạn đọc lại bài số 9 nha! mình nói cũng rõ lắm mà.
hiiiiiiiiiiiii
  • 0
Hình đã gửi

#19 anhbr

anhbr

    biết pan

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

Đã gửi 13 August 2010 - 08:37 AM

Rồi, OK thanks lp_hai và các bạn nhiều, như vậy mọi việc đã được sáng tỏ.
  • 0

#20 ndq111

ndq111

    biết pan

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

Đã gửi 13 August 2010 - 09:19 AM

Có bác nào xem giúp em chưa? huhu? chỉ e với
  • 1