Đến nội dung


Hình ảnh
- - - - -

[nhờ viết lisp] tính khối lượng trên 1 m dài


  • Please log in to reply
15 replies to this topic

#1 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 03 November 2011 - 11:16 AM

Bác Đoàn Văn Hà ơi, bác giúp thêm cái lisp này với:

đầu tiên là đánh lệnh, lisp hỏi khối lượng riêng của vật liệu, giả sử mình nhập 7850
sau đó chọn region, lisp sẽ tính diện tích region rồi lấy (kết quả*7850*1000/10^9) và cho kết quả ra 1 text có kèm thêm "kg/m3".

Cám ơn Bác Hà và các cao thủ khác nhiều!!!
  • 0

#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 03 November 2011 - 11:26 AM

Text kết quả to/nhỏ/mập/ốm thế nào, ghi vào đâu hay là ghi vào 1 text có sẵn trên bản vẽ. Chuyện này không khó nhưng bạn y/c càng rõ càng tốt, để đỡ tốn công sửa lại.
Thân thương!
P/S: trong khi chờ bạn, hãy dùng thử cái này xem sao đã. Mà sao khối lượng lại có đơn vị là kg/m3 nhỉ?

;----- Doan Van Ha CADViet.com
(defun C:HA( / sel pt) ;Tinh khoi luong thep
(vl-load-com)
(acet-sysvar-set (list "dimzin" 0))
(if (and (setq sel (entsel "\nChon Region de tinh khoi luong: "))
(setq pt (getpoint "\nDiem dat cua Text ket qua: "))
(wcmatch (cdr (assoc 0 (entget (setq ent (car sel))))) "REGION"))
(maketext pt (strcat (rtos (/ (* (vlax-get-property (vlax-ename->vla-object ent) 'Area) 7850.) (expt 10 6)) 2) "kg/m3") 2 0 "L")
(alert "Hay chon doi tuong REGION!"))
(acet-sysvar-restore)
(princ))
;-----
(defun MakeText (point string Height Ang justify / Lst); Ang: Radial
(setq Lst (list '(0 . "TEXT")
(cons 10 point)
(cons 40 Height)
(cons 1 string)
(if Ang (cons 50 Ang)) )
justify (strcase justify))
(entmake Lst));end

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


#3 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 03 November 2011 - 11:47 AM

Bác Đoàn Văn Hà ơi, bác giúp thêm cái lisp này với:

đầu tiên là đánh lệnh, lisp hỏi khối lượng riêng của vật liệu, giả sử mình nhập 7850
sau đó chọn region, lisp sẽ tính diện tích region rồi lấy (kết quả*7850*1000/10^9) và cho kết quả ra 1 text có kèm thêm "kg/m3".

Cám ơn Bác Hà và các cao thủ khác nhiều!!!

Hề hề hề,
Chả biết bạn này có hiểu bạn ấy viết cái gì không nữa????
(kết quả*7850*1000/10^9) mà ra được khối lượng của vật sao???
Khối lượng của vật mà có đơn vị đo là "kg/m3". sao???
Là người làm kỹ thuật, Rất mong bạn lưu ý tới cái bạn viết để yêu cầu người khác giúp mình. Đến bạn còn không hiểu bạn cần cái chi thì người giúp biết đằng mô mà giúp????
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.

#4 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 08 November 2011 - 03:58 PM

các bác chém phải, kg/m, em xin nhận lỗi. Bác Hà giúp nhé!!!

kết quả*7850*1000/10^9, "kết quả" là diện tích của region (đang set đv là mm)
  • 0

#5 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 08 November 2011 - 04:13 PM

các bác chém phải, kg/m, em xin nhận lỗi. Bác Hà giúp nhé!!!

kết quả*7850*1000/10^9, "kết quả" là diện tích của region (đang set đv là mm)

Hề hề hề,
Vậy chứ không thèm quan tâm tới tỷ lệ vẽ hay sao?????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#6 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 08 November 2011 - 04:33 PM

các bác chém phải, kg/m, em xin nhận lỗi. Bác Hà giúp nhé!!!

kết quả*7850*1000/10^9, "kết quả" là diện tích của region (đang set đv là mm)


Đã viết cho bạn từ lâu lắm rồi, ở trên á, lâu lắm rồi mà đâu thấy bạn hồi âm gì.
  • 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.


#7 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 09 November 2011 - 10:57 AM

hí hí, tại em thấy bác để cái lisp giống với cái trước nên tưởng bác Hà trả lời lộn với cái lisp tính đặc trưng hình học, xl bác hà nhé!!!
  • 0

#8 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 09 November 2011 - 11:08 AM

Hề hề hề, Vậy chứ không thèm quan tâm tới tỷ lệ vẽ hay sao?????


hi`, khuôn mẫu lúc nào cũng vẽ theo tl 1-1 nên mới vậy.
  • 0

#9 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 09 November 2011 - 11:25 AM

hí hí, tại em thấy bác để cái lisp giống với cái trước nên tưởng bác Hà trả lời lộn với cái lisp tính đặc trưng hình học, xl bác hà nhé!!!


Dùng lisp mà không có nhận xét gì à? Được? Không được?
  • 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.


#10 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 09 November 2011 - 04:09 PM


Dùng lisp mà không có nhận xét gì à? Được? Không được?

Hề hề hề,
Được thì chắc rùi, bác yên tâm, nếu không được bạn ấy đã réo gọi tức thì ấy mà.
Hề hề hề,...
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#11 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 16 November 2011 - 01:48 PM

hi` hì, lu bu quá, thanks bác Hà lắm, lisp tính khối lượng/m dài xài tốt quá, giá như cái lisp tính đặc trưng hình học cũng cho ra cái text giống như cái này nhỉ.

---------------- REGIONS ----------------
Area: 211.4324
Perimeter: 409.6506
Bounding box: X: -28.0606 -- 27.3848
Y: -25.0663 -- 14.9337
Centroid: X: 0.0000
Y: 0.0000
Moments of inertia: X: 41728.0084
Y: 32953.6563
Product of inertia: XY: -1677.4216
Radii of gyration: X: 14.0484
Y: 12.4844
Principal moments and X-Y directions about centroid:
I: 32643.9125 along [0.1816 -0.9834]
J: 42037.7523 along [0.9834 0.1816]

Bác Hà cố giúp thêm cái này nhé


@thanhbinh: bác chỉ được cái nói đúng :)
  • 0

#12 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 16 November 2011 - 01:51 PM

hi` hì, lu bu quá, thanks bác Hà lắm, lisp tính khối lượng/m dài xài tốt quá, giá như cái lisp tính đặc trưng hình học cũng cho ra cái text giống như cái này nhỉ. ---------------- REGIONS ---------------- Area: 211.4324 Perimeter: 409.6506 Bounding box: X: -28.0606 -- 27.3848 Y: -25.0663 -- 14.9337 Centroid: X: 0.0000 Y: 0.0000 Moments of inertia: X: 41728.0084 Y: 32953.6563 Product of inertia: XY: -1677.4216 Radii of gyration: X: 14.0484 Y: 12.4844 Principal moments and X-Y directions about centroid: I: 32643.9125 along [0.1816 -0.9834] J: 42037.7523 along [0.9834 0.1816] Bác Hà cố giúp thêm cái này nhé @thanhbinh: bác chỉ được cái nói đúng :)


  • 0

#13 lp_hai

lp_hai

    biết lệnh measure

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

Đã gửi 16 November 2011 - 02:16 PM

hihihi. Nhiều khi gặp mấy bác yêu cầu thì nhiều, làm xong thì ko hồi âm lấy một câu (giống bác này quá).. thiệt là bực mình...giùm bác DVH nhể?! :)
Dẫu biết là Thi ân bất cầu báo, nhưng mỗi lần ai giúp được gì mình thì cũng có tiếng cảm ơn phải ko bác tacongthang. Ở diễn đàn này thì nên thể hiện bằng nút Like This, để người viết cảm thấy bày viết của mình có ích và cũng là sự khích lệ để người ta làm tốt hơn, nhiệt tình hơn. Khi yêu cầu thì ý ới, có cái xài thì im re.... cũng hơi bị nản???
Vài dòng tâm sự!
  • 0
Hình đã gửi

#14 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 20 November 2011 - 02:01 PM

hihihi. Nhiều khi gặp mấy bác yêu cầu thì nhiều, làm xong thì ko hồi âm lấy một câu (giống bác này quá).. thiệt là bực mình...giùm bác DVH nhể?! Hình đã gửi
Dẫu biết là Thi ân bất cầu báo, nhưng mỗi lần ai giúp được gì mình thì cũng có tiếng cảm ơn phải ko bác tacongthang. Ở diễn đàn này thì nên thể hiện bằng nút Like This, để người viết cảm thấy bày viết của mình có ích và cũng là sự khích lệ để người ta làm tốt hơn, nhiệt tình hơn. Khi yêu cầu thì ý ới, có cái xài thì im re.... cũng hơi bị nản???
Vài dòng tâm sự!


Chắc bác chỉ đi ngang qua nên cũng không đọc tất cả những dòng tui ghi đúng không. bác đọc bài tui cám ơn rùi nhưng vẫn cố đâm chọt, tính kiếm bài lên cấp hả. sao không đọc cho kỹ từng câu tui ghi. "thanks bác Hà lắm, lisp tính khối lượng/m dài xài tốt quá", chắc bác không nhìn thấy dòng bé xíu này, vì lu bu mấy bữa nay bị dzí nên cũng chưa lên cadviet thường, nhưng lên thấy bác nói vậy nghe nản quá.
  • 0

#15 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 20 November 2011 - 04:42 PM

Chắc bác chỉ đi ngang qua nên cũng không đọc tất cả những dòng tui ghi đúng không. bác đọc bài tui cám ơn rùi nhưng vẫn cố đâm chọt, tính kiếm bài lên cấp hả. sao không đọc cho kỹ từng câu tui ghi. "thanks bác Hà lắm, lisp tính khối lượng/m dài xài tốt quá", chắc bác không nhìn thấy dòng bé xíu này, vì lu bu mấy bữa nay bị dzí nên cũng chưa lên cadviet thường, nhưng lên thấy bác nói vậy nghe nản quá.

Bạn tacongthang ạ! Thực ra thì bạn cũng có một phần lỗi đấy, đừng nóng lên như thế chứ.
Sẵn y/c của bạn hôm trước về lisp lấy đặc trưng hình học của hình kín, nay tôi làm luôn đây, nếu mà xài được tức là bạn "nợ" tôi tới 2 cái "Like this" cơ đấy.
Thân thương!

;Doan Van Ha - CADViet.com
;Tinh cac dac trung hinh hoc cua Polyline kin hoac Region.
(defun C:HA()
(setq obj (vlax-ename->vla-object (car (entsel "\Chon doi tuong kin (Polyline hoac Region): "))))
(VxGetMassProps Obj))
(defun VxGetMassProps (Obj / DelFlg ResLst TmpObj) ; by MENZI ENGINEERING GmbH, Switzerland. Thank you very must.
(or Gb:AcO (setq Gb:AcO (vlax-get-acad-object)))
(or Gb:AcD (setq Gb:AcD (vla-get-activedocument Gb:AcO)))
(if (member (vla-get-ObjectName Obj) '("AcDb2dPolyline" "AcDbPolyline"))
(setq DelFlg T
TmpObj (vlax-safearray-get-element (vlax-variant-value (vla-AddRegion (vla-get-ModelSpace Gb:AcD) (VxListToArray (list Obj) vlax-vbObject))) 0))
(setq TmpObj Obj))
(setq ResLst (append
(list
(vlax-get TmpObj 'Centroid)
(vlax-get TmpObj 'RadiiOfGyration)
(setq a (vlax-get TmpObj 'PrincipalDirections))
(vlax-get TmpObj 'PrincipalMoments)
(vlax-get TmpObj 'MomentOfInertia))
(if (= (vla-get-ObjectName TmpObj) "AcDbRegion")
(list
(vla-get-ProductOfInertia TmpObj)
(vla-get-Area TmpObj)
(vla-get-Perimeter TmpObj))
(list
(vlax-get TmpObj 'ProductOfInertia)
(vla-get-Volume TmpObj)
nil))))
(if DelFlg (vla-delete TmpObj))
(princ "\n\nKET QUA TINH:")
(princ "\n1). Centroid:")
(princ "\n X: ") (princ (car (nth 0 Reslst)))
(princ "\n Y: ") (princ (cadr (nth 0 Reslst)))
(princ "\n2). Radii Of Gyration:")
(princ "\n X: ") (princ (car (nth 1 Reslst)))
(princ "\n Y: ") (princ (cadr (nth 1 Reslst)))
(princ "\n3). Principal Directions:")
(princ "\n ") (princ (car (nth 2 Reslst)))
(princ "\n ") (princ (cadr (nth 2 Reslst)))
(princ "\n ") (princ (caddr (nth 2 Reslst)))
(princ "\n ") (princ (nth 3 (nth 2 Reslst)))
(princ "\n4). Principal Moments:")
(princ "\n I: ") (princ (car (nth 3 Reslst)))
(princ "\n J: ") (princ (cadr (nth 3 Reslst)))
(princ "\n5). Moment Of Inertia:")
(princ "\n X: ") (princ (car (nth 4 Reslst)))
(princ "\n Y: ") (princ (cadr (nth 4 Reslst)))
(princ "\n6). Product Of Inertia:")
(princ (nth 5 Reslst))
(princ "\n7). Area: ")
(princ (nth 6 Reslst))
(princ "\n8). Perimeter: ")
(princ (nth 7 Reslst))
(princ))
; ResLst=((70.5309 25.7049) (25.7963 70.5906) (0.966567 0.256415 -0.256415 0.966567) (285.635 561.65) (42933.0 321491.0) 116901.0 64.5172 37.4259)
;-----
(defun VxListToArray (Lst Typ)
(vlax-make-variant (vlax-safearray-fill (vlax-make-safearray Typ (cons 0 (1- (length Lst)))) Lst)))

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


#16 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 23 November 2011 - 10:40 PM

bác hà chỉ cái like this mới biết, vì trước giờ chỉ quen nút thanks, không có nên thanks bằng tay. cám ơn bác hà nhiệt tình, hì. like this bác có 1 cái thui nhưng thật ra là rất nhiều. cái này chưa kịp sử dụng vì nhảy qua dự án khác nên chưa sử dụng.
thanks bac Hà!!
  • 0