LISP : Ánh xạ giá trị đối tượng (thay đổi giá trị nguồn -> Đích cập nhật theo

By Nặc danh - tháng 6 08, 2011


xin gửi các bạn LISP : Ánh xạ giá trị đối tượng gồm
1 . LinkT : Ánh xạ giá trị Text
2 . LinkA : Ánh xạ giá trị Diện tích
chú ý : khi sửa giá trị ở đối tượng nguồn, đối tượng đích (text) chỉ update sau khi sử dụng lệnh REGEN, SAVE, PLOT,...
file: linkt_linka.lsp
(defun c:LinkT (/ ss_ent ent ss e cmd);Link Text (if (> (atof (substr (getvar "ACADVER") 1 4)) 16.1) ;;;AutoCAD 2006 16.2 (progn (vl-load-com) (command "_.undo" "_begin") (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (and (princ "\nChon Text goc : ") (setq ss_ent (ssget "_:S:E" '((0 . "TEXT"))) ) (setq ent (vlax-ename->vla-object (ssname ss_ent 0))) (princ "\nChon Text can Link gia tri tu Text goc : ") (setq ss (ssget (list (cons 0 "TEXT")) )) (foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (vla-put-TextString (vlax-ename->vla-object e) (strcat"%<\\AcObjProp Object(%<\\_ObjId "(vl-princ-to-string (vla-get-ObjectId ent)) ">%).TextString >%") ) ) ) (setvar "cmdecho" cmd) (command "_.undo" "_end")(princ) ) (alert "\nChi chay tren Autocad 2006-2010") ) ) (defun c:LinkA (/ ss_ent ent ss e cmd sole tile Suff Pref);Link Area (if (> (atof (substr (getvar "ACADVER") 1 4)) 16.1) ;;;AutoCAD 2006 16.2 (progn (vl-load-com) (command "_.undo" "_begin") (setq cmd (getvar "cmdecho")) (setvar "cmdecho" 0) (and (princ "\nChon doi tuong lay Dien tich : ") (setq ss_ent (ssget "_:S:E" '((0 . "*POLYLINE,ARC,SPLINE,ELLIPSE,CIRCLE"))) ) (setq ent (vlax-ename->vla-object (ssname ss_ent 0))) (princ "\nChon Text can Link gia tri Dien tich : ") (setq ss (ssget (list (cons 0 "TEXT")) )) (setq sole (getvar "Luprec"));so le (setq tile 1);ti le (setq Pref "S=") (setq Suff " mm2") (foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (vla-put-TextString (vlax-ename->vla-object e) (strcat "%<\\AcObjProp Object(%<\\_ObjId " (vl-princ-to-string (vla-get-ObjectId ent) ) ">%).Area \\f \"%lu2%ps[" Pref "," Suff "]%pr" (itoa sole) "%ct8[" (vl-princ-to-string tile) "]\">%" ) ) ) ) (setvar "cmdecho" cmd) (command "_.undo" "_end")(princ) ) (alert "\nChi chay tren Autocad 2006-2010") ) )



Theo cadviet forum

  • Share:

You Might Also Like

0 Comments

Vui lòng viết tiếng Việt có dấu!!!