Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 (Đă chỉnh sửa) Cảm ơn bạn ,kết quả ra đúng ,nhưng mình không hiểu sao nếu không có hàm fixR của bạn thì kết quả lại sai. Mình muốn viết thêm gì để kết quả như 199.0200 như bây giờ là 199 2 0 trở thành được 199 02 00 Nhờ bạn chỉ dẫn. Đó là 1 lỗi khó hiểu của Lisp. Bác thử cái này nhé : (setq a ( nth 0 LL1)) (setq b (atof a)) (setq c (fixR B)) (setq d (prefix0 C)) (setq e (- b (fixR B))) (setq e1 (* e 100)) (setq e2 (fixR e1)) (setq e3 (prefix0 e2)) (setq g (- e1 (fixR e1))) (setq g1 (* g 100)) (setq g2 (fixR g1)) (setq g3 (prefix0 g2)) ;;;;; (defun fixR (s) (fix(atof(rtos s)))) (defun prefix0 (s) (if ( (strcat "0" (itoa s)) (itoa s) ) ) Chỉnh sửa Tháng 12 17, 2010 theo Tue_NV 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
phamthanhbinh 3.146 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Cảm ơn bạn ,kết quả ra đúng ,nhưng mình không hiểu sao nếu không có hàm fixR của bạn thì kết quả lại sai. Mình muốn viết thêm gì để kết quả như 199.0200 như bây giờ là 199 2 0 trở thành được 199 02 00 Nhờ bạn chỉ dẫn. Chào bạn NDBNGO, Lỗi của bạn là do cái hàm fix của lisp nó gây ra. Vì sao thì bạn chịu khó hỏi thằng Autodesk chứ mình cũng không giải thích được bạn ạ. Để khắc phục cái lỗi này, mình dùng kiểu cắt chuỗi. Bạn xài thử xem nhé. Nhớ là khi nhập chuỗi thì bạn phải nhập đúng định dạng mà bạn đã post, tức là sử dụng dấu chấm thập phân và phần thập phân có 4 chữ số bạn nhé. Nếu không líp nó chê xấu giai nó không cưới đâu. Cô nàng này đỏng đảnh lắm. Như vậy nó cũng khắc phục được luôn cái lỗi như của lisp bác Tue_NV đã viết tức là 199.0299 sẽ thành 199 02 99 chứ không phải 199 2 99. Bạn thử coi sao nhé. (defun c:doit () (setq txt (getstring "\n Nhap text can doi: ")) (if (not (wcmatch txt "*.####")) (alert "\Text sai dinh dang, hay lam lai") (progn (setq n (strlen txt) i 0) (repeat n (if (= (substr txt (1+ i) 1) ".") (setq k (1+ i)) ) (setq i (1+ i)) ) (setq t1 (substr txt 1 (1- k)) t2 (substr txt (1+ k) 2) t3 (substr txt (+ 3 k) 2) txt (strcat t1 " " t2 " " t3) ) ) ) ) Chúc bạn vui. Nếu có gì chưa vừa ý thì hãy post lên nhé để mình hoàn thiện nó. À mà quên mất, nếu bạn đã có một list các góc theo đúng dịnh dạng trên thì bạn có thể sử dụng (setq txt (nth 0 LL1)) thay cho (setq txt (gestring .....)). 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
NDBNGO 20 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Đó là 1 lỗi khó hiểu của Lisp. Bác thử cái này nhé : (setq a ( nth 0 LL1)) (setq b (atof a)) (setq c (fixR B )) (setq d (prefix0 C)) (setq e (- b (fixR B ))) (setq e1 (* e 100)) (setq e2 (fixR e1)) (setq e3 (prefix0 e2)) (setq g (- e1 (fixR e1))) (setq g1 (* g 100)) (setq g2 (fixR g1)) (setq g3 (prefix0 g2)) ;;;;; (defun fixR (s) (fix(atof(rtos s)))) (defun prefix0 (s) (if (< s 10) (strcat "0" (itoa s)) (itoa s) ) ) Về lý thuyết thì khi thêm đoạn mã của bạn vào thì sẽ thêm số o đằng trước những số nhỏ hơn 10 ,nhưng thực tế mình cho vào chạy kết quả vẫn như cũ ,nghĩa là số o không được hiện thị. 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
NDBNGO 20 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Chào bạn NDBNGO,Lỗi của bạn là do cái hàm fix của lisp nó gây ra. Vì sao thì bạn chịu khó hỏi thằng Autodesk chứ mình cũng không giải thích được bạn ạ. Để khắc phục cái lỗi này, mình dùng kiểu cắt chuỗi. Bạn xài thử xem nhé. Nhớ là khi nhập chuỗi thì bạn phải nhập đúng định dạng mà bạn đã post, tức là sử dụng dấu chấm thập phân và phần thập phân có 4 chữ số bạn nhé. Nếu không líp nó chê xấu giai nó không cưới đâu. Cô nàng này đỏng đảnh lắm. Như vậy nó cũng khắc phục được luôn cái lỗi như của lisp bác Tue_NV đã viết tức là 199.0299 sẽ thành 199 02 99 chứ không phải 199 2 99. Bạn thử coi sao nhé. (defun c:doit () (setq txt (getstring "\n Nhap text can doi: ")) (if (not (wcmatch txt "*.####")) (alert "\Text sai dinh dang, hay lam lai") (progn (setq n (strlen txt) i 0) (repeat n (if (= (substr txt (1+ i) 1) ".") (setq k (1+ i)) ) (setq i (1+ i)) ) (setq t1 (substr txt 1 (1- k)) t2 (substr txt (1+ k) 2) t3 (substr txt (+ 3 k) 2) txt (strcat t1 " " t2 " " t3) ) ) ) ) Chúc bạn vui. Nếu có gì chưa vừa ý thì hãy post lên nhé để mình hoàn thiện nó. À mà quên mất, nếu bạn đã có một list các góc theo đúng dịnh dạng trên thì bạn có thể sử dụng (setq txt (nth 0 LL1)) thay cho (setq txt (gestring .....)). Đoạn lisp mà mình viết ,là 1 chương trình con trong cả 1 chương trình về lisp về lisp đã hoàn thiện ,mình chỉ thay 1 số định dạng để cho phù hợp .Vây bạn có thể viết trực tiếp thêm đoạn lisp của TUE_NV để kêt quả ra đúng được không. Cảm ơn 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Chào bạn NDBNGO,Lỗi của bạn là do cái hàm fix của lisp nó gây ra. Vì sao thì bạn chịu khó hỏi thằng Autodesk chứ mình cũng không giải thích được bạn ạ. Để khắc phục cái lỗi này, mình dùng kiểu cắt chuỗi. Bạn xài thử xem nhé. Nhớ là khi nhập chuỗi thì bạn phải nhập đúng định dạng mà bạn đã post, tức là sử dụng dấu chấm thập phân và phần thập phân có 4 chữ số bạn nhé. Nếu không líp nó chê xấu giai nó không cưới đâu. Cô nàng này đỏng đảnh lắm. Như vậy nó cũng khắc phục được luôn cái lỗi như của lisp bác Tue_NV đã viết tức là 199.0299 sẽ thành 199 02 99 chứ không phải 199 2 99. Bạn thử coi sao nhé. (defun c:doit () (setq txt (getstring "\n Nhap text can doi: ")) (if (not (wcmatch txt "*.####")) (alert "\Text sai dinh dang, hay lam lai") (progn (setq n (strlen txt) i 0) (repeat n (if (= (substr txt (1+ i) 1) ".") (setq k (1+ i)) ) (setq i (1+ i)) ) (setq t1 (substr txt 1 (1- k)) t2 (substr txt (1+ k) 2) t3 (substr txt (+ 3 k) 2) txt (strcat t1 " " t2 " " t3) ) ) ) ) Chúc bạn vui. Nếu có gì chưa vừa ý thì hãy post lên nhé để mình hoàn thiện nó. À mà quên mất, nếu bạn đã có một list các góc theo đúng dịnh dạng trên thì bạn có thể sử dụng (setq txt (nth 0 LL1)) thay cho (setq txt (gestring .....)). Tuy nhiên, Code trên đầy đủ định dạng thì Lisp mới chạy. Với code trên của bài viết trên của Tue_NV thì không cần đúng định dạng (có 4 chữ số thập phân) nó vẫn chạy như thường???? Lisp nào có chê xâu chai hay là đẹp chai đâu hở bác? Nó đâu có chê, chỉ cần chăm chỉ, cần cù thật tâm đến với nó là nó chịu liền à?? Ôi, bác Bình ơi. Lisp mà Tue_Nv viết có lỗi chi đâu Bác Bình ơi? Bác đã thử code của Tue_NV chưa mờ kiu lỗi dậy??? 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 3.146 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Đó là 1 lỗi khó hiểu của Lisp. Bác thử cái này nhé : Bác Tue_NV ơi, Tham khảo về cái hàm (prefix..... ) này ở đâu vậy bác ??? Mình tìm trong help developer của CAD hổng thấy nó bác ạ.Và như vậy chắc có cả hàm suffix nữa phải không 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Bác Tue_NV ơi,Tham khảo về cái hàm (prefix..... ) này ở đâu vậy bác ??? Mình tìm trong help developer của CAD hổng thấy nó bác ạ.Và như vậy chắc có cả hàm suffix nữa phải không bác??? Bác tham khảo bài viết số 2922. Em có viết rõ ràng lắm mà Về lý thuyết thì khi thêm đoạn mã của bạn vào thì sẽ thêm số o đằng trước những số nhỏ hơn 10 ,nhưng thực tế mình cho vào chạy kết quả vẫn như cũ ,nghĩa là số o không được hiện thị. Bác NGO có thể cho biết công việc của bác đang làm không? Bác đang làm chương trình gì mà chạy nó không được Tue_NV thử chạy đoạn code ở trên nó ra đúng như bác yêu cầu cơ mà???? Bác có thể upload những cái mà bác đang làm và nói rõ hơn được không? 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
NguyenNdait 5 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Không sao bạn ạ ,chương trình của bạn chưa giúp cho mình thì giúp cho nhiều bạn khác . Cảm ơn bạn đã quan tâm . bạn xem có hàm gì để giá trị không có nghĩa 0 hiện lên sau đoạn mã đó Ví dụ :125 02 03 or 00 00 01 chứ không phải như bây giờ là 125 2 3 và 0 0 1 Bạn thử đoạn này xem : (setq a ( nth 0 LL1)) (setq b (atof a)) (setq c (fix b)) (setq d (rtos c 2 0 )) ;;; nha^.p phan phut (setq e (- b (fix B))) (setq e1 (* e 100)) (setq e2 (fix (+ e1 0.0001))) (if (< e2 10) (setq e3 (strcat "0" (rtos e2 2 0))) (setq e3 (rtos e2 2 0))) ;;; nha^.p phan giay (setq g (- e1 (fix e1))) (setq g1 (* g 100)) (setq g2 (fix g1)) (if (< g2 10) (setq g3 (strcat "0" (rtos g2 2 0))) (setq g3 (rtos g2 2 0))) 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 3.146 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Bác tham khảo bài viết số 2922. Em có viết rõ ràng lắm màBác NGO có thể cho biết công việc của bác đang làm không? Bác đang làm chương trình gì mà chạy nó không được Tue_NV thử chạy đoạn code ở trên nó ra đúng như bác yêu cầu cơ mà???? Bác có thể upload những cái mà bác đang làm và nói rõ hơn được không? Hề hề hề, Sorry bác Tue_NV nhé, Mắt mũi kèm nhèm cứ tưởng cái thằng (prefix0 ... ) là (prefix 0 ....) nên gán ngay cho nó là hàm của lisp để chúi mũi vào mò.... Ai dè nó là cái thằng cu của bác đẻ ra. Tí nữa thì uýnh nhầm. Khổ quá. Mong bác tha lỗi nhé. Vậy là yên tâm chẳng hề có thằng Suffix nào cả mà đi tìm bác hỉ. Thôi thì ráng đợii đến khi bác nào có hứng cho thằng prefix0 này nó có em thì ngắm vậy. Hề hề hề,.... 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
NDBNGO 20 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Bạn thử đoạn này xem : (setq a ( nth 0 LL1)) (setq b (atof a)) (setq c (fix b)) (setq d (rtos c 2 0 )) ;;; nha^.p phan phut (setq e (- b (fix B))) (setq e1 (* e 100)) (setq e2 (fix (+ e1 0.0001))) (if (< e2 10) (setq e3 (strcat "0" (rtos e2 2 0))) (setq e3 (rtos e2 2 0))) ;;; nha^.p phan giay (setq g (- e1 (fix e1))) (setq g1 (* g 100)) (setq g2 (fix g1)) (if (< g2 10) (setq g3 (strcat "0" (rtos g2 2 0))) (setq g3 (rtos g2 2 0))) Cảm ơn bạn ,phần ghép số 0 đã thực hiện rất tôt nhưng ban cần kiểm tra lại việc lấy dữ liêu góc: Khi chạy sẽ có hiện tượng sau Góc 207.2200 sẽ thành 207 22 99 348.5800 = 348 58 99 Rất cảm ơn bạn đoạn sau đã chạy tố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
NDBNGO 20 Báo cáo bài đăng Đã đăng Tháng 12 17, 2010 Bác tham khảo bài viết số 2922. Em có viết rõ ràng lắm màBác NGO có thể cho biết công việc của bác đang làm không? Bác đang làm chương trình gì mà chạy nó không được Tue_NV thử chạy đoạn code ở trên nó ra đúng như bác yêu cầu cơ mà???? Bác có thể upload những cái mà bác đang làm và nói rõ hơn được không? Mình đang viết các chương trình chuyển đổi các định dạng góc,khoảng cách ....ở các định dạng khác nhau do người dùng yêu cầu về 1 format đã quy định. Hàm fixR của bạn rất hay ,đã giải quyết được thắc mắc của mình đưa ra kết quả đúng,vì mình không nghĩ rằng hàm fix lại có lỗi như thế (rất nhiều bạn không kiểm soát đã bị mắc lỗi này và phải sửa lại bằng thủ công) . Phần ghép o cho các chữ số <10 của bạn ,có lẽ không sai nhưng không hiểu sao lại không cho ra kết quả mới (kết quả vẫn như cũ chưa thêm hàm prefix0 (s) .Mình ghép đoạn của ban NguyenNdait (if (< g2 10) (setq g3 (strcat "0" (rtos g2 2 0))) (setq g3 (rtos g2 2 0))) thì lại chạy ra kết quả tốt. Nghĩa là của bạn 70% NguyenNdait 25 % thì đã được như ý mình. Cảm ơn tất cả các bạn . ( Bạn Tue_NV có thể giải thích giúp mình do lý do tại sao không) 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 12 17, 2010 Cảm ơn bạn ,phần ghép số 0 đã thực hiện rất tôt nhưng ban cần kiểm tra lại việc lấy dữ liêu góc: Khi chạy sẽ có hiện tượng sau Góc 207.2200 sẽ thành 207 22 99 348.5800 = 348 58 99 Rất cảm ơn bạn đoạn sau đã chạy tốt Chào bác NDBNGO Bác thay dòng (setq g2 (fix g1)) thành dòng (setq g2 (fix (+ g1 0.0001))) trong code của bác NguyenNdaiT là được. Hoặc sử dụng hàm FixR mà Tue_NV đã viết Đây có lẽ là lỗi làm tròn của hàm Fix Về hàm prefix0 thì Tue_NV đã chạy thử không thấy lỗi gì cả. Và đã viết lại hàm con prefix0 (thay hàm itoa bằng rtos), bác chạy thử đoạn code này thử nhé : (defun c:fso() (setq b (getreal "\n Nhap so :")) (setq c (fixR B )) (setq d (prefix0 C)) (setq e (- b (fixR B ))) (setq e1 (* e 100)) (setq e2 (fixR e1)) (setq e3 (prefix0 e2)) (setq g (- e1 (fixR e1))) (setq g1 (* g 100)) (setq g2 (fixR g1)) (setq g3 (prefix0 g2)) (alert (strcat d " "e3 " " g3)) ) ;;;;; (defun fixR (s) (fix(atof(rtos s)))) (defun prefix0 (s) (if ((strcat "0" (rtos s 2 0)) (rtos s 2 0) ) ) CHúc bác thành cô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
NDBNGO 20 Báo cáo bài đăng Đã đăng Tháng 12 18, 2010 Chào bác NDBNGOBác thay dòng (setq g2 (fix g1)) thành dòng (setq g2 (fix (+ g1 0.0001))) trong code của bác NguyenNdaiT là được. Hoặc sử dụng hàm FixR mà Tue_NV đã viết Đây có lẽ là lỗi làm tròn của hàm Fix Về hàm prefix0 thì Tue_NV đã chạy thử không thấy lỗi gì cả. Và đã viết lại hàm con prefix0 (thay hàm itoa bằng rtos), bác chạy thử đoạn code này thử nhé : (defun c:fso() (setq b (getreal "\n Nhap so :")) (setq c (fixR B )) (setq d (prefix0 C)) (setq e (- b (fixR B ))) (setq e1 (* e 100)) (setq e2 (fixR e1)) (setq e3 (prefix0 e2)) (setq g (- e1 (fixR e1))) (setq g1 (* g 100)) (setq g2 (fixR g1)) (setq g3 (prefix0 g2)) (alert (strcat d " "e3 " " g3)) ) ;;;;; (defun fixR (s) (fix(atof(rtos s)))) (defun prefix0 (s) (if (< (float s) 10.0) (strcat "0" (rtos s 2 0)) (rtos s 2 0) ) ) CHúc bác thành công Cảm ơn sự giúp đỡ nhiệt tình của bạn ,mã cảu bạn đã chạy rất tốt. Nhờ bạn đã giúp nhiêu hơn về tư duy viêt mã lisp. Xin cảm ơn ban lần nữa. 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
ngocnam.cad 6 Báo cáo bài đăng Đã đăng Tháng 12 18, 2010 xin chào các bạn. chúc mọi người sẽ có một giáng sinh vui vẻ bên người thương và gia đình.. mình có một thỉnh cầu nhỏ mong mọi người giúp đỡ với. Mình làm bên thiết kế nên thuờng xuyên phải chạy đường bằng Nova ,có những đoạn đường dài nên không thể nhập tên cọc bằng sslt được( máy cùi mà :undecided: ) mà dùng stc chắc mình chết mất. mong mọi người viết hộ lisp đổi tên cọc, hoặc có lisp copy nào có thể áp dụng thì cho minh xin... Chân thành cảm ơn tất 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 xin chào các bạn. chúc mọi người sẽ có một giáng sinh vui vẻ bên người thương và gia đình.. mình có một thỉnh cầu nhỏ mong mọi người giúp đỡ với. Mình làm bên thiết kế nên thuờng xuyên phải chạy đường bằng Nova ,có những đoạn đường dài nên không thể nhập tên cọc bằng sslt được( máy cùi mà :cheers: ) mà dùng stc chắc mình chết mất. mong mọi người viết hộ lisp đổi tên cọc, hoặc có lisp copy nào có thể áp dụng thì cho minh xin... Chân thành cảm ơn tất cả. Chào bạn Nam.cad Bạn viết dùng stc : phải chăng Stc là sửa Thủ Công ??? Còn bằng sslt -> Chịu, không hiểu được :undecided: Bạn nên trình bày, minh họa rõ hơn điều mình nói bằng file .dwg thì may ra có thể giúp được. Bạn cần tránh, không nên viết những yêu cầu bằng những từ viết tắt nhé. Vì để mọi người dễ hiểu hơn, và có thiện cảm với bài viết của bạn hơn. Bạn nên trình bày rõ ràng hơn, vì nếu viết như bài viết trên thì chắc có lẽ các bác mà đã từng sử dụng NOVA mới hiểu được bạn muốn gì?? Và cũng có lẽ là không hiểu được ???? :leluoi: 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
uce46 0 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 xin chào các bạn. chúc mọi người sẽ có một giáng sinh vui vẻ bên người thương và gia đình.. mình có một thỉnh cầu nhỏ mong mọi người giúp đỡ với. Mình làm bên thiết kế nên thuờng xuyên phải chạy đường bằng Nova ,có những đoạn đường dài nên không thể nhập tên cọc bằng sslt được( máy cùi mà :undecided: ) mà dùng stc chắc mình chết mất. mong mọi người viết hộ lisp đổi tên cọc, hoặc có lisp copy nào có thể áp dụng thì cho minh xin... Chân thành cảm ơn tất cả. Vào sslt xuất tuyến ra file ntd, vào excel chỉnh sửa tên cọc, xong paste lại đúng chỗ sslt. 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
hugo007 1 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 Khi ta tạo lệnh tắt bằng lisp của lệnh hatch: (defun c:h() (command "hatch")). Giờ muốn khi nhấn h thì mặc định mẫu hatch sẽ là ANSI31 và scale là 10 thì phải viết thêm gì.Mong các bá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
nguyentuyen6 130 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 Khi ta tạo lệnh tắt bằng lisp của lệnh hatch:(defun c:h() (command "hatch")). Giờ muốn khi nhấn h thì mặc định mẫu hatch sẽ là ANSI31 và scale là 10 thì phải viết thêm gì.Mong các bác giúp đỡ. Bạn sửa thế này nhé này nhé (defun c:h() (command "-hatch" "p" "ANSI31" "10" "" pause) ) 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
thichhoabinh 6 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 Em nhờ các bác viết giùm e 1 đoạn lisp : - Khóa các layer đã chọn,hoặc tất cả. - Mở khóa các layer đã chọn,hoặc tất cả - Khóa tất cả,trừ các layer đã chọn Những cái này e tìm thấy ở đâu đó r mà tìm lại không được :undecided: 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
Thaistreetz 539 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 Chào bạn Nam.cadBạn viết dùng stc : phải chăng Stc là sửa Thủ Công ??? Còn bằng sslt -> Chịu, không hiểu được :undecided: Bạn nên trình bày, minh họa rõ hơn điều mình nói bằng file .dwg thì may ra có thể giúp được. Bạn cần tránh, không nên viết những yêu cầu bằng những từ viết tắt nhé. Vì để mọi người dễ hiểu hơn, và có thiện cảm với bài viết của bạn hơn. Bạn nên trình bày rõ ràng hơn, vì nếu viết như bài viết trên thì chắc có lẽ các bác mà đã từng sử dụng NOVA mới hiểu được bạn muốn gì?? Và cũng có lẽ là không hiểu được ???? :leluoi: Đây là các lệnh của phần mềm thiết kế đuờng Nova bác ạ. SSLT: sửa số liệu tuyến STC: sửa tên cọc. @Nam.cad: tuyến của bạn quá dài, vậy thì trên đó chắc không chỉ có các cọc lý trình bình thuờng mà còn có các cọc đặc biệt như các cọc trong đuờng cong, cọc H, cọc đánh dấu vị trí cống và các công trình đặc biệt trên tuyến. Đổi hàng loạt kiểu gì? Bảo sếp bạn đầu tư máy xị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
ketxu 2.984 Báo cáo bài đăng Đã đăng Tháng 12 19, 2010 Em nhờ các bác viết giùm e 1 đoạn lisp :- Khóa các layer đã chọn,hoặc tất cả. - Mở khóa các layer đã chọn,hoặc tất cả - Khóa tất cả,trừ các layer đã chọn Những cái này e tìm thấy ở đâu đó r mà tìm lại không được :undecided: Bạn thử cái này xem sao.Lisp thao tác thông qua các đối tượng được chọn Mình đang đặt lệnh tắt như bên dưới,bạn có thể thay đổi cho tiện sử dụng - lock : khoá layer(s) - ulock : mở khoá layer(s) - rlock : khoá tất cả,trừ layer(s) đc chọn (defun c:lock () ;khoa layers(lkllk "lock" "l" "Chon doi tuong hoac an Enter de khoa tat ca" " Da duoc khoa"))(defun c:ulock () ;mo khoa layers(lkllk "unlock" "l" "Chon doi tuong hoac an Enter de mo khoa tat ca" " Da duoc mo khoa"))(defun c:rlock () ;Khoa tat ca,tru cai duoc chon(lkllk "unlock" "rl" "Chon doi tuong hoac an Enter de mo khoa tat ca" " Da duoc giu lai"))(defun lkllk ( lenh opt msg1 msg2 / NewLayers Layer1 Set1)(princ msg1) (setq Set1 (ssget)) (if (= Set1 nil)(command "-layer" lenh "*" "") (progn (setq i 0) (repeat (sslength Set1) (setq Layer1 (list (cdr( assoc 8 (entget(ssname Set1 i)))))) (if NewLayers (setq NewLayers (append NewLayers Layer1)) (setq NewLayers Layer1) ) (setq i (+ i 1)) ) (princ NewLayers) (if (= opt "l")(command "layer") (command "layer" "lock" "*") ) (mapcar '(lambda (x) (command lenh x)) NewLayers) (command "") (princ (sslength Set1)) (princ msg2))) ; (setq lenh nil msg1 nil msg2 nil) (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
ngocnam.cad 6 Báo cáo bài đăng Đã đăng Tháng 12 20, 2010 vâng , em xin cám ơn các bác. Bác Tue hiểu chưa hết ý em rùi.hì. em đã nói trên là dùng Nova rùi mà, mà anh nào dùng nova chẳng biết sslt. Vậy các bác cao thủ có cao kiến gì hay giúp em trong việc sửa tên cọc với được không ạ? Các bác bảo em là xuất sang ntd rùi sang excel nhưng toàn bị đơ máy thôi bác ạ... em xin cám ơn tất 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
ngocnam.cad 6 Báo cáo bài đăng Đã đăng Tháng 12 20, 2010 :undecided: bác Thaiztress giúp em được không ạ??? 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
ngocnam.cad 6 Báo cáo bài đăng Đã đăng Tháng 12 20, 2010 Vào sslt xuất tuyến ra file ntd, vào excel chỉnh sửa tên cọc, xong paste lại đúng chỗ sslt. cám ơn bác , nhưng máy em mỗi lần sửa trên excel thì với tuyến dài 5-10km thì bị đơ bác à, có cách nào khắc phục không bác?cám ơn bác đã hồi âm 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
NguyenNdait 5 Báo cáo bài đăng Đã đăng Tháng 12 20, 2010 Mình load lisp theo hướng dẫn của bạn, nhưng không chạy được.Không hiểu sao ...? Mong được Bạn giúp đở. Cám ơn Xin lỗi bạn. Vì ctrình của mình trích ra từ 1 ctrình lớn hơn nên còn thiếu đoạn này. Bạn cho nó vào chung với file lvtcu nha ;Chon cac doi tuong hien huu tren man hinh (defun ssget_scr ( / cen hight p1 p2 p3 p4) (if (null (tblsearch "layer" "khongin")) (command "layer" "N" "khongin" "")) (setq cen (getvar "viewctr") hight (getvar "viewsize")) (setq p1 (polar (polar cen 0.0 (* hight 0.75)) (* Pi 0.5) (* hight 0.5))) (setq p2 (polar p1 pi (* hight 1.5)) p3 (polar p2 (* pi 1.5) hight) p4 (polar p3 0.0 (* hight 1.5))) (ssget "C" p4 p2)) 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