Đến nội dung


Hình ảnh
- - - - -

[nhờ chỉnh sửa] lisp vẽ pline


  • Please log in to reply
4 replies to this topic

#1 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 23 January 2013 - 11:21 AM

mình đang viết lisp vẽ kích thước hố ga nhưng vướng 1 cái là vẽ các pline không được (nó chồng lên nhau hoặc khi được khi không) nhờ mọi người giúp đỡ cám ơn nhiều
đây là đoạn lisp

(defun c:vehoga ()
(setq p (getpoint "\nNhap diem ve:"))
(setq h 2.5);(distof cc))
(setq b 1.2);(distof cr))
(setq l 1.0);(distof cd))
(setq d 0.2);(distof dt))
(setq goc (/ pi 2))
(setq b1 (+ b (* 2 d)))
(setq h1 (- h d))
(setq goc1 (* 3 (/ pi 2)))
(setq p0 (polar p goc1 d))
(vethanhtrong)
(vethanhngoai)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun vethanhtrong ()
(setq p1 (polar p 0 (/ b 2)))
(setq p2 (polar p1 goc h1))
(setq p3 (polar p pi (/ b 2)))
(setq p4 (polar p3 goc h1))
(command ".Pline" p2 p1 p3 p4 "")
(COMMAND ".PEDIT" "last" "W" "0" "")
)
(defun vethanhngoai ()
(setq p5 (polar p0 0 (/ b1 2)))
(setq p6 (polar p5 goc h))
(setq p7 (polar p0 pi (/ b1 2)))
(setq p8 (polar p7 goc h))
(command ".Pline" p6 p5 p7 p8 "")
(COMMAND ".PEDIT" "last" "W" "0" "")
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun C:vhga ()
(dodegoi))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun dodegoi (/ COM)
(setq DCL_ID (load_dialog (strcat odiachay "\\tlkt\\dcl\\chon.DCL")))
(new_dialog "CONG" DCL_ID)
(if (not cc) (setq cc "0.00"))
(set_tile "cc" cc)
(if (not cr) (setq cr "0.00"))
(set_tile "cr" cr)
(if (not cd) (setq cd "0.00"))
(set_tile "cd" cd)
(if (not dt) (setq dt "0.00"))
(set_tile "dt" dt)
(action_tile "cc" "(setq cc $value) (KIEM_TRA_LOI)")
(action_tile "cr" "(setq cr $value) (KIEM_TRA_LOI)")
(action_tile "cd" "(setq cd $value) (KIEM_TRA_LOI)")
(action_tile "dt" "(setq dt $value) (KIEM_TRA_LOI)")
(action_tile "ve" "(done_dialog 1)")
(action_tile "thoat" "(done_dialog 14)")
(setq phepchon(start_dialog))
(cond
((= phepchon 1) (vehoga))

((= phepchon 14) (thoi))
)
(unload_dialog DCL_ID)
(princ))
(defun KIEM_TRA_LOI ()
(set_tile "error" "")
(if
(/= (type (distof cc)) 'real)
(progn
(set_tile "error" "Nhap lai chieu cao!")
(mode_tile "cc" 2)))
(if
(/= (type (distof cr)) 'real)
(progn
(set_tile "error" "Nhap lai chieu rong!")
(mode_tile "cr" 2)))
(if
(/= (type (distof cd)) 'real)
(progn
(set_tile "error" "Nhap lai chieu dai!")
(mode_tile "cd" 2)))
(if
(/= (type (distof dt)) 'real)
(progn
(set_tile "error" "Nhap lai day thanh!")
(mode_tile "dt" 2)))
)

  • 1

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 January 2013 - 11:23 AM

Nhiều khả năng bị osnap.
  • 1

* 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 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 643 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 23 January 2013 - 12:17 PM

mình đang viết lisp vẽ kích thước hố ga nhưng vướng 1 cái là vẽ các pline không được (nó chồng lên nhau hoặc khi được khi không) nhờ mọi người giúp đỡ cám ơn nhiều
đây là đoạn lisp

Mình nghĩ là bạn mới tập về lisp, không biết ban có ý định phát triển thêm không, nếu có, mình rất mừng khi có thêm một lisper nữa (hì hì)
Mình cũng nghĩ như bác Hà, bạn có lẽ bị sai trong một số trường hợp do biến osnap để sửa thì rất đơn giản.
Ở đầu đoạn lisp chỗ


(defun c:vehoga ()
(setq oldOS (getvar "osmode"))
(setvar "osmode" 0)
Bạn thêm hai dòng màu đỏ
và ở cuối đoạn lisp bạn thêm dòng xanh vào đây nữa

(setvar "osmode" oldOs)
(princ)
)
P/s bạn mới viết lisp chưa xem kỹ nhưng thiếu xót nhiều: cần tìm hiểu thêm về biến toàn cục, biến địa phương, nhưng cách tư duy Code của bạn cũng có nhiều điểm mình cần học hỏi, chúc bạn vui khỏe, thêm yêu thích lisp
  • 1

#4 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 23 January 2013 - 02:08 PM

Mình nghĩ là bạn mới tập về lisp, không biết ban có ý định phát triển thêm không, nếu có, mình rất mừng khi có thêm một lisper nữa (hì hì)
Mình cũng nghĩ như bác Hà, bạn có lẽ bị sai trong một số trường hợp do biến osnap để sửa thì rất đơn giản.
Ở đầu đoạn lisp chỗ


(defun c:vehoga ()
(setq oldOS (getvar "osmode"))
(setvar "osmode" 0)
Bạn thêm hai dòng màu đỏ
và ở cuối đoạn lisp bạn thêm dòng xanh vào đây nữa

(setvar "osmode" oldOs)
(princ)
)
P/s bạn mới viết lisp chưa xem kỹ nhưng thiếu xót nhiều: cần tìm hiểu thêm về biến toàn cục, biến địa phương, nhưng cách tư duy Code của bạn cũng có nhiều điểm mình cần học hỏi, chúc bạn vui khỏe, thêm yêu thích lisp

Cám ơn bạn đã quan tâm để mình sửa lại minh chỉ hoc lỏm thôi. nói chung các cấu trúc lệnh mình chưa thuộc hết. viết về lệnh gì là mình tìm code của 1 ai đó sau đó về sửa lại cho phù hợp các các vấn đề biến thực sự chưa quan tâm lắm lắm
chúc bạn sức khoe gặp nhiều may mắn trong cuộc sống.
  • 0

#5 huunhantvxdts

huunhantvxdts

    biết dimbaseline

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

Đã gửi 23 January 2013 - 02:16 PM

Đã làm được rồi thế mà mất mấy ngày ko làm được? Bây giờ để phát triển lên thêm 1 tí nữa (hiiiiiiii)
  • 0