Đến nội dung


Hình ảnh
- - - - -

TÍNH ĐỘ DỐC


  • Please log in to reply
32 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 31 December 2011 - 11:25 PM

Anh có thể viết thêm pick để chọn hướng vẽ độ dốc được không. Sau khi chọn số thập phân sẽ hỏi pick hai điểm để xác định vị trí đặc kí hiệu dốc.

Càng ngày bạn càng làm phức tạp bài toán.
"Anh có thể viết thêm pick để chọn hướng vẽ độ dốc được không. Sau khi chọn số thập phân sẽ hỏi pick hai điểm để xác định vị trí đặc kí hiệu dốc"
Câu này thật khó hiểu!
Còn về hướng dốc, tôi đã đặt cho bạn 2 tuỳ chọn: từ Trái qua phải thì nhập T, từ Phải qua trái thì nhập P.
  • 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 quoc93

quoc93

    biết vẽ line

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

Đã gửi 01 January 2012 - 09:32 AM

bản vẽ của em có tl là 1/200 nên chiều khi em pick chọn đối tượng thì nó không hiểu đúng chiều dài mong anh sửa cho chọn tỉ lệ bản vẽ. Anh xem trong bản vẽ cad em đã gởi khi tính độ dốc thì không đúng như khi tính tay.
Mà hình như anh thiếu nhân 100 nên độ dốc nhỏ hơn 100 lần so với thực tế. cảm ơn
  • 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 01 January 2012 - 11:14 AM

bản vẽ của em có tl là 1/200 nên chiều khi em pick chọn đối tượng thì nó không hiểu đúng chiều dài mong anh sửa cho chọn tỉ lệ bản vẽ. Anh xem trong bản vẽ cad em đã gởi khi tính độ dốc thì không đúng như khi tính tay.
Mà hình như anh thiếu nhân 100 nên độ dốc nhỏ hơn 100 lần so với thực tế. cảm ơn


Đây bạn! Pick chọn đối tượng để lấy chiều dài là ý ban đầu của bạn.

;Doan Van Ha - CADViet.com - Ngay 31/12/2011
;Muc dich: Tinh va ghi do doc.
(defun C:HA( / ent1 ent2 ent3 ent4 obj cd pg h sty lop doc pg1 pg2 pt1 ptg pt2 goc gocL)
(BAT_DAU)
(setq ent1 (entsel "\nPick Text cao do diem dau: "))
(setq ent2 (entsel "\nPick Text cao do diem cuoi: "))
(setq ent3 (entsel "\nPick len 1 Text mau de lay thong tin Text: "))
(setq ent4 (entsel "\nPick duong can lay chieu dai va ghi do doc: "))
(or *stp* (setq *stp* 2))
(setq stp (getint (strcat "\nSo chu so thap phan <" (itoa *stp*) ">: ")))
(if (not stp) (setq stp *stp*) (setq *stp* stp))
(or *tlv* (setq *tlv* 200))
(setq tlv (getint (strcat "\nTi le ban ve <" (itoa *tlv*) ">: ")))
(if (not tlv) (setq tlv *tlv*) (setq *tlv* tlv))
(initget "T P") (setq huong (getkword "\nChon huong ve do doc [Trai->phai/Phai->trai]: "))
(if (and ent1 ent2 ent3 ent4 stp tlv)
(progn
(setq obj (vlax-ename->vla-object (car ent4)))
(setq cd (vlax-curve-getDistAtParam obj (vlax-curve-getEndParam obj)))
(setq pg (vlax-curve-getPointAtDist obj (/ cd 2)))
(setq goc (angle '(0 0 0) (vlax-curve-getFirstDeriv obj (vlax-curve-getParamAtPoint obj pg))))
(cond ((>= (* 1 pi) goc (* 0.5 pi)) (setq goc (- goc pi)))
((>= (* 1.5 pi) goc pi) (setq goc (- goc pi)))
((>= (* 2 pi) goc (* 1.5 pi)) (setq goc (- goc (* 2 pi)))))
(setq h (cdr (assoc 40 (entget (car ent3)))))
(setq sty (cdr (assoc 7 (entget (car ent3)))))
(setq lop (cdr (assoc 8 (entget (car ent3)))))
(setq doc (abs (* 100 (/ 1000.0 tlv) (/ (- (atof (cdr (assoc 1 (entget (car ent1))))) (atof (cdr (assoc 1 (entget (car ent2)))))) cd))))
(setq pg1 (polar pg (+ goc (/ pi 2)) (* 1.5 h)))
(setq pg2 (polar pg1 (+ goc (/ pi 2)) (* 1.5 h)))
(cond ((and (>= goc 0) (= huong "T")) (setq gocL goc))
((and (>= goc 0) (= huong "P")) (setq gocL (+ pi goc)))
((and (< goc 0) (= huong "T")) (setq gocL goc))
((and (< goc 0) (= huong "P")) (setq gocL (+ pi goc))))
(setq pt1 (polar pg1 (+ gocL pi) (* 3 h)) ptg (polar pt1 gocL (* 5 h)) pt2 (polar ptg gocL (* 1 h)))
(acet-sysvar-set (list "osmode" 0 "cmdecho" 0))
(command "pline" pt1 ptg "w" (* 0.2 h) 0 pt2 "")
(command "text" "s" sty "j" "m" pg2 h (/ (* 180 goc) pi) (strcat (rtos doc 2 stp) "%"))
(command "change" (entlast) "" "p" "la" lop "")))
(KET_THUC)
(princ))
(defun BAT_DAU()
(vl-load-com)
(setq AcDoc (vla-get-activeDocument (vlax-get-acad-object)))
(vla-StartUndoMark AcDoc)
(setq err *error* *error* KHI_LOI))
(defun KET_THUC()
(acet-sysvar-restore)
(vla-EndUndoMark AcDoc)
(setq *error* err))
(defun KHI_LOI(msg)
(acet-sysvar-restore)
(vla-EndUndoMark AcDoc)
(redraw)
(command "u")
(princ (strcat "\n" msg ", Reset System Variables\n"))
(setq *error* err))

  • 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 quoc93

quoc93

    biết vẽ line

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

Đã gửi 01 January 2012 - 03:29 PM

Anh hướng dẫn thêm chỗ chọn tỉ lệ bản vẽ dùm em: VD nếu tl bản vẽ của em là 1/200 thì em nhập vào chỗ chọn tỉ lệ là 200 phải không hay sao. Nếu mà là nhập 200 thì kết quả ra không đúng như khi em tính tay. Anh xem kiểm tra lại trên bản vẽ em đã gửi. Một số độ dốc em đã tính tay có ghi trên đó. Hình như anh thiếu nhân 100 nên kết quả ra rất nhỏ
  • 0

#25 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 01 January 2012 - 03:58 PM

Anh hướng dẫn thêm chỗ chọn tỉ lệ bản vẽ dùm em: VD nếu tl bản vẽ của em là 1/200 thì em nhập vào chỗ chọn tỉ lệ là 200 phải không hay sao. Nếu mà là nhập 200 thì kết quả ra không đúng như khi em tính tay. Anh xem kiểm tra lại trên bản vẽ em đã gửi. Một số độ dốc em đã tính tay có ghi trên đó. Hình như anh thiếu nhân 100 nên kết quả ra rất nhỏ

Bạn upload bản vẽ trực tiếp lên Cadviet, chứ qua một web trung gian tôi không mở được. Tỉ lệ 1/200 thì nhập 200. Đã nhân 100.
  • 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.


#26 quoc93

quoc93

    biết vẽ line

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

Đã gửi 01 January 2012 - 04:43 PM

Bản vẽ cad: em up lên mediafire anh chỉ cần download về là ok. .
http://www.mediafire...9upi7y9szqd47y6
upload trực tiếp lên cadviet lâu quá với lại giảm tải cho trang web nên em up lên trang media fire
http://www.cadviet.c.../103856_1_1.rar đây theo yêu cầu của anh.
  • 0

#27 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 01 January 2012 - 06:24 PM

Khái niệm tỉ lệ bản vẽ của bạn không đúng, nhưng tôi cũng căn cứ trên đó để sửa lại cho bạn, vẫn link trên.
Ngoài ra, nếu có 1 vị trí nào đó mà bị lỗi (rất hiếm hoi) thì bạn cố gắng làm thủ công nhé, vì lỗi này tôi biết nguyên nhân nhưng chưa khắc phục được, để hỏi các cao thủ đã.
Hôm nay nghỉ tết mà hơi mệt vì bạn đấy!
  • 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.


#28 quoc93

quoc93

    biết vẽ line

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

Đã gửi 01 January 2012 - 09:50 PM

Thành thật cảm ơn anh. Đầu tiên chúc anh nghỉ tết vui vẻ, cuối cùng là nhờ anh sửa lại một chút ở chỗ cho cái mũi tên trùng với đường thẳng mình chọn, nếu nó là một cái block như bản vẽ cad của em thì tốt quá, khoảng cách giữa text và mũi tên gần hơn nữa thì ok. ( :mellow: :blush: :blink: :ph34r: )
  • 0

#29 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 01 January 2012 - 09:59 PM

Sửa
(setq pg1 (polar pg (+ goc (/ pi 2)) (* 1.5 h)))
Thành
(setq pg1 pg)
Bạn xem lại từ hôm qua tới giờ bạn đã đặt ra bao nhiêu y/c? Không thương người viết lisp giúp bạn à?
  • 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.


#30 quoc93

quoc93

    biết vẽ line

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

Đã gửi 01 January 2012 - 10:14 PM

Em đã nói rồi : THÀNH THẬT CẢM ƠN em không ngờ là yêu cầu là tính độ dốc thôi nhưng để tự động hóa nó thì thật phức tạp
  • 0

#31 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 01 January 2012 - 10:30 PM

Em đã nói rồi : THÀNH THẬT CẢM ƠN em không ngờ là yêu cầu là tính độ dốc thôi nhưng để tự động hóa nó thì thật phức tạp

Góp ý với bạn:
1. Lần sau y/c thì thể hiện tất cả 1 lần, chứ cứ lắt nhắt thì rất nản cho người giúp bạn, không cứ gì tôi.
2. Y/c phải thật rõ ràng và chính xác, chứ y/c của bạn là rất mâu thuẫn giữa các lần.
3. Nhiều khái niệm của bạn đưa ra là không đúng nên dễ hiểu nhầm. Tôi đã rất vất vả để hiểu được ý bạn.
4. Thống nhất: chúng ta kết thúc bài này ở đây.
  • 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.


#32 quoc93

quoc93

    biết vẽ line

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

Đã gửi 03 January 2012 - 09:09 PM

Đây là bản vẽ cad gốc TL 1:1 (tức là 1m thì vẽ 1 đơn vị)
http://www.mediafire...46mui7uxlt9kou9
Đây là bản vẽ chi tiết thiết kế nút TL 1/200 (tức là 1m thì vẽ là 5 đơnvị (1000/200)
http://www.mediafire...44eoo8mrfftpua7
Giả sử em đã có tọa độ hai điểm A,B theo bản vẽ gốc. Nhờ anh Hà viết lisp tính các tọa độ mà mình chọn trên bản vẽ chi tiết theo đúng bản vẽ gốc (các điểm em đã đánh dấu)
Bản vẽ chi tiết nó đã bị xoay và move và scale nên không đúng tọa độ.
Mình pick chọn điểm nào thì nó đánh số thứ tự 1,2,3.. còn tọa độ thì xuất ra file txt để chỉnh sửa. Cảm ơn
  • 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 03 January 2012 - 09:53 PM

Đây là bản vẽ cad gốc TL 1:1 (tức là 1m thì vẽ 1 đơn vị)
http://www.mediafire...46mui7uxlt9kou9
Đây là bản vẽ chi tiết thiết kế nút TL 1/200 (tức là 1m thì vẽ là 5 đơnvị (1000/200)
http://www.mediafire...44eoo8mrfftpua7
Giả sử em đã có tọa độ hai điểm A,B theo bản vẽ gốc. Nhờ anh Hà viết lisp tính các tọa độ mà mình chọn trên bản vẽ chi tiết theo đúng bản vẽ gốc (các điểm em đã đánh dấu)
Bản vẽ chi tiết nó đã bị xoay và move và scale nên không đúng tọa độ.
Mình pick chọn điểm nào thì nó đánh số thứ tự 1,2,3.. còn tọa độ thì xuất ra file txt để chỉnh sửa. Cảm ơn

Thứ nhất:

Góp ý với bạn:
...
4. Thống nhất: chúng ta kết thúc bài này ở đây.

Thứ hai: với yêu cầu này của bạn thì bạn nên mở topic mới, kẻo mọi người khó theo dõi.
Thứ ba: sang bên đó bạn cứ đặt y/c và đừng nên chỉ danh nhờ ai hết, làm vậy chỉ có lợi cho bạn.
Tôi tin thế nào cũng có người giúp bạn.
  • 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.