amateurday 15 Báo cáo bài đăng Đã đăng Tháng 3 30, 2009 em có 1 bản vẽ trên đó có chữ và số. bây jờ em muốn nhấp chuột vào đối tượng chữ thì chữ sẽ hiện ở command line, và số cũng vậy, giống như khi mình dùng lệnh lengthen để đo chiều dài đoạn thẳng đó . các bác chỉ cho em với. cám ơn 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 3 31, 2009 em có 1 bản vẽ trên đó có chữ và số. bây jờ em muốn nhấp chuột vào đối tượng chữ thì chữ sẽ hiện ở command line, và số cũng vậy, giống như khi mình dùng lệnh lengthen để đo chiều dài đoạn thẳng đó . các bác chỉ cho em với. cám ơn các bác Đây bạn : Đánh đoạn mã này vào Command: (Cdr(assoc 1 (entget(car(entsel))))) 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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 4 6, 2009 Đây bạn : Đánh đoạn mã này vào Command: (Cdr(assoc 1 (entget(car(entsel))))) tiện thể bác cho em hỏi luôn, mình muốn không phải gõ lệnh này liên tục, mà gõ 1 lần thôi, nhấp vào đối tượng nó sẽ hiện 1 cách liên tục ở dòng command thì sao ạ. VD: Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Select object: "200.0000" Select object: "264.6600" Select object: "300.0000" cám ơn 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 4 6, 2009 tiện thể bác cho em hỏi luôn, mình muốn không phải gõ lệnh này liên tục, mà gõ 1 lần thôi, nhấp vào đối tượng nó sẽ hiện 1 cách liên tục ở dòng command thì sao ạ.VD: Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Select object: "200.0000" Select object: "264.6600" Select object: "300.0000" cám ơn bác Bạn hãy nói rõ hơn ý của bạ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
binharch77 163 Báo cáo bài đăng Đã đăng Tháng 4 6, 2009 tiện thể bác cho em hỏi luôn, mình muốn không phải gõ lệnh này liên tục, mà gõ 1 lần thôi, nhấp vào đối tượng nó sẽ hiện 1 cách liên tục ở dòng command thì sao ạ.VD: Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Select object: "200.0000" Select object: "264.6600" Select object: "300.0000" cám ơn bác chi khổ vậy, bác cứ ctrl+1 ra bảng properties, xem dòng length, cứ click và thằng nào, bảng properties sẽ hiện thông số của thằng đó. đơn giản have fun 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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 4 6, 2009 Bạn hãy nói rõ hơn ý của bạn được không? nghĩa là nó khác với thế này, chỉ 1 lần gõ lệnh (Cdr(assoc 1 (entget(car(entsel))))) thôi Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "200.0000" Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "264.6600" Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "300.0000" chỉ 1 lần gõ lệnh (Cdr(assoc 1 (entget(car(entsel))))) thôi Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Select object: "200.0000" Select object: "264.6600" Select object: "300.0000" tại vì em muốn copy các đối tượng này sang bảng excel đó mà, nó phải liên tục mới đượ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
binharch77 163 Báo cáo bài đăng Đã đăng Tháng 4 6, 2009 nghĩa là nó khác với thế này, chỉ 1 lần gõ lệnh (Cdr(assoc 1 (entget(car(entsel))))) thôi Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "200.0000" Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "264.6600" Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "300.0000" chỉ 1 lần gõ lệnh (Cdr(assoc 1 (entget(car(entsel))))) thôi Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Select object: "200.0000" Select object: "264.6600" Select object: "300.0000" tại vì em muốn copy các đối tượng này sang bảng excel đó mà, nó phải liên tục mới được à, tôi hiểu ý của đồng chí rồi. đồng chí muốn đưa nó và thống kê và chuyển qua exel hử? nếu đúng vậy thì có một cách rất hay và nhanh, nhưng tui xài desktop quen rồi, không biết có thể truyền kinh nghiệm này không (thống kê cực nhanh tất cả tính chất của đối tượng được chọn có trong bản vẽ 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
tdvn 53 Báo cáo bài đăng Đã đăng Tháng 4 6, 2009 tiện thể bác cho em hỏi luôn, mình muốn không phải gõ lệnh này liên tục, mà gõ 1 lần thôi, nhấp vào ðối týợng nó sẽ hiện 1 cách liên tục ở dòng command thì sao ạ.VD: Command: (Cdr(assoc 1 (entget(car(entsel))))) Select object: "100.0000" Select object: "200.0000" Select object: "264.6600" Select object: "300.0000" cám õn bác Cái này (while (setq n (entsel)) (princ (Cdr (assoc 1 (entget (car n)))))) 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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 Cái này (while (setq n (entsel)) (princ (Cdr (assoc 1 (entget (car n)))))) cám ơn bác, thật hay lắ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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 à, tôi hiểu ý của đồng chí rồi.đồng chí muốn đưa nó và thống kê và chuyển qua exel hử? nếu đúng vậy thì có một cách rất hay và nhanh, nhưng tui xài desktop quen rồi, không biết có thể truyền kinh nghiệm này không (thống kê cực nhanh tất cả tính chất của đối tượng được chọn có trong bản vẽ ý bác là land desktop phải không, nếu được thì bác chỉ cho 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
xuangiangtedi 3 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 à, tôi hiểu ý của đồng chí rồi.đồng chí muốn đưa nó và thống kê và chuyển qua exel hử? nếu đúng vậy thì có một cách rất hay và nhanh, nhưng tui xài desktop quen rồi, không biết có thể truyền kinh nghiệm này không (thống kê cực nhanh tất cả tính chất của đối tượng được chọn có trong bản vẽ " có một cách rất hay và nhanh" đó là cách gì bác có thể chia sẻ với anh em 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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 4 8, 2009 à, tôi hiểu ý của đồng chí rồi.đồng chí muốn đưa nó và thống kê và chuyển qua exel hử? nếu đúng vậy thì có một cách rất hay và nhanh, nhưng tui xài desktop quen rồi, không biết có thể truyền kinh nghiệm này không (thống kê cực nhanh tất cả tính chất của đối tượng được chọn có trong bản vẽ bác này nói xong không quay lại trả lời j cả. làm anh em chờ lâ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 5 8, 2009 Cái này (while (setq n (entsel)) (princ (Cdr (assoc 1 (entget (car n)))))) Chào bác tdvn. Code của bác thật hay. Nhưng có điều là khi ta pick trật thì Lisp tự động thoát lệnh ngay. Có cách nào mà khi ta pick trật đối tượng thì sẽ hiện lại dòng Select object : cho ta chọn Pick lại đối tượng không? Cái này giống như lệnh Lengthen của CAD : Khi pick trật cho phép ta chọn lại đối tượng Ví dụ : Command: len LENGTHEN Select an object or [DElta/Percent/Total/DYnamic]: de Enter delta length or [Angle] <0.0000>: 500 Select an object to change or [undo]: Select an object to change or [undo]: Select an object to change or [undo]: Select an object to change or [undo]: Select an object to change or [undo]: Select an object to change or [undo]: Những dòng: Select an object to change or [undo]: Nếu ta có pick trật thì vẫn hiện lại cho ta pick trúng đối tượng và thực hiện lệnh lengthen Bác tdvn và các bác trên diễn đàn giúp cho Tue_NV vấn đề này với- Tue_NV đang cần nó lắm. Cảm ơn tất cả 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
nataca 554 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 Có cách nào mà khi ta pick trật đối tượng thì sẽ hiện lại dòng Select object : cho ta chọn Pick lại đối tượng không? thì bác thay đổi điều kiện kiểm tra cho thằng while Ví dụ: (setq test t) (while test __(setq n (entsel)) __(if (null n) ____(princ "\nChon chua dung!") ____(princ (Cdr (assoc 1 (entget (car n)))))) __) ) Cái này dùng phím ESC để thoát vòng lặp 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 5 8, 2009 thì bác thay đổi điều kiện kiểm tra cho thằng whileVí dụ: (setq test t) (while test __(setq n (entsel)) __(if (null n) ____(princ "\nChon chua dung!") ____(princ (Cdr (assoc 1 (entget (car n)))))) __) ) Cái này dùng phím ESC để thoát vòng lặp Cảm ơn Nataca. Điều kiện vòng lặp while trên thì điều kiện luôn luôn đúng. Chỉ có cách dùng phím ESC để thoát vòng lặp. Có cách nào để nhấn phím Enter để kết thúc vòng lặp không Nataca? Nó tương tự như lệnh LENGTHEN của CAD nó cho phép khi ta pick trật đối tượng thì sẽ hiện lại dòng Select object : cho ta chọn Pick lại đối tượng và kết thúc vòng lặp bằng phím Enter hoặc Esc 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
nataca 554 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 Cảm ơn Nataca. Điều kiện vòng lặp while trên thì điều kiện luôn luôn đúng. Chỉ có cách dùng phím ESC để thoát vòng lặp. Có cách nào để nhấn phím Enter để kết thúc vòng lặp không Nataca? Nó tương tự như lệnh LENGTHEN của CAD nó cho phép khi ta pick trật đối tượng thì sẽ hiện lại dòng Select object : cho ta chọn Pick lại đối tượng và kết thúc vòng lặp bằng phím Enter hoặc Esc anh thử dùng đoạn code này xem sao (setq mouse nil) (while (/= (car mouse) 2) (setq mouse (grread 0 15 2)) (if (= (car mouse) 3) (progn (setq p1 (mapcar '+ (cadr mouse) '(0.1 0.1)) p2 (mapcar '- (cadr mouse) '(0.1 0.1)) ent (ssget "c" p2 p1) ) (if (and ent (assoc 1 (entget (ssname ent 0)))) (princ (strcat "\n<Enter de ket thuc>:" (Cdr (assoc 1 (entget (ssname ent 0)))))) (princ "\nKhong phai text!") ) ) ) ) '(0.1 0.1) là em lấy với khoảng cách ví dụ . Nếu là các đối tượng ngoài text thì chọn sẽ dễ hơn bằng nentselp (giống thằng lengthen) 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
Tue_NV 3.912 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 anh thử dùng đoạn code này xem sao (setq mouse nil) (while (/= (car mouse) 2) (setq mouse (grread 0 15 2)) (if (= (car mouse) 3) (progn (setq p1 (mapcar '+ (cadr mouse) '(0.1 0.1)) p2 (mapcar '- (cadr mouse) '(0.1 0.1)) ent (ssget "c" p2 p1) ) (if (and ent (assoc 1 (entget (ssname ent 0)))) (princ (strcat "\n<Enter de ket thuc>:" (Cdr (assoc 1 (entget (ssname ent 0)))))) (princ "\nKhong phai text!") ) ) ) ) '(0.1 0.1) là em lấy với khoảng cách ví dụ . Nếu là các đối tượng ngoài text thì chọn sẽ dễ hơn bằng nentselp (giống thằng lengthen) Tuyệt lắm Nataca. Mình đang viết một tiện ích nhỏ đang cần dùng đến cái này. Tue_NV đang trong giai đoạn viết nó và muốn chia sẻ cho mọi người. Có gì thì Nataca góp ý thêm nhé. Cảm ơn Nataca rất nhiều. 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
nataca 554 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 Tuyệt lắm Nataca. Mình đang viết một tiện ích nhỏ đang cần dùng đến cái này. Tue_NV đang trong giai đoạn viết nó và muốn chia sẻ cho mọi người. Có gì thì Nataca góp ý thêm nhé.Cảm ơn Nataca rất nhiều. Vâng. Em sẵn sà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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 Vâng. Em sẵn sàng :( bác nataca cho em hỏi, em muốn vẫn sử dụng code của bác tdvn là : (while (setq n (entsel)) (princ (Cdr (assoc 1 (entget (car n)))))) nhưng mỗi lần pick trật thì không thoát lệnh, và cũng không có gì thay đổi, (xem như pick trật = chưa pick) cho đến khi mình pick trúng thì thôi. có được không bác. cám ơn bác 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
nataca 554 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 bác nataca cho em hỏi, em muốn vẫn sử dụng code của bác tdvn là :(while (setq n (entsel)) (princ (Cdr (assoc 1 (entget (car n)))))) nhưng mỗi lần pick trật thì không thoát lệnh, và cũng không có gì thay đổi, (xem như pick trật = chưa pick) cho đến khi mình pick trúng thì thôi. có được không bác. cám ơn bác nhé (setq mouse nil) (while (/= (car mouse) 2) (setq mouse (grread 0 15 2)) (if (= (car mouse) 3) (progn (setq p1 (mapcar '+ (cadr mouse) '(0.1 0.1)) p2 (mapcar '- (cadr mouse) '(0.1 0.1)) ent (ssget "c" p2 p1) ) (if (and ent (assoc 1 (entget (ssname ent 0)))) (princ (strcat "\n" (Cdr (assoc 1 (entget (ssname ent 0)))))) ) ) ) ) cái này thực ra vẫn tốt mà. 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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 (setq mouse nil) (while (/= (car mouse) 2) (setq mouse (grread 0 15 2)) (if (= (car mouse) 3) (progn (setq p1 (mapcar '+ (cadr mouse) '(0.1 0.1)) p2 (mapcar '- (cadr mouse) '(0.1 0.1)) ent (ssget "c" p2 p1) ) (if (and ent (assoc 1 (entget (ssname ent 0)))) (princ (strcat "\n" (Cdr (assoc 1 (entget (ssname ent 0)))))) ) ) ) ) cái này thực ra vẫn tốt mà. thỉnh thoảng em pick 1:6 nó ra thế này {\H0.75x;1:6} thay vì 1:6 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 4.663 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 thỉnh thoảng em pick 1:6 nó ra thế này{\H0.75x;1:6} thay vì 1:6 Nhiều khả năng là vì đối tượng bạn pick là MTEXT chứ không phải TEXT. 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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 Nhiều khả năng là vì đối tượng bạn pick là MTEXT chứ không phải TEXT. hiện tại thì em cũng chỉ dùng code của bác tdvn, nhưng em thấy bác nataca có cách hay nên hỏi thêm, bây giờ lại thêm mtext với text nữa, em thì chưa gặp mtext, nhưng sau này không biết có gặp không, mong bác Hoành và các bác giúp làm cho hoàn thiện code trên được không ạ, chỉ cần pick là nó ra, pick trật thì như chưa pick, pick đuợc cả mtext và text luôn. cám ơn các bác 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
nataca 554 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 hiện tại thì em cũng chỉ dùng code của bác tdvn, nhưng em thấy bác nataca có cách hay nên hỏi thêm, bây giờ lại thêm mtext với text nữa, em thì chưa gặp mtext, nhưng sau này không biết có gặp không, mong bác Hoành và các bác giúp làm cho hoàn thiện code trên được không ạ, chỉ cần pick là nó ra, pick trật thì như chưa pick, pick đuợc cả mtext và text luôn. cám ơn các bác nhé. Thực ra thì cũng có cách giải quyết được. Nhưng mà theo mình bài toán thực tế của bạn nếu đi theo hướng khác thì hay hơn. Bạn up file bản vẽ lên, trong file bản vẽ chỉ ra những text nào cần đưa ra bảng excel. Và file excel mẫu có thể hiện cách trình bày kết quả đưa ra. Như thế sẽ giải quyết bài toán tận gốc, giúp bạn tiết kiệm thời gian hơ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
amateurday 15 Báo cáo bài đăng Đã đăng Tháng 5 8, 2009 hiện tại thì em mới chỉ dùng đến text thôi nên chưa có bản vẽ để up lên, để sau này nếu gặp thì nhờ các bác vậy. Cám ơn các 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