truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Em có đối tượng text và đối tượng tolerance, bây giờ em muốn dùng field để link nội dung 2 cái đó lại với nhau mà ko được, nó hiện thêm 1 đống ký tự tùm lum nữa!Nhờ mấy anh em giúp dùm em với! Nếu 2 đối tượng này ko link bằng field lại được vậy có cách nào khác ko nhờ giúp dùm em với!(Ví dụ như exlode tolerance ra thành text được ko, em exlode hoài mà ko dc) Em gửi link nhờ anh em xem giúp em với: http://www.cadviet.com/upfiles/3/tolerace.dwg Cảm ơn mọi người 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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Vậy tại sao bạn phải dùng Tol ?? Sao không là text ngay từ đầu hè ?? 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Vậy tại sao bạn phải dùng Tol ?? Sao không là text ngay từ đầu hè ?? Dạ! Do bản vẽ này người ta đã làm từ trước rất nhiều! Bây giờ mình tiếp nhận làm tiếp tục ạ!Nhờ bạn giúp dùm mình vớ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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Không cần link có được k bạn ^^ 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Không cần link có được k bạn ^^ Dạ! Cái cần là cái đó đó bạn! Dùng FIELD thì hiện tùm lum ký tự hết! Mong bạn giúp dùm mình vớ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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Mình vẫn chưa hiểu ý bạn nói " cái cần là cái đó " tức là sao ? Tức là bạn cần link để lúc bạn thay đổi nó sẽ đổi theo , hay cần lấy cái đoạn text ra thôi ?? Nếu cần, có thể tạo lại toàn bộ các TOL này bằng text và HCN bao quanh, rồi link nội dung, e là lâu ^^ Trước hết bạn dùng thử cái này để copy nội dung TOL vào sau đoạn text bạn cần đã ;free lisp from Cadviet.com @ketxu (defun c:gl () (defun chDXF (dxf val ent) (entmod (subst (cons dxf val) (assoc dxf (entget ent)) (entget ent)))) (defun dxf (dxf ent) (cdr (assoc dxf (entget ent)))) (princ "\n Chon Tolerance : ") (while (setq tol (ssname (ssget ":S" '((0 . "TOLERANCE"))) 0)) (setq txt (car(entsel "\n Chon text can ghep "))) (chdxf 1 (strcat (dxf 1 txt) (vl-string-trim "%%v" (dxf 1 tol))) txt) )) 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Mình vẫn chưa hiểu ý bạn nói " cái cần là cái đó " tức là sao ? Tức là bạn cần link để lúc bạn thay đổi nó sẽ đổi theo , hay cần lấy cái đoạn text ra thôi ?? Nếu cần, có thể tạo lại toàn bộ các TOL này bằng text và HCN bao quanh, rồi link nội dung, e là lâu ^^ Trước hết bạn dùng thử cái này để copy nội dung TOL vào sau đoạn text bạn cần đã ;free lisp from Cadviet.com @ketxu (defun c:gl () (defun chDXF (dxf val ent) (entmod (subst (cons dxf val) (assoc dxf (entget ent)) (entget ent)))) (defun dxf (dxf ent) (cdr (assoc dxf (entget ent)))) (princ "\n Chon Tolerance : ") (while (setq tol (ssname (ssget ":S" '((0 . "TOLERANCE"))) 0)) (setq txt (car(entsel "\n Chon text can ghep "))) (chdxf 1 (strcat (dxf 1 txt) (vl-string-trim "%%v" (dxf 1 tol))) txt) )) Do bài trước bạn hỏi có cần link ko nên mình mới nói " cái cần là cái đó ", mình muốn link 2 cái đó chắc là ko dc hả bạn?Hy vọng bạn giúp dùm mình! Lisp kia chỉ lấy text chứ chưa link! Làm phiền bạn nhiều 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Do bài trước bạn hỏi có cần link ko nên mình mới nói " cái cần là cái đó ", mình muốn link 2 cái đó chắc là ko dc hả bạn?Hy vọng bạn giúp dùm mình! Lisp kia chỉ lấy text chứ chưa link! Làm phiền bạn nhiều quá! Truong thanh có thể upload file có toàn bộ Tolerance lên đây để thử được không? Nếu file nặng quá thì xóa bớt, chừa lại trên 10 cái Tolerance để thử nhé. 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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Hiện tại thì bản thân mình cũng chưa biết nếu làm thủ công thì bạn "link" như thế nào để lấy được cái lõi của Tolerance, nên không thể đưa ra thuật toán được ^^ 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Truong thanh có thể upload file có toàn bộ Tolerance lên đây để thử được không? Nếu file nặng quá thì xóa bớt, chừa lại trên 10 cái Tolerance để thử nhé. Nhờ anh TUE giúp em với! http://www.cadviet.com/upfiles/3/tolerance_1.dwg 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 3 16, 2011 Nhờ anh TUE giúp em với! http://www.cadviet.com/upfiles/3/tolerance_1.dwg Truongthanh thử cái này : Chọn 1 loạt luôn nhé : :rolleyes: (defun c:glt(/ oldos sst cs ob str Rec p1 p2 p tt LA ssm chu) (command "undo" "be") (setq oldos (getvar "osmode")) (setvar "osmode" 0) (setvar "cmdecho" 0) (setq sst (acet-ss-to-list (ssget '((0 . "TOLERANCE")))) ) (setq cs '(5.0 -20.0 0.0)) (command "zoom" "e") (Foreach e sst (setq ob (vlax-ename->vla-object e)) (setq str (vl-string-trim "%%v" (acet-dxf 1 (entget e)))) (setq Rec (ACET-ENT-GEOMEXTENTS e)) (setq p1 (car Rec) p2 (cadr Rec)) (setq p (acet-geom-midpoint (car Rec) (cadr Rec)) ) (setq tt (entmakex (List (cons 0 "TEXT") (cons 1 str) (cons 7 (vlax-get ob 'Textstyle)) (cons 40 (/ (- (cadr p2) (cadr p1)) 2) ) (cons 10 p) (cons 11 p) (cons 72 1) (cons 73 2) (setq LA (assoc 8 (entget e)) ) ) ) ) (if (vl-cmdf "rectang" p1 p2) (command "chprop" (entlast) "" "LA" (cdr LA) "") ) (entdel e) (setq ssm (ssget "c" p2 (mapcar '+ cs p2) (list(cons 0 "MTEXT")))) (foreach x (acet-ss-to-list ssm) (if (wcmatch (setq chu (vl-string-trim ". " (acet-dxf 1 (entget x)))) "OÅ KHOAÙ SOÁ:" ) (vlax-put (vlax-ename->vla-object x) 'Textstring (strcat chu "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vlax-get (vlax-ename->vla-object tt) 'ObjectID)) ">%).TextString>%") ) ) ) ) (command "zoom" "p") (setvar "osmode" oldos) (command "undo" "e") (princ) ) 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Truongthanh thử cái này : Chọn 1 loạt luôn nhé : :rolleyes: (defun c:glt(/ oldos sst cs ob str Rec p1 p2 p tt LA ssm chu) (command "undo" "be") (setq oldos (getvar "osmode")) (setvar "osmode" 0) (setvar "cmdecho" 0) (setq sst (acet-ss-to-list (ssget '((0 . "TOLERANCE")))) ) (setq cs '(5.0 -20.0 0.0)) (command "zoom" "e") (Foreach e sst (setq ob (vlax-ename->vla-object e)) (setq str (vl-string-trim "%%v" (acet-dxf 1 (entget e)))) (setq Rec (ACET-ENT-GEOMEXTENTS e)) (setq p1 (car Rec) p2 (cadr Rec)) (setq p (acet-geom-midpoint (car Rec) (cadr Rec)) ) (setq tt (entmakex (List (cons 0 "TEXT") (cons 1 str) (cons 7 (vlax-get ob 'Textstyle)) (cons 40 (/ (- (cadr p2) (cadr p1)) 2) ) (cons 10 p) (cons 11 p) (cons 72 1) (cons 73 2) (setq LA (assoc 8 (entget e)) ) ) ) ) (if (vl-cmdf "rectang" p1 p2) (command "chprop" (entlast) "" "LA" (cdr LA) "") ) (entdel e) (setq ssm (ssget "c" p2 (mapcar '+ cs p2) (list(cons 0 "MTEXT")))) (foreach x (acet-ss-to-list ssm) (if (wcmatch (setq chu (vl-string-trim ". " (acet-dxf 1 (entget x)))) "OÅ KHOAÙ SOÁ:" ) (vlax-put (vlax-ename->vla-object x) 'Textstring (strcat chu "%<\\AcObjProp Object(%<\\_ObjId " (itoa (vlax-get (vlax-ename->vla-object tt) 'ObjectID)) ">%).TextString>%") ) ) ) ) (command "zoom" "p") (setvar "osmode" oldos) (command "undo" "e") (princ) ) Cảm ơn anh nhiều! Vậy là mình chỉ explode các đối tượng tolerance ra thôi đúng ko anh, chứ mình đâu link kiểu như field 2 đối tượng tolerance và mtex được phải ko anh? p/s: Em bấm dấu cộng cảm ơn mà ko cho, nó báo em đã bấm nhiều quá 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Cảm ơn anh nhiều! Vậy là mình chỉ explode các đối tượng tolerance ra thôi đúng ko anh, chứ mình đâu link kiểu như field 2 đối tượng tolerance và mtex được phải ko anh? p/s: Em bấm dấu cộng cảm ơn mà ko cho, nó báo em đã bấm nhiều quá rối! Mình không explode các đối tượng tolerance ra được. Chỉ có điều xóa cái tolerance đó đi và viết cái TEXT y chang như thế, vẽ hình chữ nhật y chang như vậy. Sau đó là tìm cái TEXT có chuỗi : Ổ KHÓA gì gì đó là Link Field lại. Vậy đó :) 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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Đó ^^ Khó mà giữ Tol rồi link được, vì đơn giản nó là như thế ^^ Lưu ý bạn Thanh là bác TUệ viết áp dụng cho trường hợp đặc biệt là dạng TOL như thế này nhé, nên nếu đổi dạng thì cần phải chỉnh ^^ Và còn phần góc quay và Height thì ...bạn chịu khó ^^ Vote đã ^^ 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Mình không explode các đối tượng tolerance ra được. Chỉ có điều xóa cái tolerance đó đi và viết cái TEXT y chang như thế, vẽ hình chữ nhật y chang như vậy. Sau đó là tìm cái TEXT có chuỗi : Ổ KHÓA gì gì đó là Link Field lại. Vậy đó :) Sao em thực hiện lisp xong đâu có thấy "Sau đó là tìm cái TEXT có chuỗi : Ổ KHÓA gì gì đó là Link Field lại." như anh nói đâu? cái chữ Ổ KHÓA nó vẫn nằm chình ình như vậy đâu có FIELD với cái P1-34 đâu anh? Hay là công việc FIELD mình tự làm tay vậy anh? 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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Bạn quét hết màn hình đi :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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Bạn quét hết màn hình đi :D À mình cảm ơn! Câu hỏi của mình chắc là ko làm được rồi! Phải làm từng cái thôi chứ quét 1 lần hết màn hình thì nó sẽ ko hiểu cái nào field với cái nào! 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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Thế mà nó lại hiểu mới lạ chứ, bạn đã thử chưa ^^ Mình thử thấy OK. P/S : mỗi khi bạn lấy lisp về, trước hết hãy test ngay bằng nhiều cách 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Mình không explode các đối tượng tolerance ra được. Chỉ có điều xóa cái tolerance đó đi và viết cái TEXT y chang như thế, vẽ hình chữ nhật y chang như vậy. Sau đó là tìm cái TEXT có chuỗi : Ổ KHÓA gì gì đó là Link Field lại. Vậy đó :) Em làm thử rồi anh Tuệ! Giả sử file ví dụ em gửi lên cho anh có 6 cái khung! Em quét hết màn hình thì 6 chữ ổ khóa nó đều link với cùng 1 giá trị đầu tiên mà mình quét thôi phải ko anh? Còn ý em muốn là cái chữ ổ khóa trong khung nào thì nó link với cái chữ P1-XX cũng nằm trong khung đó luôn! Nhưng theo em nghĩ chắc là ko dc phải ko anh, vì cái chữ Ổ Khóa đó nó sẽ ko phân biệt dc là nó đang nằm trong khung nào hết! 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
ketxu 2.983 Báo cáo bài đăng Đã đăng Tháng 3 17, 2011 Lúc mình quét hết nó nhận riêng, chẳng thằng nào giống thằng nào bạn ạ. Lạ thật ^^ Bác TUệ vào giải giùm nào ^^ 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 18, 2011 Lúc mình quét hết nó nhận riêng, chẳng thằng nào giống thằng nào bạn ạ. Lạ thật ^^ Bác TUệ vào giải giùm nào ^^ Sao kỳ vậy ta? Mình quét tất cả thì tất cả các chữ ổ khóa nó cùng 1 giá trị hết luôn! Nhờ anh Tuệ xem giúp em vớ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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 3 18, 2011 Em làm thử rồi anh Tuệ! Giả sử file ví dụ em gửi lên cho anh có 6 cái khung! Em quét hết màn hình thì 6 chữ ổ khóa nó đều link với cùng 1 giá trị đầu tiên mà mình quét thôi phải ko anh? Còn ý em muốn là cái chữ ổ khóa trong khung nào thì nó link với cái chữ P1-XX cũng nằm trong khung đó luôn! Nhưng theo em nghĩ chắc là ko dc phải ko anh, vì cái chữ Ổ Khóa đó nó sẽ ko phân biệt dc là nó đang nằm trong khung nào hết! Khi quét mấy cái Tolerance nó sẽ tự động Link Field luôn. Nó tự hiểu luôn à. Nó phân biệt được tất. Em gửi file mà em đã test cho anh xem cái nào! Thế nhé. 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 18, 2011 Khi quét mấy cái Tolerance nó sẽ tự động Link Field luôn. Nó tự hiểu luôn à. Nó phân biệt được tất. Em gửi file mà em đã test cho anh xem cái nào! Thế nhé. Dạ cảm ơn anh! File công việc nên em gửi vào mail anh dc ko anh? 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 3 18, 2011 Dạ cảm ơn anh! File công việc nên em gửi vào mail anh dc ko anh? Được :rolleyes: Nếu vì file công việc thì em xóa tất cả đi chỉ chừa lại các TOLERANCE và các Text cần Link. OK? 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
truongthanh 7 Báo cáo bài đăng Đã đăng Tháng 3 21, 2011 Được :rolleyes: Nếu vì file công việc thì em xóa tất cả đi chỉ chừa lại các TOLERANCE và các Text cần Link. OK? Xin lỗi anh! Em làm được rồi! Em copy những cái em cần qua một file mới thì làm được rồi! Còn tron file cũ của em, em chỉ quét vùng em cần làm thôi, vùng khác em chưa cần làm thì em ko quét thì nó bị lỗi! Cảm ơn anh nhì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