phamthanhbinh 3.146 Báo cáo bài đăng Đã đăng Tháng 10 30, 2009 Bạn thử cái này xem thế nào? Có gì chưa được thì Tue_NV sẽ chỉnh lại : (defun c:tdb(/ ent cao tam ang) (setq ent (car(entsel"\n Pick chon Block :"))) (setq cao (getdist "\n Nhap chieu cao Text :")) (setq tam (cdr(assoc 10 (entget ent)))) (setq ang (cdr(assoc 50 (entget ent)))) (wtxt (strcat "(" (rtos (car tam) 2 0) "," (rtos (cadr tam) 2 0) ")") (getpoint "\n Diem dat Text :") ang cao) ) ; (defun wtxt (txt p ang h / sty) (setq sty (getvar "textstyle")) (entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p) (cons 72 0) (cons 73 1) (cons 50 ang) (cons 40 h) (cons 41 1)) ) ) Chào bác Tue_NV, Cái dòng code (setq tam (cdr(assoc 10 (entget ent)))) dùng để xác định điểm chèn (base point) của block phải không ạ?? Yêu cầu của bạn t031285 là tọa độ tâm của block nên có thể cái base point này không trùng với tâm của block phải không bác.??? Bác xem lại giùm chỗ này với. Ở hàm (entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p) (cons 72 0) (cons 73 1) (cons 50 ang) (cons 40 h) (cons 41 1)) cái đoạn code (cons 11 p) có tác dụng thế nào bác nhỉ??? Có nhất thiết phải có nó không và vì sao bác lại chọn nó trùng với điểm chèn text (cons 10 p) ??? Rất mong bác giải thích giùm ạ. Chúc bác khỏe và luôn vui tươi. 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
phamthanhbinh 3.146 Báo cáo bài đăng Đã đăng Tháng 10 30, 2009 Bạn nói đúng,có rất nhiều đối tượng trên hình vẽ,vậy mình chỉ cần các đối tượng là hình tròn,hình vuông,hình chữ nhật,và các point.Nếu có thể là block của các hình này nếu bác và bác tue có thể giúp được.Cái quan trọng là làm sao khi chọn tất cả các đối tượng trên thì nó sẽ xuất toạ độ của các điểm đã chọn.Thanks. Chào bạn hugo007, Vậy là yêu cầu của bạn khác với bạn t031285 rồi , đúng không bạn??? Bạn t031285 yêu cầu xuất ra tọa độ tâm của đối tượng, còn bạn lại yêu cầu xuất tọa độ điểm chọn của đối tượng. Có phải vậy không bạn??? Các hình vuông, hình chữ nhật của bạn được tạo bởi các đoạn thẳng line riêng biệt hay được tạo bởi một polyline duy nhất (ví dụ như tạo bởi lệnh vẽ rectangle ??? Để nghị bạn cho biết rõ hơn nhé. Chúc bạn luôn vui vẻ và thành đạ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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 10 30, 2009 Chào bác Tue_NV,Cái dòng code (setq tam (cdr(assoc 10 (entget ent)))) dùng để xác định điểm chèn (base point) của block phải không ạ?? Yêu cầu của bạn t031285 là tọa độ tâm của block nên có thể cái base point này không trùng với tâm của block phải không bác.??? Bác xem lại giùm chỗ này với. Ở hàm (entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p) (cons 72 0) (cons 73 1) (cons 50 ang) (cons 40 h) (cons 41 1)) cái đoạn code (cons 11 p) có tác dụng thế nào bác nhỉ??? Có nhất thiết phải có nó không và vì sao bác lại chọn nó trùng với điểm chèn text (cons 10 p) ??? Rất mong bác giải thích giùm ạ. Chúc bác khỏe và luôn vui tươi. Chào bạn phamthanhBinh 1. Tue_NV đã xác định Base point. Có lẽ là chưa đúng với ý của bạn t031285 là tọa độ tâm của block. Mình đã nhầm cái này. bạn t031285 có thể nói rõ cái tâm này định nghĩa như thế nào không? 2. Bạn PhamthanhBinh đọc cái này : Bạn thêm (cons 11 p) nữa. Vì chỉ có align Left là dùng dxf code 10 thôi (code 11 khi đó là '(0 0 0))còn các align khác thì code 11 là chính còn 10 là phụ. Bạn cứ cho cả 2 code 10 và 11 bằng p hết đi, cad sẽ tự động tính lại code 10. Bạn chạy thử code của Tue_NV -> bỏ (cons 11 p) đi sẽ thấy kết quả mà 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
t031285 1 Báo cáo bài đăng Đã đăng Tháng 10 30, 2009 Chào bạn phamthanhBinh1. Tue_NV đã xác định Base point. Có lẽ là chưa đúng với ý của bạn t031285 là tọa độ tâm của block. Mình đã nhầm cái này. bạn t031285 có thể nói rõ cái tâm này định nghĩa như thế nào không? 2. Bạn PhamthanhBinh đọc cái này : Bạn chạy thử code của Tue_NV -> bỏ (cons 11 p) đi sẽ thấy kết quả mà Cảm ơn hai bác,cho phép e gọi bằng bác vì theo e biết bác TUE_VN lớn tuổi hơn e còn bác Thanh bình thì e không biết tuổi.Ý của e là toạ độ của tâm đó.ví dụ như hình chữ nhật,hình vuông,hình tròn,block đều là toạ độ của tâm hết.2 bác cố gắng giúp e và làm sao xuất được toạ độ tâm của các hình đã chọn này.2 bác có thể cho e biết 2 bác ở đâu không để có gì e mời 2 bác 1 bữa gọi là cảm ơn và học hỏi.Thanks 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 10 30, 2009 Cảm ơn hai bác,cho phép e gọi bằng bác vì theo e biết bác TUE_VN lớn tuổi hơn e còn bác Thanh bình thì e không biết tuổi.Ý của e là toạ độ của tâm đó.ví dụ như hình chữ nhật,hình vuông,hình tròn,block đều là toạ độ của tâm hết.2 bác cố gắng giúp e và làm sao xuất được toạ độ tâm của các hình đã chọn này.2 bác có thể cho e biết 2 bác ở đâu không để có gì e mời 2 bác 1 bữa gọi là cảm ơn và học hỏi.Thanks Phải chăng bạn nói đến tâm là nói đến trọng tâm của đối tượng. Theo Tue_NV được biết trọng tâm này được định nghĩa cho 2 loại đối tượng : REGION và SOLID 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
t031285 1 Báo cáo bài đăng Đã đăng Tháng 10 31, 2009 Phải chăng bạn nói đến tâm là nói đến trọng tâm của đối tượng. Theo Tue_NV được biết trọng tâm này được định nghĩa cho 2 loại đối tượng : REGION và SOLID Đơn giản nếu là hình vuông,hình chữ nhật thì là điểm giao của 2 đường chéo thôi.còn hình tròn thì tâm của đường tròn.Cảm ơn bác rất 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 10 31, 2009 Đơn giản nếu là hình vuông,hình chữ nhật thì là điểm giao của 2 đường chéo thôi.còn hình tròn thì tâm của đường tròn.Cảm ơn bác rất nhiều.Bạn thử cái này xem : Tue_NV ghi toạ độ trọng tâm tại trọng tâm luôn (defun c:tdt (/ tam oldos ss cao i) (vl-load-com) (setq oldos (getvar "osmode")) (setvar "osmode" 0) (setq ss (ssget)) (setq cao (getdist "\n Nhap chieu cao Text :") i 0) (while (< i (sslength ss)) (setq ent (ssname ss i)) (setq tam (cen ent)) (wtxt (strcat "(" (rtos (car tam) 2 0) "," (rtos (cadr tam) 2 0) ")") tam cao) (setq i (1+ i)) ) (setvar "osmode" oldos) (princ) ) ; (defun wtxt (txt p h / sty) (setq sty (getvar "textstyle")) (entmake (list (cons 0 "TEXT") (cons 7 sty) (cons 1 txt) (cons 10 p) (cons 11 p) (cons 72 1) (cons 73 2) (cons 40 h) (cons 41 1)) ) ) ; (defun cen (ent / p1 p2) (vla-getboundingbox (vlax-ename->vla-object ent) 'p1 'p2) (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2) pt (mapcar '+ p1 p2) pt (mapcar '* pt '(0.5 0.5 0.5)) ) pt ) 3 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
cungkeng 0 Báo cáo bài đăng Đã đăng Tháng 11 1, 2009 Có thể cho mình xin lisp tính trung bình công các số được không.Mình tim kiếm trên diễn đàn có 1 lisp về tính trung bình cộng http://www.cadviet.com/forum/index.php?showtopic=11703 nhưng có lỗi không dùng được.Mình rất cần.Thanks mọi ngườ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
Phiphi- 176 Báo cáo bài đăng Đã đăng Tháng 11 2, 2009 Nhờ các Bác viết giúp LISP để ghi góc của PHÚT và GIÂY nhỏ 10 phải ghi cả số 0 phía trước như là 18o01'04" Hiện tại thì AutoCAD chỉ ghi ra là 18o1'4" . Xin xem bv dưới. Cám ơn nhiều. http://www.cadviet.com/upfiles/2/ghi_ra_2_chu_so.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 11 2, 2009 Nhờ các Bác viết giúp LISP để ghi góc của PHÚT và GIÂY nhỏ 10 phải ghi cả số 0 phía trước như là 18o01'04" Hiện tại thì AutoCAD chỉ ghi ra là 18o1'4" . Xin xem bv dưới. Cám ơn nhiều. http://www.cadviet.com/upfiles/2/ghi_ra_2_chu_so.dwg 'Phiphi hãy tham khảo thêm bài viết này : Bai viet so 2191 Nếu PP muốn viết theo ý của PP hì hãy nói rõ dữ liệu đầu vào : -> Bạn muốn chọn DIM hay chọn 2 đường thẳng tạo nên góc -> và xuất kết quả như thế nào ? PP nói rõ 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
tnmtpc 207 Báo cáo bài đăng Đã đăng Tháng 11 2, 2009 trước đây Bác Hòanh có viết một lisp " di chuyển dấu chấm thập phân text đến trùng với point tương ứng". Nay nhờ các bạn viết lisp di chuyển các text sao cho điểm chèn text trùng các point tương ứng. Cụ thể như sau: bản vẽ có nhiều text, mỗi text có một point tương ứng nằm gần text, vị trí text so với point hơi tự do một chút, nghĩa là vị trí text so với point không phải lúc nào cũng bằng nhau. Yêu cầu chương trình: sau khi gõ lệnh, chọn tất cả text và point một lúc, enter, lệnh thực hiện. Cám ơn trước . không Bác nào giúp mình cái nà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
Phiphi- 176 Báo cáo bài đăng Đã đăng Tháng 11 2, 2009 'Phiphi hãy tham khảo thêm bài viết này : Bai viet so 2191 Nếu PP muốn viết theo ý của PP hì hãy nói rõ dữ liệu đầu vào : -> Bạn muốn chọn DIM hay chọn 2 đường thẳng tạo nên góc -> và xuất kết quả như thế nào ? PP nói rõ nhé Thanks Tue_NV, cách nào cũng OK, miễn cho ra kết quả đọc được như là 18o01'04" 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 11 2, 2009 trước đây Bác Hòanh có viết một lisp " di chuyển dấu chấm thập phân text đến trùng với point tương ứng". Nay nhờ các bạn viết lisp di chuyển các text sao cho điểm chèn text trùng các point tương ứng. Cụ thể như sau: bản vẽ có nhiều text, mỗi text có một point tương ứng nằm gần text, vị trí text so với point hơi tự do một chút, nghĩa là vị trí text so với point không phải lúc nào cũng bằng nhau. Yêu cầu chương trình: sau khi gõ lệnh, chọn tất cả text và point một lúc, enter, lệnh thực hiện. Cám ơn trước . (defun c:pt() (setq i 0 txt_pnt (ssget '((0 . "TEXT,point")))) (command "undo" "begin") (setq oldos (getvar "osmode")) (command "osmode" 0) (repeat (sslength txt_pnt) (setq txt_pnt_ent (entget (ssname txt_pnt i))) (if (assoc 1 txt_pnt_ent) (progn (setq txt_pt (cdr (assoc 10 txt_pnt_ent)) ii 0 kcmin 999999999999999999) (while (< ii (sslength txt_pnt)) (setq txt_pnt_ent1 (entget (ssname txt_pnt ii))) (if (assoc 1 txt_pnt_ent1) () (progn (setq pnt_pt (cdr(assoc 10 txt_pnt_ent1)) kci (distance txt_pt pnt_pt)) (if (< kci kcmin) (setq kcmin kci pnt_goc pnt_pt)) );progn );if (setq ii (+ ii 1)) );while (command "move" (ssname txt_pnt i) "" txt_pt pnt_goc) );progn );if (setq i (+ i 1)) );repeat (setvar "osmode" oldos) (command "undo" "end") );defun Chú ý: - Khi chạy lisp này, với mỗi text lisp sẽ quyét tất cả các point để tìm point gần nhất và di chuyển text đến point đó. Chính vì thế có thể xảy ra trường hợp (rất ít xảy ra) 2 text có chung một point gần nhất, khi đó lisp sẽ di chuyển chúng trùng với nhau dẫn đến có thể một số point bị lạc mất text cao độ. bạn sử dụng chú ý một chút là OK. - Tên lệnh bạn có thể tự đổi cho phù hợp với nhu cầu. - Vì viết nhanh nên mình chỉ quan tâm đến hiệu quả, không quan tâm đến chất lượng nên lisp này nói chung là không hay lắm dưới con mắt người lập trình, vài chỗ cách làm hơi củ chuối nhưng với người sử dụng thì OK không vấn đề gì. hi vọng đúng ý bạn. :tongue2: 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 11 2, 2009 (Đă chỉnh sửa) Nhờ các Bác viết giúp LISP để ghi góc của PHÚT và GIÂY nhỏ 10 phải ghi cả số 0 phía trước như là 18o01'04" Hiện tại thì AutoCAD chỉ ghi ra là 18o1'4" . Xin xem bv dưới. Cám ơn nhiều. http://www.cadviet.com/upfiles/2/ghi_ra_2_chu_so.dwg Chào 'Phiphi- Bạn sử dụng code này thử nhé : (defun c:dpg(/ ss i ent goc do phut giay dotinh ph gi dpg) (if (setq ss (ssget '((0 . "DIMENSION")))) (progn (setq i 0) (while ( (setq ent (entget (ssname ss i))) (setq ent (entmod (subst (cons 1 "") (assoc 1 ent) ent))) (setq goc (/ (* (cdr(assoc 42 ent)) 180) pi)) (setq do (fix goc)) (setq dotinh (* (- goc do) 3600)) (setq phut (fix (/ dotinh 60) )) (setq giay (rem dotinh 60) ) (if (or ( (progn (if ( (if ( (setq dpg (strcat (itoa do) "%%d" ph "'" gi "''")) (setq ent (entmod (subst (cons 1 dpg) (assoc 1 ent) ent))) )) (setq i (1+ i)) ) ) (Princ "khong co doi tuong nao duoc chon") ) (princ) ) @Phi phi : Tue_NV đã fix lỗi. Phiphi kiểm tra lại giùm. Thanks Chỉnh sửa Tháng 11 3, 2009 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
cungkeng 0 Báo cáo bài đăng Đã đăng Tháng 11 2, 2009 Có thể cho mình xin lisp tính trung bình công các số được không.Mình tim kiếm trên diễn đàn có 1 lisp về tính trung bình cộng http://www.cadviet.com/forum/index.php?showtopic=11703 nhưng có lỗi không dùng được.Mình rất cần.Thanks mọi người hix,không ai giúp mình à??? 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 11 2, 2009 @cungkeng : Bạn lấy đường link trên ở đâu thì hãy post bài của bạn về đúng vị trí ấy. Để các bạn khác tiện việc theo dõi, tìm kiếm. Bạn nói Lisp trong đường Link của bạn thì Lisp nào bị lỗi? Bạn hãy post bài viết của bạn vào ngay trong topic theo đường Link mà bạn đã đưa nhé. Thanks 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
Phiphi- 176 Báo cáo bài đăng Đã đăng Tháng 11 2, 2009 Chào 'Phiphi-Bạn sử dụng code này thử nhé : ... LISP đã thay đổi đúng theo format xx'xx" nhưng sao kết quả chính xác thì luôn luôn thiếu (gần) 1 giây. Nhờ Tue_NV round lại các số (như CAD đã làm khi mình chọn các Precision) nhé. Cám ơn Tue_NV rất nhiều. http://www.cadviet.com/upfiles/2/lisp_da_g...hieu_1_giay.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 11 3, 2009 LISP đã thay đổi đúng theo format xx'xx" nhưng sao kết quả chính xác thì luôn luôn thiếu (gần) 1 giây.Nhờ Tue_NV round lại các số (như CAD đã làm khi mình chọn các Precision) nhé. Cám ơn Tue_NV rất nhiều. http://www.cadviet.com/upfiles/2/lisp_da_g...hieu_1_giay.dwg Sorry Phi phi. Tue_NV sơ ý quá. Gửi lại Phi phi code đã test lỗi ở bài viết 341. Phi phi kiểm tra lại 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
Phiphi- 176 Báo cáo bài đăng Đã đăng Tháng 11 3, 2009 Sorry Phi phi. Tue_NV sơ ý quá. Gửi lại Phi phi code đã test lỗi ở bài viết 341. Phi phi kiểm tra lại nhé Nhờ Tue_NV chỉnh thêm chút xíu nữa nhé, trong file CAD trên có đo góc 69o 5' 59.7" LISP đã sửa lại thành 69o 05' 60" (vẩn OK) Nhưng đúng hơn thì nên sửa lại là 69o 06' 00". Tks. 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 11 3, 2009 Nhờ Tue_NV chỉnh thêm chút xíu nữa nhé, trong file CAD trên có đo góc 69o 5' 59.7" LISP đã sửa lại thành 69o 05' 60" (vẩn OK)Nhưng đúng hơn thì nên sửa lại là 69o 06' 00". Tks. Hy vọng đúng ý của Phi phi (defun c:dpg(/ ss i ent goc do phut giay dotinh ph gi dpg) (if (setq ss (ssget '((0 . "DIMENSION")))) (progn (setq i 0) (while ( (setq ent (entget (ssname ss i))) (setq ent (entmod (subst (cons 1 "") (assoc 1 ent) ent))) (setq goc (/ (* (cdr(assoc 42 ent)) 180) pi)) (setq do (fix goc)) (setq dotinh (* (- goc do) 3600)) (setq phut (fix (/ dotinh 60) )) (setq giay (rem dotinh 60) ) (if (or ( (progn (if ( (if ( (if (= (atof gi) 60) (progn (setq ph (strcat "0" (itoa (1+ phut)))) (setq gi "00") ) ) (setq dpg (strcat (itoa do) "%%d" ph "'" gi "''")) (setq ent (entmod (subst (cons 1 dpg) (assoc 1 ent) ent))) )) (setq i (1+ i)) ) ) (Princ "khong co doi tuong nao duoc chon") ) (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
Mr Cuong 0 Báo cáo bài đăng Đã đăng Tháng 11 3, 2009 Anh Nguyễn Hoang ơi Anh có thể viết giùm em 1 Lisp với nội dung sau không : Trong bản vẽ của em có rất nhiều đường Poline. Khoảng cách giữa các điểm point không đều nhau. Em muốn có 1 lisp như sau: Khi ta chon 1 hay nhiều đường poline thì: Tính theo chiều từ trái sang phải(theo trục X) sắp sếp lại các điểm point trên cùng 1 poline sao cho khoảng cách giữa các điểm point đều bằng nhau, các điểm point mới không được ra ngoài đường poline đó. Rất mong anh có thể giúp em. Xin cảm ơn anh trước nha ! 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 11 3, 2009 Anh Nguyễn Hoang ơi Anh có thể viết giùm em 1 Lisp với nội dung sau không : Trong bản vẽ của em có rất nhiều đường Poline. Khoảng cách giữa các điểm point không đều nhau. Em muốn có 1 lisp như sau: Khi ta chon 1 hay nhiều đường poline thì: Tính theo chiều từ trái sang phải(theo trục X) sắp sếp lại các điểm point trên cùng 1 poline sao cho khoảng cách giữa các điểm point đều bằng nhau, các điểm point mới không được ra ngoài đường poline đó. Rất mong anh có thể giúp em. Xin cảm ơn anh trước nha ! Các point mà bạn đề cập đến phải chăng là các đỉnh Vertex của PLINE Bạn có thể xem ở đây : Bài viết số 31 đến bài viết số 39 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
tnmtpc 207 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 (defun c:pt() (setq i 0 txt_pnt (ssget '((0 . "TEXT,point")))) (command "undo" "begin") (setq oldos (getvar "osmode")) (command "osmode" 0) (repeat (sslength txt_pnt) (setq txt_pnt_ent (entget (ssname txt_pnt i))) (if (assoc 1 txt_pnt_ent) (progn (setq txt_pt (cdr (assoc 10 txt_pnt_ent)) ii 0 kcmin 999999999999999999) (while (< ii (sslength txt_pnt)) (setq txt_pnt_ent1 (entget (ssname txt_pnt ii))) (if (assoc 1 txt_pnt_ent1) () (progn (setq pnt_pt (cdr(assoc 10 txt_pnt_ent1)) kci (distance txt_pt pnt_pt)) (if (< kci kcmin) (setq kcmin kci pnt_goc pnt_pt)) );progn );if (setq ii (+ ii 1)) );while (command "move" (ssname txt_pnt i) "" txt_pt pnt_goc) );progn );if (setq i (+ i 1)) );repeat (setvar "osmode" oldos) (command "undo" "end") );defun Chú ý: - Khi chạy lisp này, với mỗi text lisp sẽ quyét tất cả các point để tìm point gần nhất và di chuyển text đến point đó. Chính vì thế có thể xảy ra trường hợp (rất ít xảy ra) 2 text có chung một point gần nhất, khi đó lisp sẽ di chuyển chúng trùng với nhau dẫn đến có thể một số point bị lạc mất text cao độ. bạn sử dụng chú ý một chút là OK. - Tên lệnh bạn có thể tự đổi cho phù hợp với nhu cầu. - Vì viết nhanh nên mình chỉ quan tâm đến hiệu quả, không quan tâm đến chất lượng nên lisp này nói chung là không hay lắm dưới con mắt người lập trình, vài chỗ cách làm hơi củ chuối nhưng với người sử dụng thì OK không vấn đề gì. hi vọng đúng ý bạn. :tongue2: Bạn xem lại giúp, load lisp, gõ lệnh, báo lỗi "; error: too many arguments" Mình dùng Cad 2004 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 11 4, 2009 Bạn xem lại giúp, load lisp, gõ lệnh, báo lỗi "; error: too many arguments"Mình dùng Cad 2004 Bạn nhấn nút Reply bài viết số 340 hoặc nhấn nút Edit bài viết số 350 của bạn (nằm ngay trên bài viết này)-> chép hết code về chạy nhé Cheers 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
Trần Diệu Nhân 20 Báo cáo bài đăng Đã đăng Tháng 11 4, 2009 Anh Tue_NV! Giúp e cái lisp bố trí cột vào lưới với ạ! File đính kèm đây a: http://www.mediafire.com/file/wlvw3inzdwm/lisp dat ki hieu va bo tri cot.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