Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
bach1212

[Nhờ chỉnh sửa] Lisp thống kê thông số đường cong

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

Lisp này tự nhiên không tính toán đúng các thông số R, T, K của đường cong nữa. 
Mong các bác nào rành sửa giùm e với ah!

http://www.cadviet.com/upfiles/4/40304_knut_gn.lsp

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

Yêu cầu bạn post vào nơi mà bạn đã nhờ bác ThaiStreetz viết hộ lisp này. Mong bạn tránh làm loãng 4room

Hơn nữa, ntn là đúng, k đúng, bạn nên mô tả.

Hời hợt khi hỏi cũng sẽ nhận được câu trả lời tương tự

Thân

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
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=47442&pid=196992&st=0entry196992
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=47442&pid=196822&st=0entry196822
;Khëi t¹o mét sè th«ng sè cho vÏ nót
;------------------------------------------------------
(defun C:knut ()
(setq hf (getreal "\nChieu cao text: "))
(command "dimstyle" "s" "Dimn" "dimstyle" "s" "Dran")
(command "-Style" "hoatfon" "hoatfon" hf "" "" "" "" "")
(command "-Layer" "n" "Text" "c" "4" "Text" "")
(command "-Layer" "n" "Dim" "c" "8" "DIm" "")
(command "-Layer" "n" "Khuat" "c" "4" "Khuat" "l" "Dashed" "Khuat" "")
(Princ)
)
;;;Chuong trinh chinh (Ve va thong ke cac yeu to cua duong cong)
(setq tlv (getint "\nNhap ty le ban ve nut 1/... :"))
(defun c:GN ()
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq sttdinh (getint "\nNhap so thu tu dinh :"))
(setq es (entsel "\nChon cung tron can ve:"))
(setq dbang (getpoint "\nChon vi tri dat bang thong ke:"))
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setq tdt (car es)
  	dra (cadr es)
  	ent (entget tdt)
  	cen (cdr (assoc 10 ent))
  	goc1 (cdr (assoc 50 ent))
  	goc2 (cdr (assoc 51 ent))
  	bk (cdr (assoc 40 ent))
)
(setq td1 (polar cen goc1 bk)
  	td2 (polar cen goc2 bk)
)
(setq mid (list (/ (+ (car td1) (car td2)) 2) (/ (+ (cadr td1) (cadr td2)) 2) (caddr td1)))
(setq goc (angle cen mid))
(setq goctam (abs (- goc2 goc1)))
(if (< goctam pi)
	(setq goct goctam)
	(setq goct (- (* 2 pi) goctam))
)
(setq dtam (/ bk (cos (/ goct 2))))
(setq dinh (polar cen goc dtam))
(setq T (rtos (/ (* (distance dinh td1) tlv) 1000) 2 2)
  	P (rtos (/ (* (- dtam bk) tlv) 1000) 2 2)
  	K (rtos (/ (* (* goct bk) tlv) 1000) 2 2)
 	Ssbk (rtos (/ (* bk tlv) 1000) 2 2)
)
(command "-layer" "s" "khuat" "" ".line" td1 dinh td2 "")
(command "-layer" "s" "DIM" "" "Dimstyle" "" "Dimn")
(setq kckt (* 2.2 (getvar "dimtxt")) dkt1 (polar td1 goc1 kckt))
(command "DIMALIGNED" dinh td1 dkt1)
(setq  dkt2 (polar td2 goc2 kckt))
(command "DIMALIGNED" dinh td2 dkt2)
(command "Dimstyle" "" "Dran" "DIMRADIUS" tdt dra "")
;VÏ khung thèng kª nut
;--------------------------------
(setq  xb (+ (car dbang) (* 11 (getvar "textsize"))) yb (- (cadr dbang) (* 10.25 (getvar "textsize"))) dbang2 (list xb yb (caddr dbang)) odbang (polar dbang (/ (* 3 pi) 4) (/ (getvar "textsize") 5)) odbang2 (polar dbang2 (- (* 2 pi) (/ pi 4)) (/ (getvar "textsize") 5)))
(command ".layer" "s" "text" "" ".rectang" odbang odbang2 ".rectang" dbang dbang2) (command "change" "l" "" "p" "c" "1" "")
;Xö lý b¶ng thèng kª
;-----------------------------
(setq gockep (angtos (- pi goct) 1 4))
(setq Kiem1 (substr gockep 2 1) kiem2 (substr gockep 3 1) kiem3 (substr gockep 4 1))
(cond ((= kiem1 "d") (setq dau (substr gockep 1 1) cuoi (substr gockep 3))) ((= kiem2 "d") (setq dau (substr gockep 1 2) cuoi (substr gockep 4))) ((= kiem3 "d") (setq dau (substr gockep 1 3) cuoi (substr gockep 5)))
)
(setq  gockep (strcat (strcat dau "%%d") cuoi))
;----------------------------
(setq nhan (rtos sttdinh 2 0))
(setq chugoc (strcat (strcat "A" nhan) (strcat "=" gockep)))
(setq chubk (strcat (strcat (strcat "R" nhan) (strcat "=" ssbk)) "m"))
(setq chutt (strcat (strcat (strcat "T" nhan) (strcat "=" T)) "m"))
(setq  chup (strcat (strcat (strcat "P" nhan) (strcat "=" P)) "m"))
(setq  chucd (strcat (strcat (strcat "K" nhan) (strcat "=" K)) "m"))
(setq dong1 (polar dbang (- (* 2 pi) (/ (* 9 pi) 24)) (* 1.75 (getvar "textsize")))
    	dong2 (polar dong1 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
    	dong3 (polar dong2 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
    	dong4 (polar dong3 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
    	dong5 (polar dong4 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
)
(command "-layer" "s" "Text" "" ".text" dong1 "" chugoc ".text" dong2 "" chubk ".text" dong3 "" chutt ".text" dong4 "" chup ".text" dong5 "" chucd)
(setq tendinh (strcat "A" nhan))
(command ".text" dinh "" tendinh)
(command "insert" "nut" dinh "" "" "" )
(setvar "osmode" osm)
(setvar "cmdecho" cmd) (princ)
(setvar "osmode" 15359)
)

Lisp đó đây ah.

Mình không nhớ lisp này là ai viết nữa cả.

Mình vẫn dùng cad 2007 như từ trước đến giờ.

Lỗi là khi xuất kết quả, toàn bộ các thông số R, T, P, K của tất cả các đường cong khác nhau đều là 0.02 với 0.01. Không đúng với giá trị thực tế.

XIn gửi file đính kèm để các bạn kiểm tra hộ nhé.

http://www.mediafire.com/download/argi2wcom81amtx/111.dwg

 

A1 = 71d31'09''
R1 = 21.97m
T1 = 30.51m
P1 = 15.63m
K1 = 41.61m

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

 

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=47442&pid=196992&st=0entry196992
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=47442&pid=196822&st=0entry196822
;Khëi t¹o mét sè th«ng sè cho vÏ nót
;------------------------------------------------------
(defun C:knut ()
(setq hf (getreal "\nChieu cao text: "))
(command "dimstyle" "s" "Dimn" "dimstyle" "s" "Dran")
(command "-Style" "hoatfon" "hoatfon" hf "" "" "" "" "")
(command "-Layer" "n" "Text" "c" "4" "Text" "")
(command "-Layer" "n" "Dim" "c" "8" "DIm" "")
(command "-Layer" "n" "Khuat" "c" "4" "Khuat" "l" "Dashed" "Khuat" "")
(Princ)
)
;;;Chuong trinh chinh (Ve va thong ke cac yeu to cua duong cong)
(setq tlv (getint "\nNhap ty le ban ve nut 1/... :"))
(defun c:GN ()
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq sttdinh (getint "\nNhap so thu tu dinh :"))
(setq es (entsel "\nChon cung tron can ve:"))
(setq dbang (getpoint "\nChon vi tri dat bang thong ke:"))
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setq tdt (car es)
  	dra (cadr es)
  	ent (entget tdt)
  	cen (cdr (assoc 10 ent))
  	goc1 (cdr (assoc 50 ent))
  	goc2 (cdr (assoc 51 ent))
  	bk (cdr (assoc 40 ent))
)
(setq td1 (polar cen goc1 bk)
  	td2 (polar cen goc2 bk)
)
(setq mid (list (/ (+ (car td1) (car td2)) 2) (/ (+ (cadr td1) (cadr td2)) 2) (caddr td1)))
(setq goc (angle cen mid))
(setq goctam (abs (- goc2 goc1)))
(if (< goctam pi)
	(setq goct goctam)
	(setq goct (- (* 2 pi) goctam))
)
(setq dtam (/ bk (cos (/ goct 2))))
(setq dinh (polar cen goc dtam))
(setq T (rtos (/ (* (distance dinh td1) tlv) 1000) 2 2)
  	P (rtos (/ (* (- dtam bk) tlv) 1000) 2 2)
  	K (rtos (/ (* (* goct bk) tlv) 1000) 2 2)
 	Ssbk (rtos (/ (* bk tlv) 1000) 2 2)
)
(command "-layer" "s" "khuat" "" ".line" td1 dinh td2 "")
(command "-layer" "s" "DIM" "" "Dimstyle" "" "Dimn")
(setq kckt (* 2.2 (getvar "dimtxt")) dkt1 (polar td1 goc1 kckt))
(command "DIMALIGNED" dinh td1 dkt1)
(setq  dkt2 (polar td2 goc2 kckt))
(command "DIMALIGNED" dinh td2 dkt2)
(command "Dimstyle" "" "Dran" "DIMRADIUS" tdt dra "")
;VÏ khung thèng kª nut
;--------------------------------
(setq  xb (+ (car dbang) (* 11 (getvar "textsize"))) yb (- (cadr dbang) (* 10.25 (getvar "textsize"))) dbang2 (list xb yb (caddr dbang)) odbang (polar dbang (/ (* 3 pi) 4) (/ (getvar "textsize") 5)) odbang2 (polar dbang2 (- (* 2 pi) (/ pi 4)) (/ (getvar "textsize") 5)))
(command ".layer" "s" "text" "" ".rectang" odbang odbang2 ".rectang" dbang dbang2) (command "change" "l" "" "p" "c" "1" "")
;Xö lý b¶ng thèng kª
;-----------------------------
(setq gockep (angtos (- pi goct) 1 4))
(setq Kiem1 (substr gockep 2 1) kiem2 (substr gockep 3 1) kiem3 (substr gockep 4 1))
(cond ((= kiem1 "d") (setq dau (substr gockep 1 1) cuoi (substr gockep 3))) ((= kiem2 "d") (setq dau (substr gockep 1 2) cuoi (substr gockep 4))) ((= kiem3 "d") (setq dau (substr gockep 1 3) cuoi (substr gockep 5)))
)
(setq  gockep (strcat (strcat dau "%%d") cuoi))
;----------------------------
(setq nhan (rtos sttdinh 2 0))
(setq chugoc (strcat (strcat "A" nhan) (strcat "=" gockep)))
(setq chubk (strcat (strcat (strcat "R" nhan) (strcat "=" ssbk)) "m"))
(setq chutt (strcat (strcat (strcat "T" nhan) (strcat "=" T)) "m"))
(setq  chup (strcat (strcat (strcat "P" nhan) (strcat "=" P)) "m"))
(setq  chucd (strcat (strcat (strcat "K" nhan) (strcat "=" K)) "m"))
(setq dong1 (polar dbang (- (* 2 pi) (/ (* 9 pi) 24)) (* 1.75 (getvar "textsize")))
    	dong2 (polar dong1 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
    	dong3 (polar dong2 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
    	dong4 (polar dong3 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
    	dong5 (polar dong4 (+ pi (/ pi 2)) (* 2 (getvar "textsize")))
)
(command "-layer" "s" "Text" "" ".text" dong1 "" chugoc ".text" dong2 "" chubk ".text" dong3 "" chutt ".text" dong4 "" chup ".text" dong5 "" chucd)
(setq tendinh (strcat "A" nhan))
(command ".text" dinh "" tendinh)
(command "insert" "nut" dinh "" "" "" )
(setvar "osmode" osm)
(setvar "cmdecho" cmd) (princ)
(setvar "osmode" 15359)
)

Lisp đó đây ah.

Mình không nhớ lisp này là ai viết nữa cả.

Mình vẫn dùng cad 2007 như từ trước đến giờ.

Lỗi là khi xuất kết quả, toàn bộ các thông số R, T, P, K của tất cả các đường cong khác nhau đều là 0.02 với 0.01. Không đúng với giá trị thực tế.

XIn gửi file đính kèm để các bạn kiểm tra hộ nhé.

http://www.mediafire.com/download/argi2wcom81amtx/111.dwg

 

A1 = 71d31'09''
R1 = 21.97m
T1 = 30.51m
P1 = 15.63m
K1 = 41.61m

Trí nhớ của bạn tệ thật!

Tôi nhớ là bạn đã mời tác giả Lisp này cafe (+ vé máy bay) cơ mà.

Thôi thì liên hệ tác giả + nhớ mua thêm vé máy bay khứ hồi.

Link của nó còn trong file Lisp nè :  15454_author.png : 

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

Khi load vào nó hỏi nhập tỷ lệ thì bạn nhập 1000 nó mới chạy đúng, chẳng qua nó chia mọi số cho 1000 nên mới thành 0.02, 0.03, 0.04!!

  • 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

Cảm thấy rất k hài lòng.

Không biết còn bao nhiêu người lên đây post yêu cầu, giải quyết công việc của mình xong thậm chí còn chẳng nhớ, chẳng để lấy 1 dòng ghi chú là ai đã giúp mình nữa.

Kể cả k có dòng link trong lisp kia mình cũng dễ dàng search ra bài viết của bạn trên GG. Và về vấn đề này, bạn đã post đến 3 lần rồi

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

Trí nhớ của bạn tệ thật!

Tôi nhớ là bạn đã mời tác giả Lisp này cafe (+ vé máy bay) cơ mà.

Thôi thì liên hệ tác giả + nhớ mua thêm vé máy bay khứ hồi.

Link của nó còn trong file Lisp nè :

Thôi chết! Tôi thương tôi quá!

  • 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

hơ hơ. e vẫn hay được các bác giabach, doan van ha, ketxu, tue nv ..... trợ giúp nhìu, nên ko nhớ là bác nào đã chỉnh cho e lần cuối nữa. Rất mong các bác thứ lỗi cho sự đãng trí của e ah.  :D

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

Đăng nhập để thực hiện theo  

×