Đến nội dung


Hình ảnh
- - - - -

nội suy cao độ đường cong


  • Please log in to reply
62 replies to this topic

#41 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 04 January 2012 - 03:38 PM

Mình bàn từng ý đi: khoảng cách anh đo được là 2033 là đúng rồi nhưng đơn vị của nó là cm đổi ra m là 20.33. Với độ dốc 0.45% thì 0.0045*20.33=0.091485. Độ dốc hướng xuống nên cộng thêm 0.091485 + 23.950 =24.041485 . Mong anh xem lại dùm

Hề hề hề,
Xin hỏi khí không phải là bạn đi làm được bao lâu rồi???? Thâm niên nghề nghiệp của bạn chừng bao nhiêu chục con giáp???? Bạn vẽ trên CAD từ trước tới nay vẫn theo kiểu như bạn hiểu vậy sao???
Nếu quả là vậy thì bạn nên học lại những kiến thức cơ bản để sử dụng khi vẽ đi nhé.
Kích thước thực dùng để vẽ phải luôn là kích thước bạn dim được chia cho hệ số tỷ lệ bạn sử dụng trong cái dimstyle đó chứ??? Tại sao bạn lại hiểu theo kiểu râu ông nọ cắm nhầm vào cằm bà kia như vậy????
Bạn hiểu vậy thì đến 99% là bản vẽ của bạn sẽ sai tít mù mà có giời mới kiểm soát nổi bạn ạ.....
Rất mong bạn bình tĩnh xem xét lại vấn đề của mình bạn nhé. nếu bạn chưa hiểu được đúng vấn đề thì có vẽ đến tết Công gô cũng vẫn cứ sai mà thôi.....
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.

#42 quoc93

quoc93

    biết vẽ line

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

Đã gửi 04 January 2012 - 03:46 PM

Có thể là em chưa hiểu gì về tỉ lệ bản vẽ nhưng em nhờ anh viết dùm cái lisp với cái đề bài đấy. Đợt trước anh Hà cũng đã bảo em về vấn đề này nhưng cuối cùng anh ấy vẫn giúp được (anh xem cái lisp tính độ dốc của anh Hà). Cảm ơn
  • 0

#43 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 04 January 2012 - 04:22 PM

Có thể là em chưa hiểu gì về tỉ lệ bản vẽ nhưng em nhờ anh viết dùm cái lisp với cái đề bài đấy. Đợt trước anh Hà cũng đã bảo em về vấn đề này nhưng cuối cùng anh ấy vẫn giúp được (anh xem cái lisp tính độ dốc của anh Hà). Cảm ơn

Hề hề hề,
Rất xin lỗi bạn vì không thể giúp được bạn. Cái tư duy của mình không hiểu nổi yêu cầu của bạn và cũng không chấp nhận làm mà chẳng hiểu mình làm gì. Vì thế nếu mình có làm chắc cũng không ra được cái bạn cần.
Thành thật mong bạn thông cảm.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#44 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 04 January 2012 - 04:44 PM

Có thể là em chưa hiểu gì về tỉ lệ bản vẽ nhưng em nhờ anh viết dùm cái lisp với cái đề bài đấy. Đợt trước anh Hà cũng đã bảo em về vấn đề này nhưng cuối cùng anh ấy vẫn giúp được (anh xem cái lisp tính độ dốc của anh Hà). Cảm ơn

Thế là tôi mắc thêm cái tội đoán mò ý bạn mà bị vạ lây! Đúng là tôi đã đoán mò đúng ý bạn, nhưng bạn đừng bắt người viết lisp tiếp theo cũng đoán mò, tội họ. Mình là dân kỹ thuật, cố gắng nói cái gì cho chắc cái đó. Tôi nghĩ không ai ghét bạn đâu, chỉ là họ khuyên bạn kỹ càng khi post y/c thôi. Hy vọng bạn hiểu.
  • 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.


#45 quoc93

quoc93

    biết vẽ line

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

Đã gửi 04 January 2012 - 04:53 PM

Em nhờ anh làm cái này không biết có được không:
- anh tạo thêm một câu hỏi : tỉ lệ bản vẽ (200): 200
- sau đó trong công thức tính cao độ thì tính như sau: L*i(%)*200/1000
trong đó L:là chiều dài từ điểm gốc từ điểm cần nội suy cao độ
i là độ dốc tính theo %
200 là tỉ lệ bản vẽ.
Cảm ơn.
  • 0

#46 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 04 January 2012 - 05:26 PM

Em nhờ anh làm cái này không biết có được không:
- anh tạo thêm một câu hỏi : tỉ lệ bản vẽ (200): 200
- sau đó trong công thức tính cao độ thì tính như sau: L*i(%)*200/1000
trong đó L:là chiều dài từ điểm gốc từ điểm cần nội suy cao độ
i là độ dốc tính theo %
200 là tỉ lệ bản vẽ.
Cảm ơn.

Không dám đâu! Bác ấy mà giận thì bác ấy quất tôi 1 roi cuống cuồng à? Đợi bác ấy nguôi thì nhờ lại vậy.
@PTB: chín bỏ làm mười. Thôi thì bác cho thêm 1 dòng "Nhập hệ số tuỳ nghi sử dụng" cho khỏi vương vấn tơ lòng, để bạn ấy "cân đối" mà nhập vào vậ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.


#47 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 04 January 2012 - 07:09 PM

Không dám đâu! Bác ấy mà giận thì bác ấy quất tôi 1 roi cuống cuồng à? Đợi bác ấy nguôi thì nhờ lại vậy.
@PTB: chín bỏ làm mười. Thôi thì bác cho thêm 1 dòng "Nhập hệ số tuỳ nghi sử dụng" cho khỏi vương vấn tơ lòng, để bạn ấy "cân đối" mà nhập vào vậy.

Hề hề hề,
Cái nhà bác này thiệt là....... dễ tính.
Thực tình là mình không hiểu nổi cái cách suy luận của bạn ấy nên không dám làm chớ chả phải giận dỗi chi nhau cả. Với cái vốn liếng đi mót của mình trong chừng ấy năm thì cái cách hiểu của bạn ấy quá cao, mình với không tới, mà cố quá thì té gãy cổ như chơi. Còn cái cách hiểu của mình thì mình đã giải trình tường tận nhưng bạn ấy cũng lại không muốn nghe mà cứ muốn suy luận theo cái cách ..... độc chiêu của bạn ấy mới làm mình bí tị đấy chớ.
Giả sử rằng mình cứ máy móc mà làm theo cái bạn ấy gợi ý thì nhỡ khi sử dụng bạn ấy lại chả dùng cái dim style TL200 nữa mà dùng cái dim style TL39000 thì mình biết tính kiểu chi cho nó vừa lòng bạn ấy được hử bác???
Ấy là chưa nói đến việc các bác chuyên ngành nhảy vô phê bình nữa rồi thậm chí cấm cửa chả cho mình chơi chung nữa thì cũng mệt lắm lắm, vì mình vẫn còn muốn đi mót lang thang trên cánh đồng này bác ạ.
Thực lòng mình muốn bạn ấy phải thông cảm và tôn trọng luật chơi chung chớ cứ chơi kiểu chuyên ngành thế này thì có nhẽ cần phải có sân chơi riêng cho bạn ấy thôi chớ mình hổng đủ năng lực "đánh quả" kiểu này đâu.
Đến tận giờ này, mình vẫn không ngộ ra được cái lý có chân của bạn ấy bác ạ. Với cái lý như vậy mà bạn ấy vẫn vẽ được thì quả thật đáng nể phục lắm lắm. Mình đã quên cái thời rút thước tính để mà tính toán các kích thước cần vẽ sao cho nó đúng được cái hình phải vẽ rồi bác ạ. Khổ thế, Vả lại cái kiểu rút của bạn này có nhẽ cũng là một kiểu độc nhất vô nhị (ấy là rút bản vẽ cho nó đúng con số hay sao ấy bác ạ, không tin bác cứ check thử cái bản vẽ mà bạn ấy post lên diễn đàn sẽ rõ )
Vậy nên rất mong bác tha cho cái tội học chửa đến nơi của mình, và cho mình thêm vài chục năm nữa để ngộ cho được cái lý có chân này.....
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.

#48 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 04 January 2012 - 09:13 PM

Hề hề hề,
Cái nhà bác này thiệt là....... dễ tính.
Thực tình là mình không hiểu nổi cái cách suy luận của bạn ấy nên không dám làm chớ chả phải giận dỗi chi nhau cả. Với cái vốn liếng đi mót của mình trong chừng ấy năm thì cái cách hiểu của bạn ấy quá cao, mình với không tới, mà cố quá thì té gãy cổ như chơi. Còn cái cách hiểu của mình thì mình đã giải trình tường tận nhưng bạn ấy cũng lại không muốn nghe mà cứ muốn suy luận theo cái cách ..... độc chiêu của bạn ấy mới làm mình bí tị đấy chớ.
Giả sử rằng mình cứ máy móc mà làm theo cái bạn ấy gợi ý thì nhỡ khi sử dụng bạn ấy lại chả dùng cái dim style TL200 nữa mà dùng cái dim style TL39000 thì mình biết tính kiểu chi cho nó vừa lòng bạn ấy được hử bác???
Ấy là chưa nói đến việc các bác chuyên ngành nhảy vô phê bình nữa rồi thậm chí cấm cửa chả cho mình chơi chung nữa thì cũng mệt lắm lắm, vì mình vẫn còn muốn đi mót lang thang trên cánh đồng này bác ạ.
Thực lòng mình muốn bạn ấy phải thông cảm và tôn trọng luật chơi chung chớ cứ chơi kiểu chuyên ngành thế này thì có nhẽ cần phải có sân chơi riêng cho bạn ấy thôi chớ mình hổng đủ năng lực "đánh quả" kiểu này đâu.
Đến tận giờ này, mình vẫn không ngộ ra được cái lý có chân của bạn ấy bác ạ. Với cái lý như vậy mà bạn ấy vẫn vẽ được thì quả thật đáng nể phục lắm lắm. Mình đã quên cái thời rút thước tính để mà tính toán các kích thước cần vẽ sao cho nó đúng được cái hình phải vẽ rồi bác ạ. Khổ thế, Vả lại cái kiểu rút của bạn này có nhẽ cũng là một kiểu độc nhất vô nhị (ấy là rút bản vẽ cho nó đúng con số hay sao ấy bác ạ, không tin bác cứ check thử cái bản vẽ mà bạn ấy post lên diễn đàn sẽ rõ )
Vậy nên rất mong bác tha cho cái tội học chửa đến nơi của mình, và cho mình thêm vài chục năm nữa để ngộ cho được cái lý có chân này.....
Hề hề hề.

Bác 3 Hề ơi!
Màu đỏ: tôi còn phải thức canh để mượn thước nhưng không chắc gì được nữa cơ.
Còn lại: tôi không phải là người dễ tính. Bác theo dõi CV quá biết, tôi là "chuyên gia tranh luận" mà. Tuy nhiên, mà thôi, có gì đó thì tôi sorry bác.
Kết luận: đôi khi vì những chuyện đâu đâu mà mệt cho bác và tôi, bác nhỉ.
Thân thương!
  • 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.


#49 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 06 April 2012 - 09:58 PM

Đây bạn Quoc93!


;Writen by PTB, changed by DVH (03/01/2012).
;Noi suy cao do tung diem tren Curve theo 2 Text cao do dau va cuoi Curve.
;Thu tu cua Text co the chon bat ky.
(defun c:nscdpl (/ pl oldos obj enta entb ha ha pa pb p1 p2 pllength pl1 sole hd hc pt hp)
(vl-load-com)
(setq oldos (getvar "osmode"))
(command "undo" "be")
(setq pl (car (entsel "\nChon Curve can noi suy cao do: "))
obj (vlax-ename->vla-object pl)
enta (car (entsel "\nChon Text cao do thu 1: "))
entb (car (entsel "\nChon Text cao do thu 2: "))
ha (atof (cdr (assoc 1 (entget enta))))
hb (atof (cdr (assoc 1 (entget entb))))
pa (cdr (assoc 10 (entget enta)))
pb (cdr (assoc 10 (entget entb)))
p1 (vlax-curve-getStartPoint obj)
p2 (vlax-curve-getEndPoint obj)
pllength (vlax-curve-getdistatpoint obj (vlax-curve-getendpoint obj)))
(or *sole* (setq *sole* 2))
(setq sole (getint (strcat "\nSo chu so thap phan ban khoai <" (itoa *sole*) ">: ")))
(if (not sole) (setq sole *sole*) (setq *sole* sole))
(if (< (distance p1 pa) (distance p1 pb))
(setq hd ha hc hb)
(setq hd hb hc ha))
(princ "\nLan luot chon cac diem can noi suy thuoc Curve...")
(while (setq pt (getpoint "\nChon diem: "))
(setq pl1 (vlax-curve-getdistatpoint obj pt)
hp (+ hd (* (- hc hd) (/ pl1 pllength))))
(command "text" pt 2 0 (rtos hp 2 sole)))
(command "undo" "end")
(setvar "osmode" oldos)
(princ))

Nhiều khi e cần chọn 2 điểm đầu và cuối bất kỳ VD: A,B.... nằm trên curve (chứ không phải lúc nào cũng là 2 điểm mút của đường curve) đã có cao độ, rồi nội suy ra cao độ tại 1 điểm nằm giữa 2 điểm được chọn đó (vẫn nằm trên curve). Em thấy lisp này chưa có lựa chọn đó. Mong các bác giúp e bổ sung thêm lựa chọn cho lisp:
Hình đã gửi
1. Chọn điểm mốc thứ nhất
2.Chọn cao độ của mốc thứ nhất (Có thể pick vào text có sẵn hoặc nhập tay vào)
3. Chọn điểm mốc thứ hai
4.Chọn cao độ của mốc thứ hai (Có thể pick vào text có sẵn hoặc nhập tay vào)
(Lisp tự động tính độ dốc giữa 2 điểm A-B: lấy cao độ 2 đầu trừ nhau chia cho chiều dài đoạn AB, AB không phân biệt cong thẳng, chỉ cần lấy chiều dài)
5.Chọn vị trí cần nội suy (xin đừng làm mất chế độ bắt điểm :D)
6.Kết quả nội suy thể hiện trên command
7.Chọn vị trí tiếp theo hoặc thoát lệnh
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#50 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 06 April 2012 - 11:33 PM

Nhiều khi e cần chọn 2 điểm đầu và cuối bất kỳ VD: A,B.... nằm trên curve (chứ không phải lúc nào cũng là 2 điểm mút của đường curve) đã có cao độ, rồi nội suy ra cao độ tại 1 điểm nằm giữa 2 điểm được chọn đó (vẫn nằm trên curve). Em thấy lisp này chưa có lựa chọn đó. Mong các bác giúp e bổ sung thêm lựa chọn cho lisp:
Hình đã gửi
1. Chọn điểm mốc thứ nhất
2.Chọn cao độ của mốc thứ nhất (Có thể pick vào text có sẵn hoặc nhập tay vào)
3. Chọn điểm mốc thứ hai
4.Chọn cao độ của mốc thứ hai (Có thể pick vào text có sẵn hoặc nhập tay vào)
(Lisp tự động tính độ dốc giữa 2 điểm A-B: lấy cao độ 2 đầu trừ nhau chia cho chiều dài đoạn AB, AB không phân biệt cong thẳng, chỉ cần lấy chiều dài)
5.Chọn vị trí cần nội suy (xin đừng làm mất chế độ bắt điểm :D)
6.Kết quả nội suy thể hiện trên command
7.Chọn vị trí tiếp theo hoặc thoát lệnh

"Em thấy lisp này chưa có lựa chọn đó"
Lisp viết ra là theo y/c của chủ topic, chưa chắc đã phù hợp với y/c của người khác. Vì vậy, nếu bạn cần thì cứ y/c thêm.
Y/c của bạn có thể làm được!
  • 2

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


#51 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 06 April 2012 - 11:44 PM

"Em thấy lisp này chưa có lựa chọn đó"
Lisp viết ra là theo y/c của chủ topic, chưa chắc đã phù hợp với y/c của người khác. Vì vậy, nếu bạn cần thì cứ y/c thêm.
Y/c của bạn có thể làm được!

Hjj e yêu cầu ở trên rùi ah. Chờ tin bác. :D
Nhưng đây là topic cũ, không biết có được viết tiếp ở đây lun không.
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#52 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 06 April 2012 - 11:46 PM

Hjj e yêu cầu ở trên rùi ah. Chờ tin bác. :D
Nhưng đây là topic cũ, không biết có được viết tiếp ở đây lun không.

đợi sáng mai ở đây chứ đừng mở topic mới sẽ nhạt forum.
  • 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.


#53 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 07 April 2012 - 09:34 AM

Nhiều khi e cần chọn 2 điểm đầu và cuối bất kỳ VD: A,B.... nằm trên curve (chứ không phải lúc nào cũng là 2 điểm mút của đường curve) đã có cao độ, rồi nội suy ra cao độ tại 1 điểm nằm giữa 2 điểm được chọn đó (vẫn nằm trên curve). Em thấy lisp này chưa có lựa chọn đó. Mong các bác giúp e bổ sung thêm lựa chọn cho lisp:
Hình đã gửi
1. Chọn điểm mốc thứ nhất
2.Chọn cao độ của mốc thứ nhất (Có thể pick vào text có sẵn hoặc nhập tay vào)
3. Chọn điểm mốc thứ hai
4.Chọn cao độ của mốc thứ hai (Có thể pick vào text có sẵn hoặc nhập tay vào)
(Lisp tự động tính độ dốc giữa 2 điểm A-B: lấy cao độ 2 đầu trừ nhau chia cho chiều dài đoạn AB, AB không phân biệt cong thẳng, chỉ cần lấy chiều dài)
5.Chọn vị trí cần nội suy (xin đừng làm mất chế độ bắt điểm :D)
6.Kết quả nội suy thể hiện trên command
7.Chọn vị trí tiếp theo hoặc thoát lệnh

.......

Lisp này Tue_NV viết đã khá lâu, dành cho Line, nay nâng cấp lên cho 1 Curve


(defun c:nsuy(/ curve p1 Z1 p2 Z2 cao dis Hz tana a)
(setq curve (car(entsel "\n Chon Curve :")))
(setq p1 (getpoint "\n Nhap diem P1 :"))
(setq Z1 (getreal "\n Nhap cao do Z1 :"))
(setq p2 (getpoint p1 "\n Nhap diem P2 :"))
(setq Z2 (getreal "\n Nhap cao do Z2 :"))
(setq cao (getdist "\n Nhap chieu cao chu :"))
(setq dis (abs (- (vlax-curve-getdistatpoint curve p1) (vlax-curve-getdistatpoint curve p2))))
(setq Hz (- Z1 Z2) tana (abs (/ Hz dis)))

(While (setq p (getpoint p1 "\n Nhap diem P / Enter ket thuc lenh :"))
(if (< Z1 Z2)
(if (< (vlax-curve-getparamatpoint curve p1) (vlax-curve-getparamatpoint curve p2))
(progn (setq a (- (vlax-curve-getdistatpoint curve p) (vlax-curve-getdistatpoint curve p1))
Z (+ Z1 (* tana a))) (in (rtos Z 2 3) p cao 0.0) )
(progn (setq a (- (vlax-curve-getdistatpoint curve p1) (vlax-curve-getdistatpoint curve p))
Z (+ Z1 (* tana a))) (in (rtos Z 2 3) p cao 0.0) )
)
)
(if (> Z1 Z2)
(if (< (vlax-curve-getparamatpoint curve p1) (vlax-curve-getparamatpoint curve p2))
(progn (setq a (- (vlax-curve-getdistatpoint curve p2) (vlax-curve-getdistatpoint curve p))
Z (+ Z2 (* tana a))) (in (rtos Z 2 3) p cao 0.0) )
(progn (setq a (- (vlax-curve-getdistatpoint curve p) (vlax-curve-getdistatpoint curve p2))
Z (+ Z2 (* tana a))) (in (rtos Z 2 3) p cao 0.0) )
)
)
);while
(princ)
)
(defun in(txt p cao ang)
(entmake (list(cons 0 "TEXT") (cons 1 txt) (cons 10 p) (cons 11 p) (cons 40 cao) (cons 50 ang)
(cons 72 1) (cons 73 1)
)
)
)

  • 0

#54 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 07 April 2012 - 09:43 AM

Hjj e yêu cầu ở trên rùi ah. Chờ tin bác. :D
Nhưng đây là topic cũ, không biết có được viết tiếp ở đây lun không.

Đây bạn!

;CadViet.com - Doan Van Ha (07/04/2012)
;Noi suy cao do tung diem tren Curve theo 2 Text cao do tai 2 diem bat ky tren Curve.
(defun C:HA (/ obj pa pb enta entb ha ha len p lenp hp)
(vl-load-com)
(command "undo" "be")
(setq obj (vlax-ename->vla-object (car (entsel "\nChon Curve can noi suy cao do: ")))
pa (getpoint "\nChon diem moc thu 1: ")
enta (car (entsel "\nChon Text cao do thu 1: "))
pb (getpoint "\nChon diem moc thu 2: ")
entb (car (entsel "\nChon Text cao do thu 2: "))
ha (atof (cdr (assoc 1 (entget enta))))
hb (atof (cdr (assoc 1 (entget entb))))
len (- (vlax-curve-getDistAtPoint obj pb) (vlax-curve-getDistAtPoint obj pa)))
(or *sole* (setq *sole* 2))
(setq sole (getint (strcat "\nSo chu so thap phan <" (itoa *sole*) ">: ")))
(if (not sole) (setq sole *sole*) (setq *sole* sole))
(princ "\nLan luot chon cac diem tren Curve can noi suy cao do...")
(while (setq p (getpoint "\nChon diem: "))
(setq lenp (- (vlax-curve-getDistAtPoint obj p) (vlax-curve-getDistAtPoint obj pa))
hp (+ ha (/ (* (- hb ha) lenp) len)))
(command "text" "non" p 2 0 (rtos hp 2 sole)))
(command "undo" "end")
(princ))

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


#55 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 07 April 2012 - 09:44 AM

E chờ cả buổi sáng. hjj
Bác Tue_NV ơi, còn thiếu yêu cầu này ự:
2.Chọn cao độ của mốc thứ nhất (Có thể pick vào text có sẵn hoặc nhập tay vào)
4.Chọn cao độ của mốc thứ hai (Có thể pick vào text có sẵn hoặc nhập tay vào)
và có thể hiện thêm kết quả ở command được không ah?
Vì công việc e làm nếu điền text kết quả vào bản vẽ là phải thêm 1 thao tác xóa. Hiện tại text điền kết quả đang có 4 con số sau dấu phẩy đó ah.
Hjj Mong bác chỉnh sửa thêm giúp e......
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#56 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 07 April 2012 - 09:48 AM

Đây bạn!


;CadViet.com - Doan Van Ha (07/04/2012)
;Noi suy cao do tung diem tren Curve theo 2 Text cao do tai 2 diem bat ky tren Curve.
(defun C:HA (/ obj pa pb enta entb ha ha len p lenp hp)
(vl-load-com)
(command "undo" "be")
(setq obj (vlax-ename->vla-object (car (entsel "\nChon Curve can noi suy cao do: ")))
pa (getpoint "\nChon diem moc thu 1: ")
enta (car (entsel "\nChon Text cao do thu 1: "))
pb (getpoint "\nChon diem moc thu 2: ")
entb (car (entsel "\nChon Text cao do thu 2: "))
ha (atof (cdr (assoc 1 (entget enta))))
hb (atof (cdr (assoc 1 (entget entb))))
len (- (vlax-curve-getDistAtPoint obj pb) (vlax-curve-getDistAtPoint obj pa)))
(or *sole* (setq *sole* 2))
(setq sole (getint (strcat "\nSo chu so thap phan <" (itoa *sole*) ">: ")))
(if (not sole) (setq sole *sole*) (setq *sole* sole))
(princ "\nLan luot chon cac diem tren Curve can noi suy cao do...")
(while (setq p (getpoint "\nChon diem: "))
(setq lenp (- (vlax-curve-getDistAtPoint obj p) (vlax-curve-getDistAtPoint obj pa))
hp (+ ha (/ (* (- hb ha) lenp) len)))
(command "text" "non" p 2 0 (rtos hp 2 sole)))
(command "undo" "end")
(princ))

Post bài reply của bác Tue_NV sau bác chậm mấy giây. Của bác chuẩn rùi ah. Hôm nay không ấn LIKE được roài......
Nhưng E vẫn mong được thế này ah: thể hiện thêm kết quả ở command được không ah?
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#57 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 07 April 2012 - 09:52 AM

Post bài reply của bác Tue_NV sau bác chậm mấy giây. Của bác chuẩn rùi ah. Hôm nay không ấn LIKE được roài......
Nhưng E vẫn mong được thế này ah: thể hiện thêm kết quả ở command được không ah?

Cho "nợ" mai Like This

;CadViet.com - Doan Van Ha (07/04/2012)
;Noi suy cao do tung diem tren Curve theo 2 Text cao do tai 2 diem bat ky tren Curve.
(defun C:HA (/ obj pa pb enta entb ha ha len p lenp hp kieu1 kieu2)
(vl-load-com)
(command "undo" "be")
(setq obj (vlax-ename->vla-object (car (entsel "\nChon Curve can noi suy cao do: "))))
(or *sole* (setq *sole* 2))
(setq sole (getint (strcat "\nSo chu so thap phan <" (itoa *sole*) ">: ")))
(if (not sole) (setq sole *sole*) (setq *sole* sole))
(initget "N L") (setq kieu1 (getkword "\nChon cach lay cao do [Nhap vao/Lay tu text] <N>: "))
(initget "T C") (setq kieu2 (getkword "\nChon cach xuat cao do [xuat ra Text/xuat ra Command] <C>: "))
(setq pa (getpoint "\nChon diem moc thu 1: "))
(if (or (= kieu1 "N") (= kieu1 nil))
(setq ha (getreal "\nNhap Text cao do thu 1: "))
(setq ha (atof (cdr (assoc 1 (entget (car (entsel "\nChon text de lay cao do thu 1: "))))))))
(setq pb (getpoint "\nChon diem moc thu 2: "))
(if (or (= kieu1 "N") (= kieu1 nil))
(setq hb (getreal "\nNhap Text cao do thu 2: "))
(setq hb (atof (cdr (assoc 1 (entget (car (entsel "\nChon text de lay cao do thu 2: "))))))))
(setq len (- (vlax-curve-getDistAtPoint obj pb) (vlax-curve-getDistAtPoint obj pa)))
(princ "\nLan luot chon cac diem tren Curve can noi suy cao do...")
(while (setq p (getpoint "\nChon diem: "))
(setq lenp (- (vlax-curve-getDistAtPoint obj p) (vlax-curve-getDistAtPoint obj pa))
hp (+ ha (/ (* (- hb ha) lenp) len)))
(if (= kieu2 "T")
(command "text" "non" p 2 0 (rtos hp 2 sole))
(princ (strcat (rtos hp 2 sole) "\n"))))
(command "undo" "end")
(princ))
P/S (10h25'-07/4/2012): bổ sung nhiều tuỳ chọn
  • 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.


#58 bach1212

bach1212

    biết lệnh trim

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

Đã gửi 07 April 2012 - 10:32 AM

:D Lisp này bị tụt hậu ở đoạn nhập cao độ rùi nè bác.... Không còn lựa chọn pick vào text trên bản vẽ nữa.
E thử xào nấu bằng cách copy đoạn code cho phép pick chọn text ở lisp trước thì thấy ở bước chọn text cao độ thứ 2: nếu không pick chọn text mà nhập bằng tay thì lisp báo lỗi:
Chon Curve can noi suy cao do:
Chon diem moc thu 1:
Chon Text cao do thu 1:
Nhap Text cao do thu 1: 0
Chon diem moc thu 2:
Chon Text cao do thu 2:
Nhap Text cao do thu 2: 20
; error: bad argument type: lentityp nil

Bác lồng ghép 2 trong 1 giúp e lại với ah
  • 0

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#59 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 07 April 2012 - 10:34 AM

:D Lisp này bị tụt hậu ở đoạn nhập cao độ rùi nè bác.... Không còn lựa chọn pick vào text trên bản vẽ nữa.
E thử xào nấu bằng cách copy đoạn code cho phép pick chọn text ở lisp trước thì thấy ở bước chọn text cao độ thứ 2: nếu không pick chọn text mà nhập bằng tay thì lisp báo lỗi:
Chon Curve can noi suy cao do:
Chon diem moc thu 1:
Chon Text cao do thu 1:
Nhap Text cao do thu 1: 0
Chon diem moc thu 2:
Chon Text cao do thu 2:
Nhap Text cao do thu 2: 20
; error: bad argument type: lentityp nil
Bác lồng ghép 2 trong 1 giúp e lại với ah

2 trong 1 rồi, link cũ, sửa lúc 10h25'
  • 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.


#60 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 07 April 2012 - 10:46 AM

E chờ cả buổi sáng. hjj
Bác Tue_NV ơi, còn thiếu yêu cầu này ự:
2.Chọn cao độ của mốc thứ nhất (Có thể pick vào text có sẵn hoặc nhập tay vào)
4.Chọn cao độ của mốc thứ hai (Có thể pick vào text có sẵn hoặc nhập tay vào)
và có thể hiện thêm kết quả ở command được không ah?
Vì công việc e làm nếu điền text kết quả vào bản vẽ là phải thêm 1 thao tác xóa. Hiện tại text điền kết quả đang có 4 con số sau dấu phẩy đó ah.
Hjj Mong bác chỉnh sửa thêm giúp e......

Bạn dùng lệnh UN để chỉnh số lẻ thập phân rồi dùng Lisp này :


(defun c:nsuy(/ curve p1 Z1 p2 Z2 cao dis Hz tana a chontext)
(defun chontext()
(entget(car(entsel "\nChon Text :")))
)
(setq curve (car(entsel "\n Chon Curve :")))
(setq p1 (getpoint "\n Nhap diem P1 :"))
(initget "")
(setq Z1 (getreal "\n Nhap cao do Z1 / Nhan Enter de chon Text :"))
(if (null Z1) (setq text (chontext) cao (cdr(assoc 40 text)) Z1 (atof (cdr(assoc 1 text))) ) )

(setq p2 (getpoint p1 "\n Nhap diem P2 :"))
(initget "")
(setq Z2 (getreal "\n Nhap cao do Z2 / Nhan Enter de chon Text :"))
(if (null Z2) (setq text (chontext) cao (cdr(assoc 40 text)) Z2 (atof (cdr(assoc 1 text))) ) )

(if (not cao) (setq cao (getdist "\n Nhap chieu cao chu :")))

(setq dis (abs (- (vlax-curve-getdistatpoint curve p1) (vlax-curve-getdistatpoint curve p2))))
(setq Hz (- Z1 Z2) tana (abs (/ Hz dis)))

(While (setq p (getpoint p1 "\n Nhap diem P / Enter ket thuc lenh :"))
(if (< Z1 Z2)
(if (< (vlax-curve-getparamatpoint curve p1) (vlax-curve-getparamatpoint curve p2))
(progn (setq a (- (vlax-curve-getdistatpoint curve p) (vlax-curve-getdistatpoint curve p1))
Z (+ Z1 (* tana a))) )
(progn (setq a (- (vlax-curve-getdistatpoint curve p1) (vlax-curve-getdistatpoint curve p))
Z (+ Z1 (* tana a))) )
)
)
(if (> Z1 Z2)
(if (< (vlax-curve-getparamatpoint curve p1) (vlax-curve-getparamatpoint curve p2))
(progn (setq a (- (vlax-curve-getdistatpoint curve p2) (vlax-curve-getdistatpoint curve p))
Z (+ Z2 (* tana a))) )
(progn (setq a (- (vlax-curve-getdistatpoint curve p) (vlax-curve-getdistatpoint curve p2))
Z (+ Z2 (* tana a))) )
)
)
(princ Z)
);while
(princ)
)

  • 1