startwithlisp 0 Báo cáo bài đăng Đã đăng Tháng 4 19, 2009 Các bác viết giúp em một tiện ích thế này em có 3 layer layer1, layer2, va layer3 layer1 là các polyline trên bản vẽ layer2 là các text đã được bắt nearlest vào các polyline và xoay theo hướng polyline layer3 la cac text đã được bắt endpoint vào đầu polyline 1. chỉ bật layer1 va layer2. em muốn point vào chỗ layer2 chưa được bắt snap nearleat chính xác vào layer1 2. chỉ bật layer1 và layer3. em muốn point vào chỗ layer3 chưa được bắt snap endpoint vào layer1 em đang mầy mò về lisp. vộc trên cadviet 2 tuần rồi mà chưa ăn thua gì cả mong các bác giúp em. em thấy bác hoành và bác ssg rất pro. nhờ cậy 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
Nguyen Hoanh 4669 Báo cáo bài đăng Đã đăng Tháng 4 19, 2009 Các bác viết giúp em một tiện ích thế này em có 3 layer layer1, layer2, va layer3 layer1 là các polyline trên bản vẽ layer2 là các text đã được bắt nearlest vào các polyline và xoay theo hướng polyline layer3 la cac text đã được bắt endpoint vào đầu polyline 1. chỉ bật layer1 va layer2. em muốn point vào chỗ layer2 chưa được bắt snap nearleat chính xác vào layer1 2. chỉ bật layer1 và layer3. em muốn point vào chỗ layer3 chưa được bắt snap endpoint vào layer1 em đang mầy mò về lisp. vộc trên cadviet 2 tuần rồi mà chưa ăn thua gì cả mong các bác giúp em. em thấy bác hoành và bác ssg rất pro. nhờ cậy các bác. Bạn hãy post 1 file dwg lên diễn đà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
startwithlisp 0 Báo cáo bài đăng Đã đăng Tháng 4 19, 2009 Bạn hãy post 1 file dwg lên diễn đàn. file cần check như thế này. http://www.cadviet.com/upfiles/checksnap.dwg cảm ơn bác Hoành đã reply. Em muốn point vào các điểm mà +layer1 chưa bắt snap đúng vào layer4 +layer3 chưa bắt snap vào layer2 Thanks 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
phamthanhbinh 3147 Báo cáo bài đăng Đã đăng Tháng 4 20, 2009 file cần check như thế này. http://www.cadviet.com/upfiles/checksnap.dwg cảm ơn bác Hoành đã reply. Em muốn point vào các điểm mà +layer1 chưa bắt snap đúng vào layer4 +layer3 chưa bắt snap vào layer2 Thanks bác. Chào bạn startwithlisp, Bạn hãy đọc kỹ các bài ở đây: http://www.cadviet.com/forum/index.php?sho...205&st=1860 Sau khi hiểu rõ, bạn có thể xài thử cái lisp của bác Tue_NV và cho biết rõ chỗ nào OK, chỗ nào chưa OK, post file kết quả sau khi chạy lisp lên mọi người sẽ chỉnh sửa giùm bạn. Trong lisp của bác Tue_NV có thể sẽ chưa hoàn toàn như ý bạn do điểm đặt text có thể khác nhau. Đừng lo cứ chạy lisp đi bạn nhé. Cái lisp đó có nội dung gần với yêu cầu của bạn và việc chỉnh sửa nó theo ý bạn không quá khó. Miễn là bạn phải nói đúng cái chỗ cần sửa và cái bạn muốn thôi. Chúc bạn vui. 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
startwithlisp 0 Báo cáo bài đăng Đã đăng Tháng 4 20, 2009 Chào bạn startwithlisp,Bạn hãy đọc kỹ các bài ở đây: http://www.cadviet.com/forum/index.php?sho...205&st=1860 Sau khi hiểu rõ, bạn có thể xài thử cái lisp của bác Tue_NV và cho biết rõ chỗ nào OK, chỗ nào chưa OK, post file kết quả sau khi chạy lisp lên mọi người sẽ chỉnh sửa giùm bạn. Trong lisp của bác Tue_NV có thể sẽ chưa hoàn toàn như ý bạn do điểm đặt text có thể khác nhau. Đừng lo cứ chạy lisp đi bạn nhé. Cái lisp đó có nội dung gần với yêu cầu của bạn và việc chỉnh sửa nó theo ý bạn không quá khó. Miễn là bạn phải nói đúng cái chỗ cần sửa và cái bạn muốn thôi. Chúc bạn vui. Thanks bạn phamthanhbinh mình đã đọc phần chỉ dẫn, tuy nhiên mình muốn đánh dấu point vào cả bản vẽ có được không? mong được giúp đỡ. 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
q288 166 Báo cáo bài đăng Đã đăng Tháng 4 22, 2009 Thanks bạn phamthanhbinhmình đã đọc phần chỉ dẫn, tuy nhiên mình muốn đánh dấu point vào cả bản vẽ có được không? mong được giúp đỡ. Mình có viết ct này cho yêu cầu của bạn, hy vọng sẹ chạy tốt. Tên lệnh chk. Khi điểm chèn của text ko nẳm trên pline hoặc độ nghiêng text chênh với độ nghiêng pline quá 10 độ thì sẽ báo lỗi bằng poỉnt. (vl-load-com) (defun r2d(x) (if (< x 0) (setq x (+ (* 2 pi) x))) (setq x (fix (* x (/ 180 pi)))) (if (> x 180) (setq x (- x 180))) x ) (defun TxtEnd(vt vpl vtx / v1 p1 p2) (setq v1 (vlax-ename->vla-object vpl) p1 (vlax-curve-getStartPoint v1) p2 (vlax-curve-getEndPoint v1)) (and (or (equal vt p1 0.0001) (equal vt p2 0.0001)) (or (equal (r2d (angle p1 p2)) (+ (r2d (cdr (assoc 50 (entget vtx)))) 90) 10) (equal (r2d (angle p1 p2)) (- (r2d (cdr (assoc 50 (entget vtx)))) 90) 10))) ) (defun TxtIn(p vpl vtx / v1 p1 n ps pe) (setq v1 (vlax-ename->vla-object vpl) p1 (vlax-curve-getClosestPointTo v1 p) n (fix (vlax-curve-getParamAtPoint v1 p1)) ps (vlax-curve-getPointAtParam v1 n) pe (vlax-curve-getPointAtParam v1 (1+ n))) (if (and ps pe) (and (equal (angle ps p) (angle p pe) 0.0001) (equal (r2d (angle ps pe)) (r2d (cdr (assoc 50 (entget vtx)))) 10)) t) ) (defun main(ss d / en el vt sst k v m) (while (and ss (> (sslength ss) 0)) (setq en (ssname ss 0) el (entget en) vt (if (/= (cdr (assoc 72 el)) 0) (cdr (assoc 11 el)) (cdr (assoc 10 el))) sst (ssget "c" (polar vt (* -0.25 pi) 0.1) (polar vt (* 0.75 pi) 0.1)) k 0) (while (and sst (> (sslength sst) 0)) (setq v (ssname sst 0)) (if (= (cdr (assoc 0 (entget v))) "LWPOLYLINE") (setq k 1 m (if (= 1 d) (TxtIn vt v en) (TxtEnd vt v en)))) (ssdel v sst)) (if (or (= k 0) (null m)) (command "point" vt)) (ssdel en ss) ) ) ;;; Main function (defun c:chk() (setvar "PDMODE" 34) (setvar "PDSIZE" 3) (setq os (getvar "OSMODE")) (setvar "OSMODE" 0) (command "ucs" "w") (command "zoom" "e") ;;;xet layer1, layer4 (setvar "CLAYER" "layer1") (command "-layer" "off" "*" "y" "on" "layer1" "on" "layer4" "") (setq ss (ssget "X" '((0 . "TEXT") (8 . "layer1")))) (main ss 0) ;;; xet layer2,layer3 (setvar "CLAYER" "layer3") (setvar "CECOLOR" "2") (command "-layer" "off" "*" "y" "on" "layer3" "on" "layer2" "") (setq ss0 (ssget "X" '((0 . "LWPOLYLINE") (8 . "layer2")))) (command "change" ss0 "" "p" "LT" "bylayer" "") (setq ss (ssget "X" '((0 . "TEXT") (8 . "layer3")))) (main ss 1) (command "change" ss0 "" "p" "LT" "MUI_TEN_HUONG_LINE" "") (command "-layer" "on" "*" "" ) (setvar "OSMODE" os) ) 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
startwithlisp 0 Báo cáo bài đăng Đã đăng Tháng 4 22, 2009 Thanks q288. Mình đang check thử. Có vấn đề gì mình sẽ email lạ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