ketxu 2.984 Báo cáo bài đăng Đã đăng Tháng 11 2, 2012 K có j thừa với lòng nhiệt tình cả ^^ Mỗi lisp là một bài học. Dào này ket ít viết lắm, mà vẫn chăm chỉ download của mọi người về mót, nhiều lúc sướng hết cả người.Hehe. Tks bạ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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 11 2, 2012 em cám ơn anh ketxu và anh hochoaivandot đã tận tình giúp đỡ em về lsp nay, em còn may lsp nũa cua cong ty nhung em cung mun chinh sua xíu, nếu mấy anh có hứng thú em sẽ post lên để mọi người cùng tham khảo trao đổi hihi 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
Doan Van Ha 3.191 Báo cáo bài đăng Đã đăng Tháng 11 2, 2012 @nhoclangbat: bạn đang có 1 người thầy tuyệt vời. Không khai thác hết là quá phí học phí! @hochoaivandot: bản ẩn mình một thời gian dài, bỗng trỗi dậy với đầy tiềm năng trong từng dòng code. 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
xuandao0708 9 Báo cáo bài đăng Đã đăng Tháng 11 2, 2012 Mình cũng thường xuyên làm bản đồ như thế nhưng phải làm xóa thủ công không, nay thất lisp này thì dow ve nhung không sử dụng được. Mình up file này lên nhờ mọi người coi dùm. http://www.cadviet.com/upfiles/3/37805_cu_xa_lu_gia_p15_q11new.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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 11 3, 2012 file của bạn mình xem thử rùi, mà bạn dùng lsp nào lsp của anh ket hay anh HHVD, nếu bạn dùng lsp của anh ket thì nếu trước tiên những đối tượng đó là block phải phá block và chỉ đổi layer đc khi trong file đã có sẵn 3 layer cần đổi, anh ket đã kêu mình nếu trong file ko có layer đó thì trong lsp phải có thêm lệnh tạo các layer đó, lsp mới thực thi đc, còn lsp của anh HHVD thì ko cần phá block quét chọn hết đối tượng đó chạy lsp tự động tạo ra các layer đó, tự phá block và chuyển layer lun, trường hợp file của bạn đã có nhửng layer đó rùi, những đối tượng đó ko còn là block nữa thì chỉ cần dùng lsp của anh ket là ok mình cũng đã thử, nếu file bản đồ gốc của bạn đối tượng đó là block thì dùng lsp của anh HHVD. nếu trong file của bạn ko có sẵn những layer đó thì mình sẽ psot lsp của anh ket mà anh ket chỉ mình nếu mún lsp tự tạo các layer đó thì thêm vài dòng lệnh là ok, mình đã mò mẫn và sữa lại thành công hihi. PS: dùng lsp của anh HHVD thì đối tượng đó phải là block nha bạn, nếu đã phá block rùi thì dùng ko đc đâu. lsp của anh ket mình đã chỉnh sữa (defun c:test(/ ss a )(vl-load-com) (COMMAND "LAYER" "M" "SOTHUA" "C" "3" "" "") (COMMAND "LAYER" "M" "DIENTICH" "C" "3" "" "") (COMMAND "LAYER" "M" "LOAIRUONGDAT" "C" "3" "" "") (setq a '((INT . "SOTHUA")(REAL . "DIENTICH")(SYM . "LOAIRUONGDAT")) tmp (ssget (list (cons 0 "TEXT")(cons 8 "13"))) ) (vlax-for x (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object))) (if (setq tmp (assoc (type (read (vla-get-textstring x))) a)) (vla-put-layer x (cdr tmp)) ) ) ) 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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 11 6, 2012 may anh ơi em có ý này ko pit đc ko, mình có thể kết hợp lsp của anh Ket va anh HHVD đc ko ta, vd khi ta chạy lsp quét đối tượng, khi đó lsp sẽ tiến hành nhận dạng nếu là block thì chạy hàm của anh HHVD nếu ko phải block thì chạy của anh Ket hihi hơi tham 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
xuandao0708 9 Báo cáo bài đăng Đã đăng Tháng 11 6, 2012 Thank nhoclangbat nhiều! lisp đã 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
hochoaivandot 111 Báo cáo bài đăng Đã đăng Tháng 11 6, 2012 may anh ơi em có ý này ko pit đc ko, mình có thể kết hợp lsp của anh Ket va anh HHVD đc ko ta, vd khi ta chạy lsp quét đối tượng, khi đó lsp sẽ tiến hành nhận dạng nếu là block thì chạy hàm của anh HHVD nếu ko phải block thì chạy của anh Ket hihi hơi tham (defun dxf (code e) (cdr (assoc code (entget e)))) (defun PUT-GC (VALUE GROUP ENTITY / PROPERTIES) (setq PROPERTIES (entget ENTITY)) (setq PROPERTIES (subst (cons GROUP VALUE) (assoc GROUP PROPERTIES) PROPERTIES)) (entmod PROPERTIES) ) (defun CreatLayer(MyLayer / MyColor) (if (not (tblsearch "LAYER" MyLayer)) (progn (entmakex (list (cons 0 "LAYER") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 70 0) (cons 2 MyLayer) ) ) ) ) ) (defun ChangeLayer(kq / i dt type_dt) (repeat (setq i (sslength kq)) (setq dt (ssname kq (setq i (1- i)))) (setq type_dt (type (read (dxf 1 dt)))) (cond ((= type_dt 'INT) (PUT-GC "SOTHUA" 8 dt)) ((= type_dt 'REAL) (PUT-GC "DIENTICH" 8 dt)) ((= type_dt 'SYM) (PUT-GC "LOAIRUONGDAT" 8 dt)) ) ) ) (defun c:test2 (/ ss el qa kq i) (vl-load-com) (CreatLayer "SOTHUA") (CreatLayer "DIENTICH") (CreatLayer "LOAIRUONGDAT") (setq ss (ssget (list (cons 8 "13"))) kq (ssadd)) (setq qa (getvar 'QAFLAGS)) (setvar 'QAFLAGS 1) (repeat (setq i (sslength ss)) (setq e (ssname ss (setq i (1- i)))) (setq dxf0 (dxf 0 e)) (cond ((= dxf0 "TEXT") (ssadd e kq)) ( (= dxf0 "INSERT") (progn (setq el (entlast)) (command "explode" ss "") (while (setq en (entnext el)) (if (= (dxf 0 en) "TEXT") (ssadd en kq)) (setq el en) ) ) ) ) ) (setvar 'QAFLAGS qa) (ChangeLayer kq) (princ "\nHochoaivandot - Cadviet.com") (princ) ) 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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 11 6, 2012 em cám ơn anh HHVD nhiều lắm lsp chạy rất êm, em có like this mà hình như hôm nay em like this hơi nhiều nên forum hết cho like rùi hihi 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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 12 13, 2012 tối qua bùn bùn, ngồi lục lại ổ cứng em đã tìm đc file chương trình có tác dụng giống mấy anh viết hộ em mà nó là file.exe, nhưng khác 1 cái giống lúc đầu em trình bày , ko cần biết nó thuộc layer nào, chỉ cần dạng giống file vd em đưa lên chọn đại 1 cái để tách là toàn bộ đối tượng giống vậy thuộc cùng 1 layer trong bản vẽ đều đc biến đổi có. Nay em mún nhờ mấy huynh xem hộ chương trình này có phải dựa trên nền tảng là lsp ko, em chỉ mún tìm hỉu thêm thui, chứ làm thì chắc phải chục năm mới làm nổi :D http://www.cadviet.com/upfiles/3/104473_tachnhan32.rar em post lên nhờ mấy anh nghiên cứu, cách sử dụng nó như thế này tạo 1 lệnh trong file acadxxx.lsp trong mục support của cad (defun c:bbb () (startapp "TachNhan32") ) 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 13, 2012 (defun dxf (code e) (cdr (assoc code (entget e)))) (defun PUT-GC (VALUE GROUP ENTITY / PROPERTIES) (setq PROPERTIES (entget ENTITY)) (setq PROPERTIES (subst (cons GROUP VALUE) (assoc GROUP PROPERTIES) PROPERTIES)) (entmod PROPERTIES) ) (defun CreatLayer(MyLayer / MyColor) (if (not (tblsearch "LAYER" MyLayer)) (progn (entmakex (list (cons 0 "LAYER") (cons 100 "AcDbSymbolTableRecord") (cons 100 "AcDbLayerTableRecord") (cons 70 0) (cons 2 MyLayer) ) ) ) ) ) (defun ChangeLayer(kq / i dt type_dt) (repeat (setq i (sslength kq)) (setq dt (ssname kq (setq i (1- i)))) (setq type_dt (type (read (dxf 1 dt)))) (cond ((= type_dt 'INT) (PUT-GC "SOTHUA" 8 dt)) ((= type_dt 'REAL) (PUT-GC "DIENTICH" 8 dt)) ((= type_dt 'SYM) (PUT-GC "LOAIRUONGDAT" 8 dt)) ) ) ) (defun c:test2 (/ ss el qa kq i) (vl-load-com) (CreatLayer "SOTHUA") (CreatLayer "DIENTICH") (CreatLayer "LOAIRUONGDAT") (setq ss (ssget (list (cons 8 "13"))) kq (ssadd)) (setq qa (getvar 'QAFLAGS)) (setvar 'QAFLAGS 1) (repeat (setq i (sslength ss)) (setq e (ssname ss (setq i (1- i)))) (setq dxf0 (dxf 0 e)) (cond ((= dxf0 "TEXT") (ssadd e kq)) ( (= dxf0 "INSERT") (progn (setq el (entlast)) (command "explode" ss "") (while (setq en (entnext el)) (if (= (dxf 0 en) "TEXT") (ssadd en kq)) (setq el en) ) ) ) ) ) (setvar 'QAFLAGS qa) (ChangeLayer kq) (princ "\nHochoaivandot - Cadviet.com") (princ) ) Hề hề hề,... Anh bạn này đổi nick được rồi đó. HOCHOAIHETHOT........ 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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 12 13, 2012 co anh nao giup em ko 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 13, 2012 co anh nao giup em ko Hề hề hề, Nó dựa trên cái gì thì phải hỏi người cho bạn cái file ấy, còn đã khóa tịt nó lại bằng cách đóng gói thành file exe rồi thì chỉ có tây mới biết bên trong nó là gì.... 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
nhoclangbat 392 Báo cáo bài đăng Đã đăng Tháng 12 13, 2012 Anh Bình có thử chạy chưa anh, vậy nhìn cách nó chạy có thể suy ra đc ko anh, em quên là phải để file.exe đó trong thư mục support của cad nữa 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 13, 2012 Cái này quá đơn giản, nhoclangbat tự viết cũng được mà :o . Chú ý các lệnh Laymrg nữa thì công việc càng nhàn hơn. File exe viết bằng VB, k phải lisp 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