Chuyển đến nội dung
Diễn đàn CADViet
tacongthang

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

Các bài được khuyến nghị

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!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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ề,..

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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?????

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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é!!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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?

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

 

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ề,...

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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 :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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 :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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ự!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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ể?! smile.png

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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)))

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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à!!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×