Info | File |
Tác giả: phamthanhbinh
Bài viết gốc: 195291
Tên lệnh: xdr |
[Hỏi] CODE đọc dữ liệu đường 2D POLYLINE
Hề hề hề,
Đoạn lisp này mình viết vội để giúp bạn xác định các polyline có đoạn cong hay không và các đoạn cong này nằm ở phân đoạn nào trên polyline với bán kinh cong bằng bao nhiêu??
Bạn hãy test thử xem nhé. Do viết vội nên mình chưa khử biến và chưa check hết các trường hợp. Bạn có thể dựa vào đó để tự hoàn thiện nó nhé.
Chúc bạn vui và nếu có gì chưa... >>
Hề hề hề,
Đoạn lisp này mình viết vội để giúp bạn xác định các polyline có đoạn cong hay không và các đoạn cong này nằm ở phân đoạn nào trên polyline với bán kinh cong bằng bao nhiêu??
Bạn hãy test thử xem nhé. Do viết vội nên mình chưa khử biến và chưa check hết các trường hợp. Bạn có thể dựa vào đó để tự hoàn thiện nó nhé.
Chúc bạn vui và nếu có gì chưa hài lòng hãy post lên để mình hiệu chỉnh lại lisp nhé. <<
|
Tác giả: tandai1102
Bài viết gốc: 294476
Tên lệnh: linkt |
Hướng dẫn sử dụng mã Lisp
các bác cho em hỏi máy em bị sao khi load các lisp cũ dạng xuống hàng như mẫu 1 thì chạy đc, nhưng mới down môt số lisp của diễn đàn mình mới bây giờ dạng thẳng hàng như mẫu 2 thì chạy không được, mong các bác giải đáp dùm em. em xin cảm ơn ạ!
mẫu 1
;; free lisp from cadviet.com
;;; this lisp was downloaded from...
>> các bác cho em hỏi máy em bị sao khi load các lisp cũ dạng xuống hàng như mẫu 1 thì chạy đc, nhưng mới down môt số lisp của diễn đàn mình mới bây giờ dạng thẳng hàng như mẫu 2 thì chạy không được, mong các bác giải đáp dùm em. em xin cảm ơn ạ!
mẫu 1
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/13131-lisp-anh-xa-gia-tri-doi-tuong-thay-doi-gia-tri-nguon-dich-cap-nhat-theo/page-2
(defun C:L2T (/ OBJLINE SS OBJLST OBJ;|OBJ-REACTOR|;)
(vl-load-com)
(setq OBJLINE (vlax-ename->vla-object (car (entsel "\nChon duong thang nguon: "))))
(while (/= (vla-get-objectname OBJLINE) "AcDbLine")
(setq OBJLINE (vlax-ename->vla-object (car (entsel "\nChon duong thang nguon: "))))
)
(princ "\nChon cac text dich: ")
(setq SS (ssget '((0 . "TEXT"))))
(setq OBJLST (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex SS)))))
(foreach OBJ OBJLST
(vla-put-textstring OBJ (rtos (* (vla-get-length OBJLINE) (getvar "DIMLFAC"))))
)
(setq OBJLST (append OBJLST (list OBJLINE)))
(if (and OBJ-REACTOR (vlr-added-p OBJ-REACTOR))
(vlr-remove OBJ-REACTOR)
)
(setq OBJ-REACTOR
(vlr-pers
(vlr-object-reactor OBJLST
NIL
'((:vlr-modified . UPDATETEXT)
(:vlr-erased . ERASEENT)
)
)
)
)
(princ (strcat "\nDa link duong thang voi " (itoa (sslength SS)) " text"))
(princ)
)
(defun UPDATETEXT (NOTIFIER-OBJECT OBJ-REACTOR PARAMETER-LIST / OBJLST OBJ)
(setq *ERROR* REACTOR-ERR)
(if (= (vla-get-objectname NOTIFIER-OBJECT) "AcDbLine")
(progn
(princ (strcat "\nTy le 1/" (rtos (getvar "DIMLFAC"))))
(setq OBJLST (vlr-owners OBJ-REACTOR))
(foreach OBJ OBJLST
(if (= (vla-get-objectname OBJ) "AcDbText")
(vla-put-textstring OBJ (rtos (* (vla-get-length NOTIFIER-OBJECT) (getvar "DIMLFAC"))))
)
)
)
)
(setq *ERROR* NIL)
)
(defun ERASEENT (NOTIFIER-OBJECT OBJ-REACTOR PARAMETER-LIST / OBJLST)
(alert "Ban da thuc hien lenh Erase tu doi tuong REACTOR.\nCac doi tuong khong con link voi nhau!")
(vlr-owner-remove OBJ-REACTOR NOTIFIER-OBJECT)
(vlr-remove OBJ-REACTOR)
(princ)
)
(defun REACTOR-ERR (MSG)
(cond ((= MSG "Automation Error. Object was open for undo") (princ "\nObject was open for undo"))
((= MSG "Automation Error. Object was erased") (princ "\nObject was erased"))
((= MSG "quit / exit abort") (princ "\t\texit"))
(t (progn (princ MSG) (princ)))
)
(setq *ERROR* NIL)
(princ)
)
mẫu 2
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/topic/13131-lisp-anh-xa-gia-tri-doi-tuong-thay-doi-gia-tri-nguon-dich-cap-nhat-theo/page-2
(defun c:LinkT (/ ss objlst ); Link Text (if (setq ss (ssget '((0 . "TEXT"))) ) (progn (vl-load-com) (setq objlst (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))) (if (and obj_reactor (vlr-added-p obj_reactor)) (vlr-remove obj_reactor)) (setq obj_reactor (vlr-pers (vlr-object-reactor objlst nil '((:vlr-modified . LinkText) (:vlr-erased . eraseEnt) )))) (princ (strcat "\n Da thuc hien Link " (itoa(sslength ss)) " Text voi nhau !" "\n Goi lenh Edit Text (ddedit) de cap nhat gia tri.")) (princ) ) ) )(defun LinkText (notifier-object obj_reactor parameter-list / objlist str) (setq objlist (vlr-owners obj_reactor) str (vla-get-TextString notifier-object)) (foreach obj objlist (if (/= (vla-get-TextString obj)str) (vla-put-TextString obj str) ) ) )(defun eraseEnt (notifier-object obj_reactor parameter-list) (alert "Ban da thuc hien lenh Erase tu doi tuong REACTOR.\nLinkText da bi huy bo : Cac Text khong con Link voi nhau !") (vlr-owner-remove obj_reactor notifier-object) (vlr-remove obj_reactor) (princ) )
<<
|
Filename: 294476_linkt.lsp
|
|
Tác giả: Tot77
Bài viết gốc: 294502
Tên lệnh: linkt | |
Tác giả: Nguyen Hoanh
Bài viết gốc: 12885
Tên lệnh: kbss ss |
Viết Lisp theo yêu cầu
Đoạn lisp trên không có gì sai cả.
Lỗi trên do bạn copy thiếu dấu ngoặc, hãy copy lại.
Hãy làm thật thận trọng trong việc copy, nếu xảy ra lỗi hãy kiểm tra thật kỹ lưỡng.
Bởi vì lisp chạy được thì tôi mới post lên.
|
Filename: 12885_kbss_ss.lsp
|
|
Tác giả: Tot77
Bài viết gốc: 294908
Tên lệnh: tmp |
Viết dùm em cái Lisp ASD với
Thử cái này.
(defun c:tmp()
(setq pa (getpoint "\nDiem dau : ")
pb (getpoint pa "\n Diem cuoi : ")
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh))
(if a_pb null (setq a_pb 150.0))
(setq num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0))
(prompt "\nChon thep...
>> Thử cái này.
(defun c:tmp()
(setq pa (getpoint "\nDiem dau : ")
pb (getpoint pa "\n Diem cuoi : ")
a_pb (getreal "\nKhoang cach mm : <150>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh))
(if a_pb null (setq a_pb 150.0))
(setq num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0))
(prompt "\nChon thep de copy:")
(setq ss (ssget)
pt (getpoint "\nDiem goc cua thep:")
ang (angle pa pb)
n -1
os (getvar 'osmode))
(mapcar 'setvar '(osmode cmdecho) '(0 0))
(repeat (1+ num_kc)
(command "copy" ss "" pt (polar pa ang (+ cd_dau_mut (* (setq n (1+ n)) a_pb)))))
(mapcar 'setvar '(osmode cmdecho) (list os 1))
(princ)
)
<<
|
Tác giả: Tot77
Bài viết gốc: 294934
Tên lệnh: tmp1 |
[Help] Viết dùm em cái Lisp ASD với
Rải theo L/2 L/4 :
(defun c:tmp1()
(setq pa (getpoint "\nDiem dau : ")
pb (getpoint pa "\n Diem cuoi : ")
a_pb (getreal "\nKhoang cach rai doan L/4 (mm) : <100>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh))
(if a_pb null (setq a_pb 100.0))
(setq num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0))
...
>> Rải theo L/2 L/4 :
(defun c:tmp1()
(setq pa (getpoint "\nDiem dau : ")
pb (getpoint pa "\n Diem cuoi : ")
a_pb (getreal "\nKhoang cach rai doan L/4 (mm) : <100>")
abv_canh 50.0
cd_thuc (distance pa pb)
cd_ttoan (- cd_thuc abv_canh abv_canh))
(if a_pb null (setq a_pb 100.0))
(setq num_kc (fix (/ cd_ttoan a_pb))
cd_thuc_chia_chan (* num_kc a_pb)
cd_dau_mut (/ (- cd_thuc cd_thuc_chia_chan) 2.0))
(prompt "\nChon thep de copy:")
(setq ss (ssget)
pt (getpoint "\nDiem goc cua thep:")
ang (angle pa pb)
n1 0
n -1
os (getvar 'osmode))
(mapcar 'setvar '(osmode cmdecho) '(0 0))
(while (< n num_kc)
(setq pt1 (polar pa ang (+ cd_dau_mut (* (setq n (1+ n)) a_pb))))
(if (or (<= (distance pa pt1) (* 0.25 cd_thuc))
(>= (distance pa pt1) (* 0.75 cd_thuc)))
(command "copy" ss "" pt pt1)
(if (= 1 (setq n1 (abs (1- n1))))
(command "copy" ss "" pt pt1))))
(mapcar 'setvar '(osmode cmdecho) (list os 1))
(princ)
)
<<
|
Filename: 294934_tmp1.lsp
|
|
Tác giả: Tot77
Bài viết gốc: 294985
Tên lệnh: nn |
[yêu cầu] sửa lisp nối line thành pline
Tôi thấy chọn caí nào nối cái đó cho tiện.
(defun c:nn (/ tdt ssdt)
(defun ObjName (ssdt /) (cdr (assoc '0 (entget ssdt))))
(defun MoPL (ssdt /) (= (cdr (assoc '70 (entget ssdt))) 0))
(defun NoiPL (ssdt tdt /)
(if (MoPL ssdt)
(command ".PEDIT" ssdt "J" tdt "" "")
)
)
(defun NoiLC (ssdt tdt /) (command ".PEDIT" ssdt "Y" "J" tdt "" ""))
(setq tdt (ssget)
ssdt (ssname tdt...
>> Tôi thấy chọn caí nào nối cái đó cho tiện.
(defun c:nn (/ tdt ssdt)
(defun ObjName (ssdt /) (cdr (assoc '0 (entget ssdt))))
(defun MoPL (ssdt /) (= (cdr (assoc '70 (entget ssdt))) 0))
(defun NoiPL (ssdt tdt /)
(if (MoPL ssdt)
(command ".PEDIT" ssdt "J" tdt "" "")
)
)
(defun NoiLC (ssdt tdt /) (command ".PEDIT" ssdt "Y" "J" tdt "" ""))
(setq tdt (ssget)
ssdt (ssname tdt 0))
(if (or (= (Objname ssdt) "LWPOLYLINE")
(= (Objname ssdt) "POLYLINE"))
(NoiPL ssdt tdt)
(if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
(NoiLC ssdt tdt)
)
)
(princ)
)
<<
|
Tác giả: Tot77
Bài viết gốc: 294917
Tên lệnh: td |
nhờ các bác viết giúp e lips pick 1 điểm xuất ra tọa độ dưới dạng (x;y)
Có phải như vầy không.
(defun c:td( / get-x get-y oce xp yp rwc )
(setq oce (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "luprec" 4)
(main)
(setvar "cmdecho" oce)
)
;;;----------------------------- Leader Placement Routine ---------------------
;;; Here is where the leaders are actually written to the database
;;; based upon the value of coordinates passed from module "MAIN" .
;;; Null points are ignored.
(defun...
>> Có phải như vầy không.
(defun c:td( / get-x get-y oce xp yp rwc )
(setq oce (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "luprec" 4)
(main)
(setvar "cmdecho" oce)
)
;;;----------------------------- Leader Placement Routine ---------------------
;;; Here is where the leaders are actually written to the database
;;; based upon the value of coordinates passed from module "MAIN" .
;;; Null points are ignored.
(defun do_put_leader( xyp )
(command "_.leader" rwc pause "" xyp "")
)
;;;----------------------------- xyz coordinate breakdown ----------------------
;;; This routine accepts a point from the calling function and breaks it down
;;; into X,Y values.
(defun get_xyz ( pt )
(strcat "(" (rtos (* 0.001 (car pt)) 2 3) ";" (rtos (* 0.001 (cadr pt)) 2 3) ")"))
;;;-------------------Secondary main module------------------------------------
;;; Accepts the user input and allows the user to select many objects in
;;; succession.
(defun main()
(setq olddim (getvar "dimstyle"))
(setq a (getreal "\n Input Text Height for Annotation : <2.5> "))
(if (null a) (setq a 2.5))
(setvar "dimtxt" a)
(while (setq rwc (getpoint "\nSelect point: "))
(do_put_leader (get_xyz rwc))
)
(command "dimstyle" "restore" olddim)
)
<<
|
Tác giả: Doan Van Ha
Bài viết gốc: 295124
Tên lệnh: ha |
[yêu cầu] lisp chỉnh lựa chọn thông số text inside trong dim
Không thấy ai giúp bạn nên code giùm bạn đây.
; Doan Van Ha - CadViet.com - ngay 26/5/2014
; Chuc nang: dich chuyen vi tri Text cua Dim vao trong hoac ra ngoai 2 duong dong.
(defun C:HA( / dm tn)
(vl-load-com)
(setq dm (car (entsel "\nChon TextDim muon thay doi vi tri: ")))
(initget "T N")
(setq tn (getkword "\nVi tri dat Text <T>: "))
Không thấy ai giúp bạn nên code giùm bạn đây.
; Doan Van Ha - CadViet.com - ngay 26/5/2014
; Chuc nang: dich chuyen vi tri Text cua Dim vao trong hoac ra ngoai 2 duong dong.
(defun C:HA( / dm tn)
(vl-load-com)
(setq dm (car (entsel "\nChon TextDim muon thay doi vi tri: ")))
(initget "T N")
(setq tn (getkword "\nVi tri dat Text <T>: "))
(vla-put-TextInside (vlax-ename->vla-object dm) (if (= tn "N") :vlax-false :vlax-true)))
<<
|
Tác giả: Doan Van Ha
Bài viết gốc: 295161
Tên lệnh: ha |
[yêu cầu] lisp chỉnh lựa chọn thông số text inside trong dim
Sửa lại cho bạn.
; Doan Van Ha - CadViet.com - ngay 26/5/2014
; Chuc nang: dich chuyen vi tri Text cua Dim vao trong hoac ra ngoai 2 duong dong.
(defun C:HA( / tn)
(vl-load-com)
(initget "T N")
(setq tn (getkword "\nVi tri dat Text <T>: "))
(princ "\nChon cac Dimension can thay doi vi tri Text...")
(if (ssget (list (cons 0 "DIMENSION")))
Sửa lại cho bạn.
; Doan Van Ha - CadViet.com - ngay 26/5/2014
; Chuc nang: dich chuyen vi tri Text cua Dim vao trong hoac ra ngoai 2 duong dong.
(defun C:HA( / tn)
(vl-load-com)
(initget "T N")
(setq tn (getkword "\nVi tri dat Text <T>: "))
(princ "\nChon cac Dimension can thay doi vi tri Text...")
(if (ssget (list (cons 0 "DIMENSION")))
(vlax-for obj (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-put-TextInside obj (if (= tn "N") :vlax-false :vlax-true)))))
<<
|
Tác giả: Doan Van Ha
Bài viết gốc: 295180
Tên lệnh: ha |
Chọn số thực và tính tổng các số đó
Code nhanh cho bạn đây.
(defun C:HA( / tong so a i)
(if (setq tong 0 so (ssget '((0 . "*TEXT") (1 . "~**"))))
(repeat (setq i (sslength so))
(if (setq a (distof (cdr (assoc 1 (entget (ssname so (setq i (1- i))))))))
(setq tong (+ tong a)))))
tong)
|
Tác giả: hiepttr
Bài viết gốc: 295316
Tên lệnh: sd |
lisp tính tổng số đai trong dim
level lisp còn thấp cộng với thời gian hạn chế nên chỉ làm đc khung xương cho bạn
Phần bẫy lỗi còn kém, bạn dùng tạm, có gì thắc mắc sẽ chỉnh sửa thêm
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ old i tong ent text_dim start end n)
;;sum dim
(setq old (getvar "cmdecho"))
(setvar...
>> level lisp còn thấp cộng với thời gian hạn chế nên chỉ làm đc khung xương cho bạn
Phần bẫy lỗi còn kém, bạn dùng tạm, có gì thắc mắc sẽ chỉnh sửa thêm
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ old i tong ent text_dim start end n)
;;sum dim
(setq old (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq i 0
tong 0)
(while (setq ent (nentsel "\n Pick dung vao text Dim: "))
(setq i (1+ i)
text_dim (cdr(assoc 1 (entget (car ent))))
start (vl-string-search "[" text_dim)
end (vl-string-search "%%C" text_dim)
n (atoi (substr text_dim (+ 2 start) (- end start 1)))
tong (+ n tong)
)
)
(alert (strcat "Tong cong " (itoa i) " dim la: " (itoa tong) " dai"))
(setvar "cmdecho" old)
(princ)
)
<<
|
Tác giả: hiepttr
Bài viết gốc: 295441
Tên lệnh: sd |
[yêu cầu] lisp tính tổng số đai trong dim
Bạn dùng tạm cái này
Chú ý: đang còn hạn chế, Khi chọn nhầm các loại Dim style không phù hợp thì lisp lỗi ko chạy :D :D :D
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ i tong ss ent info ds ds_name hs text_dim start end n)
;;sum dim
(setq i -1
tong 0)
(prompt "\n Chon Dim can tinh tong: ")
(setq ss...
>> Bạn dùng tạm cái này
Chú ý: đang còn hạn chế, Khi chọn nhầm các loại Dim style không phù hợp thì lisp lỗi ko chạy :D :D :D
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ i tong ss ent info ds ds_name hs text_dim start end n)
;;sum dim
(setq i -1
tong 0)
(prompt "\n Chon Dim can tinh tong: ")
(setq ss (ssget '((0 . "DIMENSION"))))
(while (and ss (< i (1- (sslength ss))))
(setq ent (ssname ss (setq i (1+ i)))
info (entget ent)
ds (cdr (assoc 3 info))
ds_name (tblobjname "dimstyle" ds)
hs (cdr (assoc 143 (entget ds_name)))
)
(cond ((= (cdr(assoc 1 info)) "") (setq n (fix (+ 0.5 (* (cdr(assoc 42 info)) hs)))))
(t (setq text_dim (cdr(assoc 1 info))
start (vl-string-search "[" text_dim)
end (vl-string-search "%%C" text_dim)
n (atoi (substr text_dim (+ 2 start) (- end start 1)))
)
)
)
(setq tong (+ n tong))
)
(alert (strcat "Tong cong " (itoa (1+ i)) " dim la: " (itoa tong) " dai"))
(princ)
)
<<
|
Tác giả: phamthanhbinh
Bài viết gốc: 295446
Tên lệnh: tida |
[yêu cầu] lisp tính tổng số đai trong dim
l-arginine for hair "The downstream reaped the initial benefits of therestructuring program even though further changes are stillnecessary to strengthen our position," Chief ExecutiveChristophe de Margerie said in a statement on Friday. vidalista 10 side effects Some members said a... >> l-arginine for hair "The downstream reaped the initial benefits of therestructuring program even though further changes are stillnecessary to strengthen our position," Chief ExecutiveChristophe de Margerie said in a statement on Friday. vidalista 10 side effects Some members said a recent rise in bond yields - whichCarney"s "forward guidance" pledge is partly designed to counter- may be justified by economic fundamentals. Others said therewas likely to be a case for more asset purchases in future. erectosil oral jelly Jeanne Cooper, who had one of the longest acting runs on any show in television history playing matriarch Katherine Chancellor on "The Young and the Restless," died on May 8, 2013. She was 84. "My mother passed away this morning, peaceful with my sister by her side, in her sleep," her son, actor Corbin Bersen, wrote on Facebook. Cooper was nominated for a daytime Emmy 10 times and won in 2008 -- four years after she received a Lifetime Achievement Award. rexavar ebay Gaithersburg, Maryland-based Brickman tends to gardens of offices, campuses, hotels, shopping centers, healthcare facilities, industrial parks and homes, looks after trees, removes snow and maintains sports turf across 29 states. zandu vigorex forte For the Johnsons, the struggle for health coverage has been a years-long battle. In the 16 years since her birth, their daughter, Mackenzie, has already had 10 major surgeries to treat her club foot, dislocated hips and malformed spine, all due to a rare form of spina bifida that causes the spinal cord to split. (The Johnsons also have an 11-year-old son, Tyler.) maxarouse ingredients âI think itâs the best thing to do for all of us, to focus on the game,â Rodriguez said. âWeâre in the middle of a pennant race. I want to put all the focus back on baseball. ... I think the most important thing for us now out of respect to my team, and my manager and my coaches, weâre in the middle of a very important pennant race. Weâre playing pretty well right now and we want to keep the focus on the field.â zenerx in walmart Determined to avoid a repeat of the wrenching Asian financial crisis of the late 1990s, South Korea"s government, in concert with its central bank, has used macroprudential tools aggressively for the past decade. It wants home prices to rise, but not too quickly, so it has repeatedly adjusted down-payment minimums and debt-to-income maximums for home loans. It also has taxed banks to limit short-term borrowing in foreign currencies, hoping to protect banks from swings in global market sentiment. benefits of febrex plus Dzokhar Tsarnaev, the alleged Boston Marathon bomber, included far fewer uses of the first person pronoun in his Twitter messages from October 2012 onwards, which was just after his brother Tamerlan returned from a trip to Russia and allegedly started posting extremist material on YouTube. filagra dxt reviews Isabel and I met our group outside Washington Square Park just before 6 p.m. Getting hundreds of people on the subway at one time proved to be a slow process. Our arms shaking from lugging our tables and chairs, we didn"t arrive at the secret spot until an hour and a half later. vgr 40 Political discord over the U.S. budget raised the prospectof a federal government shutdown if a deal is not struck bymonth-end, deterring many investors from buying British bluechips as they traded just 3 percent off 13-year highs hit backin May. suplimento xytomax Launching the strategy, Mr Paterson said: "Bovine TB is the most pressing animal health problem in the UK. It threatens our cattle farmers' livelihoods and our farming industry as well as the health of wildlife and livestock. udenafil metabolism A portion of the ticket sales that night will go toward âHope Shines for Shannon.â Shannon Forde, the Mets senior director of media relations, has been battling Stage 4 Breast Cancer since last August. After the game there will be a concert by Third Eye Blind. But who really needs Third Eye Blind when you can get a Jay Horwitz bobblehead. <<
|
Filename: 295446_tida.lsp
|
|
Tác giả: hiepttr
Bài viết gốc: 295449
Tên lệnh: sd |
[yêu cầu] lisp tính tổng số đai trong dim
Bạn dùng tạm cái này
Chú ý: đang còn hạn chế, Khi chọn nhầm các loại Dim style không phù hợp thì lisp lỗi ko chạy :D :D :D
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ i tong ss ent info ds ds_name hs...
>>
Bạn dùng tạm cái này
Chú ý: đang còn hạn chế, Khi chọn nhầm các loại Dim style không phù hợp thì lisp lỗi ko chạy :D :D :D
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ i tong ss ent info ds ds_name hs text_dim start end n)
;;sum dim
(setq i -1
tong 0)
(prompt "\n Chon Dim can tinh tong: ")
(setq ss (ssget '((0 . "DIMENSION"))))
(while (and ss (< i (1- (sslength ss))))
(setq ent (ssname ss (setq i (1+ i)))
info (entget ent)
ds (cdr (assoc 3 info))
ds_name (tblobjname "dimstyle" ds)
hs (cdr (assoc 143 (entget ds_name)))
)
(cond ((= (cdr(assoc 1 info)) "") (setq n (fix (+ 0.5 (* (cdr(assoc 42 info)) hs)))))
(t (setq text_dim (cdr(assoc 1 info))
start (vl-string-search "[" text_dim)
end (vl-string-search "%%C" text_dim)
n (atoi (substr text_dim (+ 2 start) (- end start 1)))
)
)
)
(setq tong (+ n tong))
)
(alert (strcat "Tong cong " (itoa (1+ i)) " dim la: " (itoa tong) " dai"))
(princ)
)
Đúng là khi chọn nhầm dim khác bị lỗi, ko chạy được nhưng cám ơn bạn đã nhiệt tình giúp mình nhé
Mình "cố tình" làm thế vì BV mẫu bạn đưa ra & những thông tin bạn cấp ko đủ để mình lọc Dim style
Nếu muốn chạy trơn tru nữa thì bạn cần cung cấp thông tin đầy đủ từ đầu :D
Nếu chấp nhận bỏ qua dim style ko phù hợp (ko có hs chuyển đổi đơn vị) thì dùng cái này
;; Lisp cong gia tri Dim, phuc vu tinh tong so cot dai theo y/c:
;;http://www.cadviet.com/forum/topic/102605-yeu-cau-lisp-tinh-tong-so-dai-trong-dim/
(defun c:SD (/ i tong ss ent info ds ds_name hs text_dim start end n)
;;sum dim
(setq i -1
j 0
tong 0)
(prompt "\n Chon Dim can tinh tong: ")
(setq ss (ssget '((0 . "DIMENSION"))))
(while (and ss (< i (1- (sslength ss))))
(setq ent (ssname ss (setq i (1+ i)))
info (entget ent)
ds (cdr (assoc 3 info))
ds_name (tblobjname "dimstyle" ds)
hs (cdr (assoc 143 (entget ds_name)))
)
(cond ((null hs) (setq n 0 j (1+ j)))
((= (cdr(assoc 1 info)) "") (setq n (fix (+ 0.5 (* (cdr(assoc 42 info)) hs)))))
(t (setq text_dim (cdr(assoc 1 info))
start (vl-string-search "[" text_dim)
end (vl-string-search "%%C" text_dim)
n (atoi (substr text_dim (+ 2 start) (- end start 1)))
)
)
)
(setq tong (+ n tong))
)
(alert (strcat "Tong cong " (itoa (1+ (- i j))) " dim la: " (itoa tong) " dai"))
(princ)
)
<<
|
Tác giả: phamthanhbinh
Bài viết gốc: 295485
Tên lệnh: tida |
[yêu cầu] lisp tính tổng số đai trong dim
Lisp này hết bị lỗi khi chọn dim không có đai rồi nhưng bạn sửa thêm cho mình là nếu có nhiều loại đai khác nhau (ví dụ trong file đính kèm có 2 loại đai phi6 và phi10) thì tính tổng từng loại đường kính và đưa ra bảng thông báo
Mình cám ơn nhiều
>>
Lisp này hết bị lỗi khi chọn dim không có đai rồi nhưng bạn sửa thêm cho mình là nếu có nhiều loại đai khác nhau (ví dụ trong file đính kèm có 2 loại đai phi6 và phi10) thì tính tổng từng loại đường kính và đưa ra bảng thông báo
Mình cám ơn nhiều
http://www.cadviet.com/upfiles/3/9928_yeu_cau_lisp_tinh_so_dai_trong_nhieu_khoang_dim_2.dwg
Hề hề hề,
Bạn nên rút kinh nghiệm khi đặt yêu cầu viết lisp. nên suy nghĩ thấu đáo về cái mình cần và đưa ra đầy đủ các bản vẽ thể hiện đúng cái mình cần. Đừng làm theo kiểu mỗi lúc lại són ra một yêu cầu thêm mới. Bản vẽ lần trước bạn gửi chỉ có duy nhất một loai đường kinh đai thôi, hoàn toàn không có loại đai thứ hai nào. Bởi vậy mình mới để mặc định trong thông báo là đai phi 6. (bằng chứng vẫn còn đó)
Đây là lisp đã sửa theo yêu cầu mới và hy vọng bạn không đẻ thêm yêu cầu mới cho cái lisp này. Nếu vẫn còn thì bạn sẽ phải đợi lâu đấy, bởi mình hết hứng bổ sung rồi.
(defun c:tida (/ ssd sd ed kt ts n b m sdl dkl ld)
(vl-load-com)
(setq ssd (acet-ss-to-list (ssget (list (cons 0 "dimension") (cons 3 "*00)"))))
dkl (list)
sd 0 )
(foreach d ssd
(setq ed (entget d)
kt (cdr (assoc 42 ed))
ts (cdr (assoc 3 ed))
n (vl-string-search "d" ts)
m (vl-string-search "a" ts)
b (atoi (substr ts (+ 2 m) 3))
dk (substr ts (+ 2 n) (- m n 1))
sdl (if (>= (- (/ kt b) (fix (/ kt b))) 0.5) (1+ (fix (/ kt b))) (fix (/ kt b)))
dkl (append dkl (list (list dk sdl)))
)
)
(setq dkl (vl-sort dkl '(lambda (x y) (<= (atoi (car x)) (atoi (car y))))))
(while dkl
(setq sd 0
ld (caar dkl))
(foreach lis dkl
(if (= (car lis) ld)
(progn
(setq sd (+ sd (cadr lis))
dkl (vl-remove lis dkl) )
)
)
)
(alert (strcat "\n Tong so dai " (chr 216) ld " can dung la: " (rtos sd 2 0) " dai " ))
)
(princ)
)
<<
|
Filename: 295485_tida.lsp
|
|
Tác giả: Doan Van Ha
Bài viết gốc: 218778
Tên lệnh: test | |
Tác giả: lenhatanh
Bài viết gốc: 295613
Tên lệnh: dii |
Text trong Dim?
Bạn có thể viết một đoạn code thể hiện \p hoặc \x được không ? mình đang vướng chỗ này.
(defun c:dii ()
(setq i 1)
(while
(setq ee (car (entsel "\n Chon Doi tuong: ")))
(setq di (cdr (assoc 10 (entget ee))))
(setq tbl (strcat "Block " (rtos i 2 0)))
(command "_Dimaligned" "L" "M" "" tbl di)
(setq i (+ i 1))
)
(princ)
)
|
Tác giả: Tot77
Bài viết gốc: 295616
Tên lệnh: tmp |
[Yêu cầu] Nhờ viết Lisp Move Text vuông góc với Pline hoặc Line
Vừa move vừa xoay thì dùng cái này.
(defun c:tmp (/ obj tm tm1)
(setq obj (vlax-ename->vla-object (car (entsel "\nChon Line hoac Polyline:"))))
(prompt "\nChon text:")
(mapcar '(lambda (x)
(entmod (subst (cons 10 (setq tm (vlax-curve-getClosestPointTo obj (cdr (assoc 10 (entget x))) nil)))
(setq tm1 (assoc 10 (entget x))) (entget x)))
(entmod (subst (cons 50 (angle tm (cdr tm1))) (assoc 50 (entget...
>> Vừa move vừa xoay thì dùng cái này.
(defun c:tmp (/ obj tm tm1)
(setq obj (vlax-ename->vla-object (car (entsel "\nChon Line hoac Polyline:"))))
(prompt "\nChon text:")
(mapcar '(lambda (x)
(entmod (subst (cons 10 (setq tm (vlax-curve-getClosestPointTo obj (cdr (assoc 10 (entget x))) nil)))
(setq tm1 (assoc 10 (entget x))) (entget x)))
(entmod (subst (cons 50 (angle tm (cdr tm1))) (assoc 50 (entget x)) (entget x))))
(acet-ss-to-list (ssget '((0 . "TEXT"))))
)
)
<<
|
Tác giả: Doan Van Ha
Bài viết gốc: 295858
Tên lệnh: test1 test2 |
MPL-MultiPlot _ in nhiều bản vẽ trong file DWG
Chức năng down của CV dạo này sao í!
;--------------------------------------------------------------------------- §äc vµ Ghi file CFG --------------------------------- Xem file "Cang_day.lsp" + "Khoang_cot_so_bo.lsp" sÏ râ b¶n chÊt.
;Xem thªm ë folder "SKCT_2012" ®Ó hiÓu râ h¬n.
;----- Ghi vµo file cfg.
(defun LM:WriteConfig (filename ValList / ofile)
(if (setq ofile (open filename "w"))
Chức năng down của CV dạo này sao í!
;--------------------------------------------------------------------------- §äc vµ Ghi file CFG --------------------------------- Xem file "Cang_day.lsp" + "Khoang_cot_so_bo.lsp" sÏ râ b¶n chÊt.
;Xem thªm ë folder "SKCT_2012" ®Ó hiÓu râ h¬n.
;----- Ghi vµo file cfg.
(defun LM:WriteConfig (filename ValList / ofile)
(if (setq ofile (open filename "w"))
(progn
(foreach x ValList (write-line (vl-prin1-to-string x) ofile))
(setq ofile (close ofile))
T)))
;----- §äc tõ file cfg.
(defun LM:ReadConfig (filename SymList / ofile)
(if (and (setq filename (findfile filename)) (setq ofile (open filename "r")))
(progn
(foreach x SymList (set x (read (read-line ofile))))
(setq ofile (close ofile))
T)))
;----- Hµm lÊy Path cña file lu.
(defun LM:GetSavePath ( / tmp)
(cond
((setq tmp (getvar 'ROAMABLEROOTPREFIX))
(or (eq "\\" (substr tmp (strlen tmp))) (setq tmp (strcat tmp "\\")))
(strcat tmp "Support"))
((setq tmp (findfile "ACAD.pat"))
(setq tmp (vl-filename-directory tmp))
(and (eq "\\" (substr tmp (strlen tmp))) (setq tmp (substr tmp (1- (strlen tmp)))))
tmp)))
;-----Example1: nªu biªt 1 sè val mÆc ®inh cña vallst.
(defun C:TEST1()
(setq fcfg (strcat (LM:GetSavePath) "\\Cang_day.cfg")) ;§Æt tªn file cfg trong th môc gèc ®Ó ghi.
(setq keylst '(tldai tlcao tmcon)) ;List c¸c Key trong Dialoge.
(setq vallst (list "1" "10" 'nil "DZ_XYZ")) ;Set c¸c Val ban ®Çu t¬ng øng c¸c Key (mÆc ®Þnh lóc ®Çu).
(or (findfile fcfg) (LM:WriteConfig fcfg vallst)) ;Neu cha co file cfg th× ghi c¸c Val ban ®Çu.
(LM:ReadConfig fcfg keylst) ;§äc c¸c Val trong file cfg.
(mapcar '(lambda (key val) (or (boundp key) (set key val))) keylst vallst) ;G¸n c¸c Val vµo c¸c Key trong Dialoge.
;Lµm nh÷ng viÖc g× ®ã ë ®©y!!! ;Ho¹t ®éng cña ch¬ng tr×nh
(LM:WriteConfig fcfg (mapcar 'eval keylst))) ;Ghi c¸c Val lÊy ®îc tõ Dialoge ra file cfg (ghi mÆc ®Þnh míi). §Æt cuèi c.tr×nh
;-----Example2: nªu kh«ng biªt tÊt c¶ mÆc ®inh cña vallst.
(defun C:TEST2()
(setq fcfg (strcat (LM:GetSavePath) "\\Cang_day.cfg")) ;§Æt tªn file cfg trong th môc gèc ®Ó ghi.
(setq keylst '(tldai tlcao tmcon)) ;List c¸c Key trong Dialoge.
(LM:ReadConfig fcfg keylst) ;§äc c¸c Val trong file cfg.
(mapcar '(lambda (key val) (or (boundp key) (set key val))) keylst vallst) ;G¸n c¸c Val vµo c¸c Key trong Dialoge.
;Lµm nh÷ng viÖc g× ®ã ë ®©y!!! ;Ho¹t ®éng cña ch¬ng tr×nh
(LM:WriteConfig fcfg (mapcar 'eval keylst))) ;Ghi c¸c Val lÊy ®îc tõ Dialoge ra file cfg (ghi mÆc ®Þnh míi). §Æt cuèi c.tr×nh
<<
|
Filename: 295858_test1_test2.lsp
|
|