Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Sửa Lại Mã List Vẽ Thanh


  • Please log in to reply
8 replies to this topic

#1 thanhtam_1990

thanhtam_1990

    biết vẽ arc

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

Đã gửi 16 December 2016 - 01:45 PM

list này dùng để vẽ thanh thép góc của tháp thép, à khi dùng lệnhchế độ truy bắt điểm bị mất hết mỗi lần làm phải sét lại rất mệt, mong mấy bạn giúp sửa lỗi trong list này

(princ " DANH  V  DE VE THANH   ")
(defun C:V ()
	(setq osmd (getvar "osmode")) ; luu gia tri bien OSMODE hien hanh
	(setvar "osmode" 0)
	(setq tl (getvar "dimlfac"))
	(setq p1 (getpoint "diem dau:"))
	(setq p2 (getpoint "diem cuoi:"))
	(setq a1 (getreal "BE RONG THEP GOC B=?  "))
	(setq d1 (getreal "CHIEU DAI DAU THANH ?"))
	(setq e1 (getreal "CHIEU DAY THANH:"))
	(setq a (/ (/ a1 tl) 2))
	(setq d (/ d1 tl))
	(setq c (sqrt(+ (* a a) (* d d))))
	(setq alpha (angle p1 p2))
	(setq gama (atan (/ a d)))
	(setq beta1 (- alpha gama))
	(setq beta2 (+ alpha gama))
	(setq p3 (polar p1 (+ pi beta2) c))
	(setq p4 (polar p2 beta1 c))
	(setq p5 (polar p2 beta2 c))
	(setq p6 (polar p1 (+ pi beta1) c))
	(command "Pline" p3 p4 p5 p6 "c")
	(setq e (/ (/ (- a1 (* 2 e1)) tl) 2))
	(setq f (sqrt(+ (* e e) (* d d))))
	(setq gama1 (atan (/ e d)))
	(setq beta3 (- alpha gama1))
	(setq beta4 (+ alpha gama1))
	(setq p7 (polar p1 (+ pi beta4) f))
	(setq p8 (polar p2 beta3 f))
	(command "pline" p7 p8)
	(command)
	(setvar "osmode" osmd) 
)




  • 0

#2 Danh Cong

Danh Cong

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 362 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 16 December 2016 - 01:58 PM

+ Nguyên nhân Lisp mất chế độ bắt điểm: Do khi đang thực hiện lisp thì lại thoát đột ngột đột ngột chương trình, < Bằng nút ESC> . Nên lisp chưa trả lại giá trị cũ.

+ Góp ý:  Lisp nên thêm biến cục bộ để Cad đỡ tốn bộ nhớ và đề phòng sảy ra lỗi với các lisp khác.

+ Thử test lại với lisp sửa sau:

 

(princ " DANH  V  DE VE THANH   ")

(defun C:V ( / *error* )
  (defun *error* ( msg )                                            ; Gan lai gia tri "osmode" trong trong hop thoat lenh dot ngot <ESC>
        (if osmd (setvar 'osmode osmd))
        (if (not (member msg '("Function cancelled" "quit / exit abort")))
            (princ (strcat "\nError: " msg))
        )
    (princ))
    
(setq osmd (getvar "osmode")) ; luu gia tri bien OSMODE hien hanh
 
(setq tl (getvar "dimlfac"))
(setq p1 (getpoint "diem dau:"))
(setq p2 (getpoint p1 "diem cuoi:"))
 
(setvar "osmode" 0)                  ;   chuyen code nay sau cau lenh chon diem dau: diem cuoi
 
(setq a1 (getreal "BE RONG THEP GOC B=?  "))
(setq d1 (getreal "CHIEU DAI DAU THANH ?"))
(setq e1 (getreal "CHIEU DAY THANH:"))
(setq a (/ (/ a1 tl) 2))
(setq d (/ d1 tl))
(setq c (sqrt(+ (* a a) (* d d))))
(setq alpha (angle p1 p2))
(setq gama (atan (/ a d)))
(setq beta1 (- alpha gama))
(setq beta2 (+ alpha gama))
(setq p3 (polar p1 (+ pi beta2) c))
(setq p4 (polar p2 beta1 c))
(setq p5 (polar p2 beta2 c))
(setq p6 (polar p1 (+ pi beta1) c))
(command "Pline" p3 p4 p5 p6 "c")
(setq e (/ (/ (- a1 (* 2 e1)) tl) 2))
(setq f (sqrt(+ (* e e) (* d d))))
(setq gama1 (atan (/ e d)))
(setq beta3 (- alpha gama1))
(setq beta4 (+ alpha gama1))
(setq p7 (polar p1 (+ pi beta4) f))
(setq p8 (polar p2 beta3 f))
(command "pline" p7 p8)
(command)
(setvar "osmode" osmd) 
)

 


  • 0

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#3 thanhtam_1990

thanhtam_1990

    biết vẽ arc

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

Đã gửi 16 December 2016 - 02:36 PM

cũng vậy ko thấy cải thiện, mất chế độ truy bắt điểm

trên lưới tóc cad mình xuất hiện hình mặt cười ko biết gỡ sao


  • 0

#4 Danh Cong

Danh Cong

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 362 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 16 December 2016 - 02:55 PM

cũng vậy ko thấy cải thiện, mất chế độ truy bắt điểm

trên lưới tóc cad mình xuất hiện hình mặt cười ko biết gỡ sao

+ Sr. Ko nhìn kỹ lisp của bạn:

- Thêm 1 lỗi bắt điểm nữa là do bạn viết code (setvar "osmode" 0) trước cả câu lệnh "Chọn điểm đầu", "Chọn điểm cuối". Nên việc lisp ko thực hiện bắt điểm là điều đương nhiên.

Giờ bạn thử chuyển code ( setvar "osmode" 0) sau câu lệnh chọn điểm đầu và điểm cuối là được..

Lisp tôi sửa lại up luôn ở #2 cho đỡ phải gởi bài mới.  


  • 0

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#5 thanhtam_1990

thanhtam_1990

    biết vẽ arc

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

Đã gửi 16 December 2016 - 03:07 PM

LIST NÀY KO PAHIR MÌNH VIẾT BẠN, 


  • 0

#6 ndtnv

ndtnv

    biết lệnh divide

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

Đã gửi 16 December 2016 - 03:09 PM

1. Phải đưa xuống dưới nữa, tốt nhất là ngay trên dòng:

(command "Pline" p3 p4 p5 p6 "c")

2. Sửa

(setq p2 (getpoint "diem cuoi:"))

thành

(setq p2 (getpoint p1 "diem cuoi:"))

cho dễ hình dung


  • 1

#7 thanhtam_1990

thanhtam_1990

    biết vẽ arc

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

Đã gửi 16 December 2016 - 03:34 PM

bác nào sửa hoàn chỉnh hộ cái đi ak, chứ mình ko biết viết, thank mấy bác


  • -1

#8 Danh Cong

Danh Cong

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 362 Bài viết
Điểm đánh giá: 73 (tàm tạm)

Đã gửi 16 December 2016 - 04:12 PM

bác nào sửa hoàn chỉnh hộ cái đi ak, chứ mình ko biết viết, thank mấy bác

+ Chào ThanhTam !

+ Bạn hãy Copy nguyên lisp mục #2 về , paste vào lisp cũ. Tắt cad, bật lại. Rồi gõ V. 

 

+ Mong bạn lần sau viết topic thì ghi luôn là bạn đi copy lisp về sài, ko biết sửa . Chứ bạn viết topic như vậy làm mọi người tưởng bạn viết lisp ra, sẽ hướng dẫn cho bạn nâng cao trình độ. Vừa đỡ mệt cho người hỏi, cũng đỡ mệt cho người trả lời ! Chúc bạn sử dụng diễn đàn hiệu quả.. 


  • 0

             ***  Vô lo - Vô nghĩ - Vô sầu hận  ***

***  Chẳng thương - Chẳng giận - Chẳng đau lòng  ***


#9 thanhtam_1990

thanhtam_1990

    biết vẽ arc

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

Đã gửi 16 December 2016 - 05:44 PM

Bác nào cao nhân viết lại list hoàn chỉnh dùm mình cái, mình ko ràn về all mã với check, mình chỉ biết sử dụng list để vẽ thôi, với mấy bác sửa check lại dùm e với mã đầu sửa lại ko có hiệu quả cũng bị mất truy bắt điểm


  • -1