

ToTo08
-
Số lượng nội dung
21 -
Đã tham gia
-
Lần ghé thăm cuối
Bài đăng được đăng bởi ToTo08
-
-
Theo mình biết thì có 2 cách in: in theo màu và in theo nét.
Và theo mình hiểu í của bạn trên là muốn in bản vẽ theo màu đồng thời với các đường polyline thì in theo nét (nếu độ rộng nét polyline lớn hơn màu dùng để vẽ đường polyline). Mình cũng đang bận tâm vấn đề này, ai biết chỉ giúp. thanks.
-
Giá trị elevation là cao độ của pl đó bạn ạ.Mình dùng lệnh flatten xong thì mất luôn đường pline. Làm sao để khắc phục nhỉ.
-
Cài làm j bạn, chế độ xp mode với vitrual machine đâu có cho lăn chuột giữa, zoom pan không được đâu.
-
Mình thấy trên diễn đàn có lisp tính tổng chiều dài như thế này
(defun add_mline () (foreach e_record_sub e_record (cond ((= 10 (car e_record_sub)) (setq pt1 (cdr e_record_sub) mline_len 0.0 ) ) ((= 11 (car e_record_sub)) (setq pt2 (cdr e_record_sub) mline_len (+ mline_len (distance pt2 pt1)) pt1 pt2 ) ) ) ) (setq tot_len (+ tot_len mline_len)) (ssdel e_name ss) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun C:tg (/ tot_len ss e_name e_record e_type) (princ "\nCADViet.com © 2007") (setq tot_len 0.0) (setq ss (ssget)) (if (null ss) (exit) ) (while (> (sslength ss) 0) (setq e_name (ssname ss 0)) (setq e_record (entget e_name)) (setq e_type (cdr (assoc '0 e_record))) (cond ((wcmatch e_type "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE") (command "lengthen" e_name "") (setq tot_len (+ tot_len (getvar "PERIMETER"))) (ssdel e_name ss) ) ((wcmatch e_type "MLINE") (add_mline)) (e_type (ssdel e_name ss)) ) ) (prompt (strcat "\nTotal length is: " (rtos tot_len 2 2))) (princ) ) (princ "\ntg - free lisp from www.cadviet.com") (princ)
Bây giờ muốn mọi người sửa giúp kết quả cuối cùng là chọn text để ghi thay cho kết quả hiện ra trên màn hình, thanks.
-
1
-
1
-
-
khi mình thực hiện lệch dịch trắc ngang xong và save lại và tiếp tục làm thì file vẫn chạy bình thường, nhưng khi lưu file và chạy lại nova thì không thực hiện được một số lệnh trong nova như: dtktn, và đôi lúc mở file chỉ thấy hình dạng mặt đường và lề đường còn tauy thì mất đâu và không thực hiện được lệnh nova nữa. Các bạn ai biết cách khắc phục lỗi này giúp mình với Cám ơn trước.
-
:D Hic, chủ lisp không quan tâm nữa àh, mong tin chủ lisp, thanks.
-
Mình thấy lisp này rất hay, tuy nhiên có nhược điểm là khi "nhao cao do diem moc" nếu là 0.00 thì lisp chạy chính xác, nhưng nếu nhập con số khác 0, thì nó hiểu bị ngược. ví dụ tôi nhập 3 thì khi move lên 1 đơn vị kết quả sẽ là -2 (nếu đúng là 4), nếu tôi nhập -1 thì khi tôi move xuống 1 đơn vị thì kết quả là 0 (nếu đúng là -2). Bạn Tue_NV sửa lại chỗ này giúp mình, cám ơn.
-
Chào bạn ToTo08,Mình đã kiểm tra lại đoạn code ở trên và không thấy có lỗi bạn ạ. Có nhẽ bạn đã có sai lầm chi đó khi chép các code này. Cái lỗi nó báo là bạn bị dư ngoặc đóng. Bạn hãy đếm thử số ngoặc đóng và ngoặc mở trong đoạn líp trên sẽ rõ.
Như đã nói là mình không chạy thử líp của bạn nên không biết nó có lỗi gì hay không. Chỉ đơn giản là mình thay thế cái đoạn code xuất kết quả ra mà thôi. Các đoạn code khác vẫn giư nguyên bạn ạ.
Theo líp cũ của bạn thì nó yêu cầu bạn phải chọn một text có sẵn trên bản vẽ để thay thế giá trị mới vô. Nếu bạn không chọn một text thì nó cứ hỏi hoài cho tới khi bạn chọn một text.
Còn code mình sửa chỉ đơn giản là nếu bạn không chọn gì hoặc chọn phải đối tượng không đúng là text thì líp sẽ in giá trị mới ra dòng command bằng lệnh princ.
Còn nếu bạn chọn đúng là text thì nó sẽ thay giá trị mới này vào text.
Vì thế nếu lisp không xác định được giá trị mới thì có nhẽ là cái líp gốc của bạn có lỗi. Mình chưa kiểm tra lại lisp cũ của bạn được do chưa rảnh lắm. Mong bạn thông cảm......
Thực sự khi load lisp nó báo lỗi và kết quả cũng không như mong muốn. Cám ơn bạn đã quan tâm.
-
Chào bạn ToTo08,Mình đã kiểm tra lại đoạn code ở trên và không thấy có lỗi bạn ạ. Có nhẽ bạn đã có sai lầm chi đó khi chép các code này. Cái lỗi nó báo là bạn bị dư ngoặc đóng. Bạn hãy đếm thử số ngoặc đóng và ngoặc mở trong đoạn líp trên sẽ rõ.
Như đã nói là mình không chạy thử líp của bạn nên không biết nó có lỗi gì hay không. Chỉ đơn giản là mình thay thế cái đoạn code xuất kết quả ra mà thôi. Các đoạn code khác vẫn giư nguyên bạn ạ.
Theo líp cũ của bạn thì nó yêu cầu bạn phải chọn một text có sẵn trên bản vẽ để thay thế giá trị mới vô. Nếu bạn không chọn một text thì nó cứ hỏi hoài cho tới khi bạn chọn một text.
Còn code mình sửa chỉ đơn giản là nếu bạn không chọn gì hoặc chọn phải đối tượng không đúng là text thì líp sẽ in giá trị mới ra dòng command bằng lệnh princ.
Còn nếu bạn chọn đúng là text thì nó sẽ thay giá trị mới này vào text.
Vì thế nếu lisp không xác định được giá trị mới thì có nhẽ là cái líp gốc của bạn có lỗi. Mình chưa kiểm tra lại lisp cũ của bạn được do chưa rảnh lắm. Mong bạn thông cảm......
Thực sự khi load lisp nó báo lỗi và kết quả cũng không như mong muốn. Cám ơn bạn đã quan tâm.
-
Chào bạn ToTo08,Mình chưa chạy thử lisp bạn gửi, song với yêu cầu bổ sung việc xuất kết quả của bạn mình nghĩ bạn có thể thử như sau:
1/- Thay đoạn code xuất kết quả:
Trong đoạn lisp sửa ở trên mình có bổ sung thêm việc kiểm tra xem liệu đối tượng chọn có phải là text hay không, Nếu đúng thì sẽ thay bàng giá trị mới còn nếu không thì sẽ trả giá tri text mới ra dòng command.
Hy vọng trúng ý bạn. Chúc bạn vui.
2/- Mặc dù chưa chạy thử nhưng mình thấy cái lisp trên của bạn viết khá rườm rà và nhiều đoạn code có thể rút gọn được. Rất mong bạn kiểm tra lại để lisp đơn giản và dễ hiểu hơn.
Chúc bạn vui.
Chào bạn phamthanhbinh, mình làm theo cách của bạn lúc load lisp báo lỗi ; error: extra right paren on input và kết quả xuất ra text không nhảy số. Bạn kiểm tra lại giúp mình. Đây là lisp mình sưu tầm được, mình thấy lisp rất hay nhưng chưa có nhiều thời gian để hoc lisp, bạn thông cảm.
-
Mọi người ơi cho tớ hỏi ko biết do lisp hay do máy tớ hay do tớ ko biết sử dụng mà lisp tính diện tích tớ ko dùng đc.No đã hướng dẫn tích vào vùng cần tính diện tích rồi mà sau khi mình enter ko hiện ra j cả.Có ai giải quyết đc vẫn đề này ko.Cám ơn mọi người!Bạn thử lisp tính diện tích này nhé:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun c:DDD(); (setvar "cmdecho" 0) (setvar "DIMZIN" 0) (if (= Ty_le nil) (progn (setq Ty_le (getreal "\\nNhËp Tû LÖ <1000>:")) (if (= Ty_le nil)(setq Ty_le 1000.00)) ) (progn (setq khaibaoTy_le (getstring (strcat "\\nTû LÖ = " (rtos Ty_le 2 0) " Cã Muèn Thay §æi Kh«ng ,C:"))) (if (= (strlen khaibaoTy_le) 0) (setq khaibaoTy_le "K")) (if (or (= khaibaoTy_le "k") (= khaibaoTy_le "K")) (progn (princ (strcat "\\nTû LÖ = " (rtos Ty_le 2 0))) ) (if (or (= khaibaoTy_le "c") (= khaibaoTy_le "C")) (progn (setq Ty_le (getreal "\\nNhËp Tû LÖ <1000>:")) (if (= Ty_le nil)(setq Ty_le 1000.00)) ) ) ) ) ) (if (= So_Le nil) (progn (setq So_Le (getint "\\nNhËp Sè LÎ DiÖn TÝch <2>:")) (if (= So_Le nil)(setq So_Le 2)) ) (progn (setq khaibaoSo_Le (getstring (strcat "\\nSè LÎ DiÖn TÝch = " (rtos So_Le 2 0) " Cã Muèn Thay §æi Kh«ng ,C:"))) (if (= (strlen khaibaoSo_Le) 0) (setq khaibaoSo_Le "K")) (if (or (= khaibaoSo_Le "k") (= khaibaoSo_Le "K")) (progn (princ (strcat "\\nSè LÎ DiÖn TÝch = " (rtos So_Le 2 0))) ) (if (or (= khaibaoSo_Le "c") (= khaibaoSo_Le "C")) (progn (setq So_Le (getint "\\nNhËp Sè LÎ DiÖn TÝch <2>:")) (if (= So_Le nil)(setq So_Le 2)) ) ) ) ) ) (setq He_so (/ 1000 Ty_le)) (setq He_so2 (* He_so He_so)) (setq dtl 0) (setq ss (ssadd)) (setq oslast (getvar "OSMODE")) (command "osnap" "") (print) (print) (setq pt1 (getpoint "\\nChon Vung Kin Tinh Dien Tich : ")) (while (/= pt1 nil) (command "-boundary" pt1 "") (setq et (entlast)) (ssadd et ss) (command "area" "e" "last") (setq vsize ( /(getvar "VIEWSIZE") 50 )) (command "hatch" "ANSI31" vsize "0" "last" "") (setq et (entlast)) (ssadd et ss) (setq dtcon (getvar "AREA")) (setq dtl (+ dtcon dtl)) (print) (print) (setq pt1 (getpoint "\\nChon Vung Kin Tinh Dien Tich : ")) ) (command "setvar" "OSMODE" oslast) (command "erase" ss "") (setq ss nil) (command "redraw") (setq dtl (/ (/ dtl He_so2) 1)) (setq en (car (entsel "Thay cho so : "))) (while (= en nil) (setq en (car (entsel "Thay cho so : "))) ) (setq elst (entget en)) (setq elstold (assoc 1 elst)) (setq elstnew (cons 1 (rtos dtl 2 So_Le))) (setq elst (subst elstnew elstold elst)) (entmod elst) (setq elst nil) (setq dtl nil) (command "_change" en "" "p" "c" "1" "") (princ "\\nhttp:\\\\doanduyhung.googlepages.com") ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Lisp này xuất kết quả dựa vào 1 text hiện có. Tiện đây mọi người sửa lại lisp trên giúp mình kết quả xuất sẽ là con số trên dòng command nếu nhấn enter hoặc trên text nếu chon text. Cám ơn.
-
Lisp chạy rất ổn xuất thẳng text ra file excel ở dạng cột. Nếu lisp hoàn thiện thêm phần xuất text ra hàng thì thật tốt. Cám ơn bạn phamthanhbinh nha.
-
Mình cần 1 lisp xuất các text theo thứ tự được chọn ra file txt có sự lựa chọn theo hàng hoặc cột. Các bạn giúp mình với.
-
Cật nhật theo yêu cầu : Nối text theo thứ tự các text được chọn.(defun c:at2t (/ center color data edata ent i sel ss str);All Text to Text (defun centerSS (ss / lst_max lst_min maxpt minpt ll ur) (vl-load-com) (foreach ent (mapcar 'vlax-ename->vla-object (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))) (vla-GetBoundingBox ent 'minpt 'maxpt) (setq lst_min (cons (vlax-safearray->list minpt) lst_min) lst_max (cons (vlax-safearray->list maxpt) lst_max) ) ) (setq ll (list (car (vl-sort (mapcar 'car lst_min) '<)) (car (vl-sort (mapcar 'cadr lst_min) '<)) ) ur (list (last (vl-sort (mapcar 'car lst_max) '<)) (last (vl-sort (mapcar 'cadr lst_max) '<)) ) ) (mapcar '/ (mapcar '+ ll ur) '(2.0 2.0 2.0)) ) (defun Change_Str (data pt str color) (entmake (list (cons 0 "TEXT") (assoc 8 data) (cons 10 pt) (cons 11 pt) (assoc 7 data) (assoc 40 data) (cons 71 0) (cons 72 1) (cons 73 2) (cons 1 str) (cons 62 color) (if (assoc 6 data) (assoc 6 data) '(6 . "BYLAYER") ) (if (assoc 39 data) (assoc 39 data) '(39 . 0) ) (if (assoc 370 data) (assoc 370 data) '(370 . -1) ) )) ) (defun dxf (tag obj) (cdr (assoc tag obj))) ;main (or *color* (setq *color* 6 )) (setq color (getint (strcat "\nNhap so mau cua Text sau khi hoan thanh <" (itoa *color*) "> :")) ) (if color (setq *color* color) (setq color *color*)) (setq ss (ssadd)) (while (setq sel (entsel "\nChon cac Text can noi voi nhau: ")) (setq ent (car sel)) (if (= (cdr (assoc 0 (entget ent))) "TEXT") (ssadd ent ss)) ) (if (> (sslength ss) 0) (progn (setq i -1 str "" center (centerSS ss) data (entget (ssname ss 0)) ) (while (setq ent (ssname ss (setq i (1+ i)))) (setq edata (entget ent) str (strcat str " " (dxf 1 edata)) ) (entdel ent) ) (Change_Str data center (substr str 2) color) ) (princ "\nKhong chon duoc Text !")) (princ))
Lisp chạy rất ổn, cám ơn bạn.
-
1
-
-
Bạn gia_bach sửa giùm mình thêm tí là kết quả text nối theo thứ tự các text được chọn. Mình nối 2 dòng text trên và dưới thì kết quả là text trên luôn được chuyển ra đầu.
-
1
-
-
Mình thấy cái này cũng hữu ích mà, sao không ai trả lời hết vậy.
-
Mình cóp pi đối tượng trong bản vẽ thứ 1 và dán qua bản vẽ thứ 2, tại dòng nhắc lệnh hiện lên chữ pasteclip nhưng lúc thì tìm được đối tượng, lúc không. Mình dùng cad 2000, không hiểu lỗi gì, mọi người giúp mình với.
-
Mình cần 1 lisp khi cóp pi 1 text ở dạng số thì tự động đối tượng sau cóp pi được cộng thêm n đơn vị, đối tượng sau nữa là cộng thêm (n+n) đơn vị, mong mọi người giúp đỡ, cám ơn.
-
Mình được biết trong cad có lệnh chia nhỏ bản vẽ ra để in (a1 chia thành 4 bản a3), vậy ai biết chỉ mình với, thanks nhiều.
-
Mình cần 1 lisp nối các đoạn thẳng, đoạn cong lại với nhau, mong mọi người giúp đỡ.
không mở được bảng excel OLE với excel 2010
trong Sử dụng AutoCAD
Đã đăng · Trả lời báo cáo
Mình cũng bị trường hợp này, và bị mất luôn file excel gốc, phải làm lại file excel mới
Có ai giải quyết được lỗi này chưa vậy.