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

[Đã xong] Lisp xuất thông số của đường ra block thuộc tính

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

-MÌnh có một lisp nhỏ muốn nhờ các bạn sửa lại giùm cụ thể như sau:

+ Lisp cũ: (lệnh tsdc) cấu trúc là đánh lệnh, chọn đường cong rồi nó điền ra thông số của đường cong (cụ thể mọi người xem bản vẽ và lisp mình gửi kèm theo nhé)

+ Líp mới cấu trúc chọn lệnh y hệt líp cũ tuy nhiên giá trị của đường cong se được điền vào block thuộc tính có tên TSCONG mà mình đà lập sẵn trong bản vẽ mình gửi kèm

- Mọi người down file mình gửi kèm nhé, trong đó có lisp cũ và file cad ví dụ

- Xin chân thành cám ơn!

http://www.cadviet.com/upfiles/3/cadviet.rar

-Đây là ảnh minh họa;

untitled_58.jpg

  • 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

-MÌnh có một lisp nhỏ muốn nhờ các bạn sửa lại giùm cụ thể như sau:

+ Lisp cũ: (lệnh tsdc) cấu trúc là đánh lệnh, chọn đường cong rồi nó điền ra thông số của đường cong (cụ thể mọi người xem bản vẽ và lisp mình gửi kèm theo nhé)

+ Líp mới cấu trúc chọn lệnh y hệt líp cũ tuy nhiên giá trị của đường cong se được điền vào block thuộc tính có tên TSCONG mà mình đà lập sẵn trong bản vẽ mình gửi kèm

..

Của bạn đây :

;; free lisp from cadviet.com
(defun vtt(/ oldos)
  (setq oldos (getvar "osmode"))
 (setvar "osmode" 0)
   (princ "\n Chon 1 cung Arc :")
 (if (null (setq ss (ssget ":S" '((0 . "ARC"))) ))
 	(alert "\n Khong co cung Arc nao duoc chon ")
  (progn
   (setq ent (ssname ss 0))
    (setq tam (cdr(assoc 10 (entget ent))))
   (setq D (cdr(assoc 40 (entget ent))));bankinh
    (setq dd (vlax-curve-getstartpoint ent))
    (setq dc (vlax-curve-getendpoint ent))
    (setq p1 (polar dd (+ (/ pi 2) (angle dd tam)) 1))
    (setq p2 (polar dc (+ (/ pi 2) (angle dc tam)) 1))
    (if (setq a (inters dd p1 dc p2 nil))
      (progn
        (vl-cmdf "line" dd a "")
        (vl-cmdf "line" dc a "")
(setq c (- 180 (/ (* 180 (abs (- (angle dd a) (angle dc a)))) pi)))
      )
    )
   ))
  (setvar "osmode" oldos)
(princ)
)
;;;;;;;;
(defun C:TSDC (/ ro CC CAT MD CD C D N L do ph O M I H J AA RR KK TT PP ss oldatt oldattd)
(setq oldatt (getvar "attreq") oldattd (getvar "attdia"))
(SETVAR "CMDECHO" 0)
(setvar "attreq" 1)(setvar "attdia" 0)  
 (setq CC (getpoint "\nCHON DIEM CHEN / Enter ket thuc "))  
(while CC
  (vtt)
(if ss (progn
 (setq L (strcat 
	  (itoa (setq do (fix c)) ) "%%d"
	  (itoa (setq ph (fix (* 60 (- c do))))) "'"
     		  (itoa (fix (* 60 (- (* 60 (- c do)) ph)))) "''"
  )
 )
 (setq N (rtos D 2 2))
 (setq H (COS (/ (/ (* C PI) 180) 2)))       ;CONG THUC TINH GIA TRI COS(A/2)
 (setq O (/ (SIN (/ (/ (* C PI) 180) 2)) (COS (/ (/ (* C PI) 180) 2)))) ;CONG THUC TINH GIA TRI TAN(A/2)
 (setq M (rtos (* O D) 2 2))                  ;CONG THUC TINH GIA TRI T
 (setq I (rtos (* D (- (/ 1 H) 1)) 2 2))      ;CONG THUC TINH GIA TRI P
 (setq J (rtos (/ (* D C PI) 180) 2 2))       ;CONG THUC TINH GIA TRI K
 (setq RR (strcat "R=" N))            ;GIA TRI R
 (setq KK (strcat "K=" J))            ;GIA TRI K
 (setq TT (strcat "T=" M))            ;GIA TRI T
 (setq PP (strcat "P=" I))            ;GIA TRI P  
 (command "-insert" "tscong" CC 1 1 0 L RR KK TT PP)
  (setq CC (getpoint "\nCHON DIEM CHEN / Enter ket thuc "))
 ))
   )                                  ;dong WHILE
 (SETVAR "CMDECHO" 1) (setvar "attreq" oldatt)(setvar "attdia" oldattd)
 (PRINC)
)                                      ;KET THUC DEFUN

P/S : Mình thích cách post bài của bạn ^^

  • 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

Của bạn đây :

....

-Cám ơn bạn, tuyệt mình đang cần nên vừa làm việc vửa để web cadviet rồi thỉnh thoảng lại F5 xem có ai hồi âm ko. Rất cám ơn.>>> Chúc ngủ ngon, hy vọng sau này có dịp giúp đỡ lại hehhehhe....

PS: À bạn có xem bài dim lisp zich zac cua mình hỏi ko? hy vọng sẽ có đáp án.

  • 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 ơn bạn, tuyệt mình đang cần nên vừa làm việc vửa để web cadviet rồi thỉnh thoảng lại F5 xem có ai hồi âm ko. Rất cám ơn.>>> Chúc ngủ ngon, hy vọng sau này có dịp giúp đỡ lại hehhehhe....

PS: À bạn có xem bài dim lisp zich zac cua mình hỏi ko? hy vọng sẽ có đáp án.

Mình đề xuất cách này đc ko:

-Đọc lấy thông số của dim hiện hành: tên, độ lớn dấu tick, tỉ lệ tính, độ cao text, ....

-Chọn pline, chỉ điềm viết kết quả.

-Offset pline ra điểm vừa chỉ, vẻ giả 2 đường gióng và dấu tick, viết kế quả sau khi đã tính với tỉ lệ dim hiện hành.

-Kết quả là 1 nhóm đối tượng kiểu như dim đã bị x ra vậy.

  • 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

Lâu không đóng góp gì cho cad việt không biết lisp này minh tìm được có hay hơn và giúp hơn cho bạn không.

;Khëi t¹o mét sè th«ng sè cho vÏ nót
;------------------------------------------------------
(defun C:knut ()
(command "dimstyle" "s" "Dimn" "dimstyle" "s" "Dran")
(command "-Style" "hoatfon" "hoatfon" "" "" "" "" "" "") 
(command "-Layer" "n" "Text" "c" "4" "Text" "") 
(command "-Layer" "n" "Dim" "c" "1" "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) (* 9 (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)
)

  • 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

@dizangu : rất cám ơn sự đóng góp của bạn cho diễn đàn, và càng tuyệt vời hơn nữa khi code được cho vào thẻ code :) Mình đã sửa bài bạn cho phù hợp nội quy post bài trong box Autolisp, hy vọng bạn không phiền và rút kinh nghiệm ^^ Link nội quy dưới chữ ký của mì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

Lâu không đóng góp gì cho cad việt không biết lisp này minh tìm được có hay hơn và giúp hơn cho bạn không.

;Khëi t¹o mét sè th«ng sè cho vÏ nót
;------------------------------------------------------
(defun C:knut ()
(command "dimstyle" "s" "Dimn" "dimstyle" "s" "Dran")
(command "-Style" "hoatfon" "hoatfon" "" "" "" "" "" "")
(command "-Layer" "n" "Text" "c" "4" "Text" "")
(command "-Layer" "n" "Dim" "c" "1" "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) (* 9 (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)
)

Các bác cho e hỏi trong code trên chỉnh sửa như thế nào để được chiều cao của text xuất ra và text trong dim được như ý muố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

Các bác cho e hỏi trong code trên chỉnh sửa như thế nào để được chiều cao của text xuất ra và text trong dim được như ý muốn?

Như ý muốn là sao? Bạn có thể nói rõ hơ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

Tức là e có thể sửa code như thế nào đó để khi text xuất ra: có chiều cao text do e định trước, hoặc cho lisp có thêm lựa chọn: cho phép người dùng chọn chiều cao text xuất ra. Hiện tại với bản vẽ tỉ lệ 1/1000, height text xuất ra của lisp là: 0.2.

Hiện tại e muốn đổi thành 0.5 bác ah.

Trong 1 bản vẽ khác e lại cần đổi thành 1 thành 2.....nữa chẳng hạ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

Thông số nào trong code trên quyết định height text ah?

Sửa như vậy xem sao.

;; 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" "1" "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) (* 9 (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)
)

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
Sửa như vậy xem sao.
 ;; 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" "1" "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) (* 9 (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) ) 

iem A điền ở đỉnh của 2 đường gióng này chạy đi đâu không thấy ra í bác Ha ah: Các thông số khác thì đều đã oki

A.jpg

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

iem A điền ở đỉnh của 2 đường gióng này chạy đi đâu không thấy ra í bác Ha ah: Các thông số khác thì đều đã oki

A.jpg

Khổ quá đi thôi! Tôi không có font "hoatfon", lại không hiểu bản chất của lisp này làm gì (trái ngành), mà chỉ sửa để cho bạn có thể nhập height của text, nên có thể kết quả cuối cùng không như ý muốn. Bạn có thể giải thích cho tôi lisp này làm cái gì...? Hoặc bác nào biết chính xác thì có thể giúp bạ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

Hí hí. Khổ thế rồi cơ hả bác.... :D

Lisp này để e thống kê các thông số của đường cong tròn trong các nút giao thông. Các ngã 3 ngã tư ấy mà.

G­ửi bác bản vẽ mô tả để bác hiểu nè: http://www.cadviet.c..._giao_thong.rar

Bác ở đâu, hôm nào mời bác đi cafe nhé :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

Hí hí. Khổ thế rồi cơ hả bác.... :D

Lisp này để e thống kê các thông số của đường cong tròn trong các nút giao thông. Các ngã 3 ngã tư ấy mà.

G­ửi bác bản vẽ mô tả để bác hiểu nè: http://www.cadviet.c..._giao_thong.rar

Bác ở đâu, hôm nào mời bác đi cafe nhé :D

Hình như tôi sửa thiếu 1 dòng.

1). Bạn sửa thêm dòng này xem sao:

(command ".text" dinh "" "" tendinh "")

Thành

(command ".text" dinh "" tendinh)

2). Bạn ở đâu? Bao cafe thì bao luôn vé máy bay nhé?

  • 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

Hình như tôi sửa thiếu 1 dòng.

1). Bạn sửa thêm dòng này xem sao:

(command ".text" dinh "" "" tendinh "")

Thành

(command ".text" dinh "" tendinh)

2). Bạn ở đâu? Bao cafe thì bao luôn vé máy bay nhé?

Oki, lisp đã hoàn chỉnh, ae giao thông có thể dùng thoải mái roài. Hí hí e ở Bắc Ninh bác ah. Thank sờ kiu bác nhều :D

;; 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" "1" "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)
)

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 cho em hỏi sử dụng lisp tsdc này phải thực hiện các bước như thế nào ạ.

e đã sử dụng vài cách như copy vào support rồi mà vẫn k được các bác ạ.

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  

×