Đến nội dung


Hình ảnh
- - - - -

[ Nhờ hoàn thiện] lisp vẽ line !


  • Please log in to reply
36 replies to this topic

#21 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 17 October 2011 - 10:01 AM

Vâng, Đúng là (- (fix (/ ot 5)) 1) , do em không biết diễn đạt. Bác ĐVH thông cảm nhé ! hic

Trả lời cho bạn ở trên rồi đó.
  • 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.


#22 npham

npham

    biết lệnh rotate

  • Members
  • PipPipPip
  • 136 Bài viết
Điểm đánh giá: 75 (tàm tạm)

Đã gửi 17 October 2011 - 11:30 AM

Bàn về "chuyên môn" xí hè.
Đối với cấu trúc cond, nó chỉ thực hiện 1 lần rẽ duy nhất ở điều kiện <> nil theo thứ tự ưu tiên từ trên xuống.
Do đó trong trường hợp trên ta chỉ cần đặt:


(cond
((< ot -7) (.....))
((< ot 0) (....))
((< ot 7) (...))
(T (...))
)


Mấy bác góp ý xem.
  • 0

#23 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 17 October 2011 - 11:55 AM

Bàn về "chuyên môn" xí hè.
Đối với cấu trúc cond, nó chỉ thực hiện 1 lần rẽ duy nhất ở điều kiện <> nil theo thứ tự ưu tiên từ trên xuống.
Do đó trong trường hợp trên ta chỉ cần đặt:



Mấy bác góp ý xem.

Đúng 75%, vì dòng 3 thiếu dấu "=". Trong trường hợp so sánh > và < thì cách viết của npham có ngắn được chút đỉnh, ghi nhận điều này. Tuy nhiên cách viết của tôi có lợi thế là thứ tự 4 dòng đó là không quan trọng, còn npham phải sắp đúng thứ tự đó, và trong trường hợp không phải là so sánh < và > thì cách của tôi là cần thiết. Không biết lý luận vậy có đúng không nữa.
  • 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.


#24 hanam1210

hanam1210

    biết vẽ pline

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

Đã gửi 17 October 2011 - 01:39 PM

Vâng, Đúng là (- (fix (/ ot 5)) 1) , do em không biết diễn đạt. Bác ĐVH thông cảm nhé ! hic

Hic. Anh Hà xem lại giúp em nhé.
1- Line bị ngược chiều khi A <0 ( ngược chiều P1P2)
2-Theo yêu cầu chỉnh sửa thì khi TH3: nếu 0=<A< =7, kc= A*1.5
và TH4: nếuA >7, kc= A*1.5 +( (phần nguyên của A/5 -1 )*2
Nhưng khi A>7 thì hiện tại lisp vẫn tính kc=A*1.5 ( thiếu ( (phần nguyên của A/5 -1 )*2 ))
  • 0

#25 npham

npham

    biết lệnh rotate

  • Members
  • PipPipPip
  • 136 Bài viết
Điểm đánh giá: 75 (tàm tạm)

Đã gửi 17 October 2011 - 01:45 PM

Đúng 75%, vì dòng 3 thiếu dấu "=". Trong trường hợp so sánh > và < thì cách viết của npham có ngắn được chút đỉnh, ghi nhận điều này. Tuy nhiên cách viết của tôi có lợi thế là thứ tự 4 dòng đó là không quan trọng, còn npham phải sắp đúng thứ tự đó, và trong trường hợp không phải là so sánh < và > thì cách của tôi là cần thiết. Không biết lý luận vậy có đúng không nữa.


Bác xét kỹ xem, npham viết như vậy là có xét đến dấu = rồi đó, thiếu cái = ở đk thứ 3 thôi. hihi :)
Ghi nhận nó có nhược điểm là phải viết đúng thứ tự.
  • 0

#26 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 17 October 2011 - 02:26 PM

Hic. Anh Hà xem lại giúp em nhé.
1- Line bị ngược chiều khi A <0 ( ngược chiều P1P2)
2-Theo yêu cầu chỉnh sửa thì khi TH3: nếu 0=<A< =7, kc= A*1.5
và TH4: nếuA >7, kc= A*1.5 +( (phần nguyên của A/5 -1 )*2
Nhưng khi A>7 thì hiện tại lisp vẫn tính kc=A*1.5 ( thiếu ( (phần nguyên của A/5 -1 )*2 ))

1). Trường hợp 3: tôi đã viết đúng
2). Trường hợp 4: tôi đã viết đúng
3). Trường hợp a<7: tôi viết đúng nhưng có lẽ y/c của bạn sai.
Tóm lại: bạn không thể diễn giải mỗi chuyện bạn muốn gì thì làm sao tôi hiểu "tư tưởng" của bạn được?
  • 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.


#27 boy8x

boy8x

    Chưa sử dụng CAD

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

Đã gửi 17 October 2011 - 02:46 PM

1). Trường hợp 3: tôi đã viết đúng
2). Trường hợp 4: tôi đã viết đúng
3). Trường hợp a<7: tôi viết đúng nhưng có lẽ y/c của bạn sai.
Tóm lại: bạn không thể diễn giải mỗi chuyện bạn muốn gì thì làm sao tôi hiểu "tư tưởng" của bạn được?

Tức là khi mình pick điểm P1 rồi P2 thì line sẽ có chiều từ P1 =>P2, nhưng hiện tại thì nó bị ngược, tức là line bị quay 180 độ. Anh chuyển lại giúp em với . hic !
  • 0

#28 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 17 October 2011 - 03:07 PM

Tức là khi mình pick điểm P1 rồi P2 thì line sẽ có chiều từ P1 =>P2, nhưng hiện tại thì nó bị ngược, tức là line bị quay 180 độ. Anh chuyển lại giúp em với . hic !

Tôi đã sửa trực tiếp trên file cũ. Bạn quay lại ở trên để lấy. Lần này có đúng hay không đúng ý bạn thì tôi cũng xin dừng ở đây. Bạn thông cảm nhé!
  • 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.


#29 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 October 2011 - 03:19 PM

Tức là khi mình pick điểm P1 rồi P2 thì line sẽ có chiều từ P1 =>P2, nhưng hiện tại thì nó bị ngược, tức là line bị quay 180 độ. Anh chuyển lại giúp em với . hic !

Hề hề hề,
Cái anh bạn này cũng nhiều VỎ nhể.......
Cái áo chả làm nện thầy tu đâu, phải chịu khó tu thì mới thành thầy được,
Hề hề hề....
Tu ở đâu ư, ở đâu mà bạn khoiái là được. Miễn là chịu tu.....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#30 boy8x

boy8x

    Chưa sử dụng CAD

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

Đã gửi 17 October 2011 - 03:44 PM

Hề hề hề,
Cái anh bạn này cũng nhiều VỎ nhể.......
Cái áo chả làm nện thầy tu đâu, phải chịu khó tu thì mới thành thầy được,
Hề hề hề....
Tu ở đâu ư, ở đâu mà bạn khoiái là được. Miễn là chịu tu.....


huhuhu. Đợt đầu anh DVH viết thì cái hướng line đúng nhưng bị một số khác, khi sửa được chiều dài đúng thì vừa rồi là cái hướng line bị sai. Bi h sửa được hướng line thì chiều dài tất cả các trường hợp có ( ABS ( A) >7 đều không đúng yêu cầu. Bị thiếu mất (* (- (fix (/ (abs ot) 5)) 1) 2))), em đã thấy đưa vào code rồi nhưng mà chạy thì ko thấy cái đoạn (* (- (fix (/ (abs ot) 5)) 1) 2))) đâu. hic hic ! Phải sửa mấy lần chắc anh Hà bực em rồi. hic hic !
  • 0

#31 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 October 2011 - 04:19 PM


huhuhu. Đợt đầu anh DVH viết thì cái hướng line đúng nhưng bị một số khác, khi sửa được chiều dài đúng thì vừa rồi là cái hướng line bị sai. Bi h sửa được hướng line thì chiều dài tất cả các trường hợp có ( ABS ( A) >7 đều không đúng yêu cầu. Bị thiếu mất (* (- (fix (/ (abs ot) 5)) 1) 2))), em đã thấy đưa vào code rồi nhưng mà chạy thì ko thấy cái đoạn (* (- (fix (/ (abs ot) 5)) 1) 2))) đâu. hic hic ! Phải sửa mấy lần chắc anh Hà bực em rồi. hic hic !

Hề hề hề,
Bác ấy đã sửa cho bạn khá nhiều kiểu rùi đó. Nào là chiều dài, nào là hướng, nào là DK.....
Bạn chỉ cần chịu khó xem kỹ cái bác ấy đã sửa rồi bắt chước bác ấy cày vào chỗ chưa được. Cứ nhá vài lần chắc là sẽ thành công thôi. Với khả năng của bạn mình tin rằng nếu bạn chịu khó ngâm cứu thì ắt hẳn sẽ chả phải chờ lâu để có được cái mình cần. Có thể vài nhát đầu chưa thành công, nhưng bạn hãy cứ làm và post lên cái sự không thành đó để mọi người góp ý cho.
Cứ vậy chắc sẽ nhanh hơn là việc thay tên đổi họ để chờ giúp đỡ.
Hề hề hề, vài lời nghịch nhĩ nhưng mong bạn hiểu rằng mọi người chỉ giúp bạn khi bạn thật sự cầu thị, còn nếu cứ ỷ lại thì mọi người cũng sẽ nhanh chán thôi. Tất cả anh em trên diễn đàn đều chả có ai ăn không ngồi rồi để chỉ chờ bạn hỏi rồi giúp cả. Để trả lời và giúp bạn mọi người đều phải nhín chút công việc của mình và vì thế bạn hãy tôn trọng công sức của mọi người bằng cách tự mình hãy cố gắng để hiểu và áp dụng những gì mọi người đã giúp cho dù nó có thể chưa đáp ứng hoàn toàn yêu cầu của bạn. Dù sao đó cũng là những gợi ý để bạn có thể hoàn thành tốt công việc của bạn mà bản thân những người đã giúp bạn chẳng hề vụ lợi trong đó.
Hãy nhớ rằng việc là của bạn và cho dù chẳng có ai giúp, bạn vẫn phải hoàn thành nó kia mà. Hãy cố gắng tự cứu minh khi còn có thể bạn ạ....
Hề hề hề.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#32 hanam1210

hanam1210

    biết vẽ pline

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

Đã gửi 17 October 2011 - 04:48 PM

Hề hề hề,
Bác ấy đã sửa cho bạn khá nhiều kiểu rùi đó. Nào là chiều dài, nào là hướng, nào là DK.....
Bạn chỉ cần chịu khó xem kỹ cái bác ấy đã sửa rồi bắt chước bác ấy cày vào chỗ chưa được. Cứ nhá vài lần chắc là sẽ thành công thôi. Với khả năng của bạn mình tin rằng nếu bạn chịu khó ngâm cứu thì ắt hẳn sẽ chả phải chờ lâu để có được cái mình cần. Có thể vài nhát đầu chưa thành công, nhưng bạn hãy cứ làm và post lên cái sự không thành đó để mọi người góp ý cho.
Cứ vậy chắc sẽ nhanh hơn là việc thay tên đổi họ để chờ giúp đỡ.
Hề hề hề, vài lời nghịch nhĩ nhưng mong bạn hiểu rằng mọi người chỉ giúp bạn khi bạn thật sự cầu thị, còn nếu cứ ỷ lại thì mọi người cũng sẽ nhanh chán thôi. Tất cả anh em trên diễn đàn đều chả có ai ăn không ngồi rồi để chỉ chờ bạn hỏi rồi giúp cả. Để trả lời và giúp bạn mọi người đều phải nhín chút công việc của mình và vì thế bạn hãy tôn trọng công sức của mọi người bằng cách tự mình hãy cố gắng để hiểu và áp dụng những gì mọi người đã giúp cho dù nó có thể chưa đáp ứng hoàn toàn yêu cầu của bạn. Dù sao đó cũng là những gợi ý để bạn có thể hoàn thành tốt công việc của bạn mà bản thân những người đã giúp bạn chẳng hề vụ lợi trong đó.
Hãy nhớ rằng việc là của bạn và cho dù chẳng có ai giúp, bạn vẫn phải hoàn thành nó kia mà. Hãy cố gắng tự cứu minh khi còn có thể bạn ạ....
Hề hề hề.


Cái dòng : ((< ot -7) (setq kc (+ (* (abs ot) hsd) (* 2 (- (fix (/ (abs ot) 5)) 1) ))))
và dòng : ((> ot 7) (setq kc (+ (* ot 1.5) (* (- (fix (/ ot 5)) 1) 2)))))
bác DVH viết em thấy đúng mà ko hiểu sao nó chỉ tính được giá trị là : (< ot -7) (setq kc (* (abs ot) hsd))
và > ot 7) (setq kc (* ot 1.5))
Điều này quá tầm của em. Mong các anh chỉ giáo !
  • 0

#33 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 17 October 2011 - 04:57 PM


Cái dòng : ((< ot -7) (setq kc (+ (* (abs ot) hsd) (* 2 (- (fix (/ (abs ot) 5)) 1) ))))
và dòng : ((> ot 7) (setq kc (+ (* ot 1.5) (* (- (fix (/ ot 5)) 1) 2)))))
bác DVH viết em thấy đúng mà ko hiểu sao nó chỉ tính được giá trị là : (< ot -7) (setq kc (* (abs ot) hsd))
và > ot 7) (setq kc (* ot 1.5))
Điều này quá tầm của em. Mong các anh chỉ giáo !

Tuỳ theo giá trị của "ot" mà cái đuôi có thể bằng 0.
  • 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.


#34 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 October 2011 - 05:10 PM


Cái dòng : ((< ot -7) (setq kc (+ (* (abs ot) hsd) (* 2 (- (fix (/ (abs ot) 5)) 1) ))))
và dòng : ((> ot 7) (setq kc (+ (* ot 1.5) (* (- (fix (/ ot 5)) 1) 2)))))
bác DVH viết em thấy đúng mà ko hiểu sao nó chỉ tính được giá trị là : (< ot -7) (setq kc (* (abs ot) hsd))
và > ot 7) (setq kc (* ot 1.5))
Điều này quá tầm của em. Mong các anh chỉ giáo !

Hề hề hề,
Vậy có phải ngon hơn không,
Bạn hãy chú y cái hàm fix , cứ theo help thì nó Returns the conversion of a real number into the nearest smaller integer .
Vậy nên khi -1< a < 1 thì (fix a) sẽ bằng 0 và thế là ò í e cái đuôi cộng thêm của bạn.
Hề hề hề.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#35 hanam1210

hanam1210

    biết vẽ pline

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

Đã gửi 18 October 2011 - 04:03 AM

ô hô, em hiểu rùi. ( - (FIX(( / 8 5 ) 1 ) 1 )= 0. Như vậy là ngon rùi. Phần râu ria thì để em tự xử được chứ ko cần đến các sư phụ CADVIET mang dao mổ trâu ra mổ con kiến. hè hè.
  • 0

#36 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 18 October 2011 - 11:50 AM

ô hô, em hiểu rùi. ( - (FIX(( / 8 5 ) 1 ) 1 )= 0.

^^ Điều cần thiết đầu tiên để viết lisp là đóng và mở ngoặc theo 1 cặp :D
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#37 thanhduan2407

thanhduan2407

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 995 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 18 October 2011 - 03:35 PM

^^ Điều cần thiết đầu tiên để viết lisp là đóng và mở ngoặc theo 1 cặp :D

@ketxu:hê hê, cái này quan trọng lắm ấy nha. Hii.
@phamthanhbinh: bác nói chí phải, cái này em ủng hộ 2 tay, 2 chân. Dạo này bác viết lisp trở lại rùi. Toàn thấy bác comment thui. Hii

  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn