-
Số lượng nội dung
1.387 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
117
Bài đăng được đăng bởi Danh Cong
-
-
Lisp Congtext
(defun c:congtext ()(prompt "\nChon Text")(setq sslist (ssget '((-4 . "<or")(0 . "TEXT")(0 . "MTEXT")(-4 . "or>"))))(setq number (SSLENGTH sslist)sum 0)(repeat number(setq Value (atof (cdr (assoc 1 (entget (ssname sslist 0))))))(setq sum (+ sum value))(ssdel (ssname sslist 0) sslist))(setq ptext (getpoint "\nChon diem chen Text: \n"))(command "-text" ptext "" "" (rtos sum 2 2))(princ)) -
mình chưa biết gì về autocad xin các bạn chỉ dẫn mình cách vẽ với ạ...mình đi học ban đêm còn ban ngày đi làm nên không có thời gian để học.xin cam ơn nhiều
Nếu học cad 2D thì thử mấy video trên Youtube này xem.
Ngày xưa mình cũng tự học cad cơ bản qua mấy video này. Sau 3 bài thì gọi là hiểu sơ sơ về cad. Muốn giỏi thì phải học nhiều.
Bài 1:
Bài 2:
Bài 3:
-
Xin hỏi các cao nhân, làm thế nào để ẩn đối tượng không cho hiển thị ở 1 layout
cụ thể hơn. giả sử có đối tượng A và có 2 layout B và Layout C
em muốn đối tượng A chỉ hiện thị ở layout B mà không hiển thị ở layout C
mặc dù cả 2 layout đó đều nhìn vào vị trí có đối tượng A
Cụ thể hơn mời các pro xem bản vẽ kèm theo. Em thấy họ làm được điều đó mà mình không biết làm thế nào để làm được như vậy ?
xin được chỉ giáo
file đính kèm minh họa: https://drive.google.com/file/d/0B0Tz2I4833XxQkh3al9BOFpDSVU/view
Giải quyết dễ nhất thì làm thế này:
B1: Đặt đặt đối tượng A vào 1 layer riêng.
B2: Vào layout ."VPLAYER"---> Chọn "Freeze--> Gõ tên Layer bạn muốn khóa ---> Selec những Viewport muốn khóa Layer đó. --> Enter+ Enter ...
Đọc thêm thảo luận này nếu muốn chi tiết. http://www.cadviet.com/forum/topic/165092-nho-cac-cao-thu-giai-dap-mot-so-van-de-hoc-bua-ve-cad/?do=findComment&comment=405624
- 1
-
Nói chung bạn cần cái gì ? Cái lisp bạn nói là Lisp nào của các anh chị trên diễn đàn.
Chọn text thì sao ko bật FIlter lên. ? Chọn trong hay ngoài thì sao ko sử dụng Select kết hợp : WP : chọn đối tượng nằm trong vùng đa giác / CP : Chọn đối tượng nằm trong và giao cắt với đa giác.
-
Cảm ơn bạn đã trả lời, nhưng mình không hề sử dụng lisp đổi màu nào cả, chỉ sử dụng trimdim thôi. Mình setup autocad về mặc định thì trở lại bình thường, nhưng xài một lúc lại bị lỗi! :(
Trong 1 lisp có thể chứ N lisp con bên trong -_- -_- Bác @Hà nói chắc ko sai đâu bạn.
Ko thì bạn có thể kiểm tra lisp đưa vào:
1: Nếu đã load nhiều lisp thì gỡ tất cả ra, sau đó lại load lại từng lisp 1. Gõ lệnh 1...2...3. xem bị đổi mầu ko.
2: Nếu chỉ load 1 lisp: Vào lisp đó tìm kiếm từ khóa C:1 , C:2 xem có không, nếu có thì gỡ nó ra. ( Đoán là bạn đang bị trường hợp này)
-
LISP ghi diện tích. Lệnh GB.
(defun c:gb(/ p ss S frome cur toe tt)
(setq p (getpoint "\n Pick 1 diem vao mien trong hinh kin :")ss (ssadd) S 0)(while p(setq frome (entlast))(command ".boundary" p "")(setq toe (entlast));;(setq cur frome)(while (not (eq cur toe))(setq cur (entnext cur)ss (ssadd cur ss))(command "area" "S" "O" ss "" "")(setq tt (getvar "area"))(setq S (+ S tt)))(command "area" "A" "O" "L" "" "")(setq tt (getvar "area"))(setq S (+ S (* tt 2)))(sssetfirst ss ss)(setq p (getpoint "\n Pick 1 diem vao mien trong hinh kin :")))(if (> (sslength ss) 0)(progn(princ (strcat "Area = " (rtos S 2 2)))(setq ptext (getpoint "Moi ban chon diem chen Text ^^ \n"))(command "-text" ptext "" "" (strcat "A=" (rtos S 2 2) " M2" )))(alert "\n Ban chua Pick vao mien kin nao ca "))(command "erase" ss "")(Princ))- 1
-
LISP SS của bạn có vấn đề gì đó mà mình ko chạy được. Nhưng mình cũng sửa 1 lisp cũ của bác nào đó theo ý bạn. Tác dụng tương tự.
bác nào rảnh tay giúp em thêm đoạn xuất kết quả vào text có tiền tố, hậu tố
vd: A=10m2, L=2m
lisp này cũ cũng của các bác trên 4room nhưng em tìm mãi không được lisp ưng ý trên 4room hoặc không xài được. mong các bác giúp
sẵn tiện lisp "ss" bác có thể sửa để cộng nhiều đối tượng tính diện tích không ak
lisp của em đây. Thx các bác
https://drive.google.com/drive/folders/0B18eA56nV_lKQjJIZmpLclltT0k?usp=sharing
;; free lisp from cadviet.com
;;; this lisp was downloaded from http://webcache.googleusercontent.com/search?q=cache:R2kCctDqgFAJ:www.cadviet.com/forum/index.php%3Fshowtopic%3D16363+%22t%C3%ADnh+di%E1%BB%87n+t%C3%ADch+nhi%E1%BB%81u+h%C3%ACnh%22&cd=1&hl=vi&ct=clnk&gl=vn&source=www.google.com.vn(defun c:gb(/ p ss S frome cur toe tt)(setq p (getpoint "\n Pick 1 diem vao mien trong hinh kin :")ss (ssadd) S 0)(while p(setq frome (entlast))(command ".boundary" p "")(setq toe (entlast));;(setq cur frome)(while (not (eq cur toe))(setq cur (entnext cur)ss (ssadd cur ss))(command "area" "S" "O" ss "" "")(setq tt (getvar "area"))(setq S (+ S tt)))(command "area" "A" "O" "L" "" "")(setq tt (getvar "area"))(setq S (+ S (* tt 2)))(sssetfirst ss ss)(setq p (getpoint "\n Pick 1 diem vao mien trong hinh kin :")))(if (> (sslength ss) 0)(progn(princ (strcat "Area = " (rtos S 2 2)))(setq ptext (getpoint "Moi ban chon diem chen Text ^^ \n"))(command "-text" ptext "" "" (strcat "A=" (rtos S 2 2) " M2" )))(alert "\n Ban chua Pick vao mien kin nao ca "))(command "erase" ss "")(Princ)) -
LISP TL.
LISP TL đã sửa.
;; free lisp from cadviet.com;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=33112(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)));;;--------------------------------------------------------------------(defun C:TL( / ss L e)(setqss (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))L 0.0)(vl-load-com)(while (setq e (ssname ss 0))(setq L (+ L (length1 e)))(ssdel e ss))(setq ptext (getpoint "Moi ban chon diem chen Text ^^ \n"))(command "-text" ptext "" "" (strcat "L=" (rtos L 2 2) " M" ))(princ))- 1
-
LISP TL đã sửa.
Em xin lỗi bác, em add nhầm folder. Em chỉ nhờ 2 lisp này thôi ak
https://drive.google.com/drive/folders/0B18eA56nV_lKanAwdjlPb1dlaWc?usp=sharing
cái lisp "ss" bác cho em cộng nhiều đối tượng được thì em cảm ơn nhiều
;; free lisp from cadviet.com;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=33112(defun Length1(e) (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e)));;;--------------------------------------------------------------------(defun C:TL( / ss L e)(setqss (ssget (list (cons 0 "LINE,ARC,CIRCLE,POLYLINE,LWPOLYLINE,ELLIPSE,SPLINE")))L 0.0)(vl-load-com)(while (setq e (ssname ss 0))(setq L (+ L (length1 e)))(ssdel e ss))(setq ptext (getpoint "Moi ban chon diem chen Text ^^ \n"))(command "-text" ptext "" "" (strcat "L=" (rtos L 2 2) " M" ))(princ)) -
Chạy LISP này thử coi.
Của bạn đây:
(defun c:congtext ()(setq object (ssget '((0 . "*TEXT")))number 0)(repeat (sslength object)(progn(setq number (+ number (atof (cdr (assoc 1 (entget (ssname object 0)))))))(ssdel (ssname object 0) object)));;;;; Chon text thay ket qua(setq sstext (car (entsel "Chon Text Thay Ket Qua ")))(setq sstext (subst (cons 1 (rtos number 2 2)) (assoc 1 (entget sstext)) (entget sstext)))(ENTMOD sstext)(princ))- 1
- 1
-
Xin chào các anh. Mình tìm trên diễn đàn thấy cái này gần như cái em mong muốn. Nhờ các anh sửa giúp em bước sau cùng là output ra text mới thì sửa lại thành chọn text có sãn để thay đổi kết quả. Em cảm ơn cá anh.
Ví dụ: Text 1: 22.5
Text 2: 10,5
Text 3: 2,34.
Khi đó cộng Text 1 và Text 2 lại cho kết quả nhấp chọn vào Text 3 sẽ cho kết quả Text 3: 23,00
Em cảm ơn các anh.
Của bạn đây:
(defun c:congtext ()(setq object (ssget '((0 . "*TEXT")))number 0)(repeat (sslength object)(progn(setq number (+ number (atof (cdr (assoc 1 (entget (ssname object 0)))))))(ssdel (ssname object 0) object)));;;;; Chon text thay ket qua(setq sstext (car (entsel "Chon Text Thay Ket Qua ")))(setq sstext (subst (cons 1 (rtos number 2 2)) (assoc 1 (entget sstext)) (entget sstext)))(ENTMOD sstext)(princ))- 2
-
bác ơi lisp báo lỗi bác ạ
Thay chút xíu đoạn code của bác VUVUZELA:
(setq ss (ssget '((-4 . "<AND") (0 . "LEADER") (-4 . "AND>"))) ;_ ssget
Bằng:
(setq ss (ssget '((-4 . "<or") (0 . "LEADER") (0 . "MULTILEADER") (-4 . "or>"))) ;_ ssget
;) ;) Rồi chạy lại coi kết quả nhé ;) ;)
-
Không phải chờ MOD giải đáp đâu! Vấn đề này cũng đã được nói nhiều, do lỗi diễn đàn.
Mình cũng bị dính nhiều, tạm thời giải quyết bằng cách: tự mình đáp lại bài viết của mình (dùng nút: Lựa chọn trích dẫn, trả lời)... Hoặc xóa đi làm lại.
Ketxu
Mod k giải quyết được vấn đề này bạn nhé :(
:blink: :blink: :blink: Cảm giác như con bù nhìn trông chim ăn lúa anh ạ. Hix.
-
Em đang có thắc mắc: Mong MOD giải đáp
Em cũng mới tham gia vào diễn đàn, và cũng học hỏi từ diễn đàn khá nhiều.
Nhưng gần đây em tham gia bình luận ở 1 số bài, hoặc viết thử 1 số đoạn lisp trả lời bình luận . Nhưng khi nhìn màn hình mày tính thì chẳng thấy đoạn Lisp đi sau đâu , cả lisp dạng Text hay file .LSP đều thế. Còn khi em đăng nhập bằng điện thoại thì mới thấy được đoạn lisp em trả lời.
Em thử dùng máy tính của người khác cũng vậy. Thế nên giờ em tưởng em là con bù nhìn ý :wacko: :wacko: :wacko: Làm cách nào để mọi người nhìn thấy bài em mà sửa lisp cho em ???
Như bài gần đây là:
Mấy anh chị vào thử bằng điện thoại rồi vào bằng máy tính thì biết ạ. (TT).
-
MTEXT đây ^_^
(defun c:test () (if (not (setq ss (ssget '((0 . "*TEXT"))))) (princ "\nBan da khong chon TEXT.") (progn (setq n 0) (setq sum 0) (repeat (sslength ss) (setq value (cdr (assoc 1 (entget (ssname ss n))))) (setq value (ATOF value)) (setq sum (+ sum value)) (setq n (1+ n)) ) ;progn (setq pt (getpoint "\nChon diem chen text: ")) (entmake (list (cons 0 "MTEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbMText") (cons 10 (trans pt 1 0)) (cons 40 (cdr (assoc 40 (entget (ssname ss 0))))) (cons 8 (cdr (assoc 8 (entget (ssname ss 0))))) (cons 7 (cdr (assoc 7 (entget (ssname ss 0))))) (cons 1 (rtos sum)) (cons 50 0) ) ) ) ) (princ) )
Thiếu mất 2 dòng của bác ^_^ ^_^ Quên cũng chưa check thử.
Mà hỏi bác xíu. Làm sao khi Entmake mình biết các giá trị DXF nào bắt buộc phải có khi tạo 1 đối tượng mới nhỉ :D :D
Ko biết thì hỏi, muốn giỏi phải học thôi @@
- 1
- 2
-
Thank bác.
Tuy nhiên vẫn chưa đúng ý e lắm :)
+ Chỗ output bác có thể sửa giúp e thành định dạng mtext như yêu cầu ko? hiện tại bác đang để định dạng là text.
+ Một cái nữa là layer của output bác có thể lấy như layer của đối tượng đầu tiên ko? (layer của mtext "2").
Thay đoạn code (cons 0 "TEXT") của bác Bee thành:
(cons 0 "MTEXT")
(cons 8 (cdr (assoc 8 (entget (ssname ss 0)))))
:) :) :)
- 2
-
Lisp cần sửa là lisp nào trong khoảng 2 chục cái lisp vậy?
---->
Bạn bảo bị đau , nhưng ko nói bị đau ở đâu thì bác sĩ biết bạn đang bị bệnh gì ? !!!!!
- 1
-
Nhờ các cao thủ viết giúp mình lisp như tựa đề.
Ví dụ cụ thể:
Trên bản vẽ có sẵn 2 hoặc nhiều text (hoặc mtext), chẳng hạn 2(text), 3(mtext) và 4(text).
Mình gõ lệnh (ví dụ "cộng"), click chọn vào 2, 3, và 4, sẽ được kết quả là 9, và output ra 1 mtext. Mình sẽ click chọn vị trí để output mtext này trên bản vẽ.
Cảm ơn nhiều! :D
Hóng nào hóng nào ^^
Bác check thử xem được chưa.
(defun c:congtext ()(prompt "Moi Dai Ca Chon Text Giup Em ^^")(setq sslist (ssget '((-4 . "<or")(0 . "TEXT")(0 . "MTEXT")(-4 . "or>"))))(setq number (SSLENGTH sslist)sum 0)(repeat number(setq Value (atof (cdr (assoc 1 (entget (ssname sslist 0))))))(setq sum (+ sum value))(ssdel (ssname sslist 0) sslist))(setq ptext (getpoint "Moi Dai Ca chon diem chen Text ^^ \n"))(command "-text" ptext "" "" (rtos sum 2 2))(princ))- 2
-
trước e có thấy thằng bạn dùng lệnh này, mà giờ e ko thấy ai dùng nữa. bác cho e hỏi: nó có gì hay ho ko ạ?
Ko rõ ở phần tranh luận nào trong diễn đàn, nhưng mình đã đọc và trải nghiệm: MVSETUP được đánh giá là tính năng thừa trong cad sau bao nhiêu phiên bản nâng cấp các năm. :) :) Mà trải nghiệm sống là mấy người bạn của bạn đó, cứ hỏi trực tiếp có khi lại tuyệt hơn ko? :wacko: :wacko:
http://www.cadviet.com/forum/topic/61349-hoi-lenh-mvsetup/
http://www.cadviet.com/forum/topic/14764-cach-gioi-han-ban-ve-bang-lenh-mvsetup/
-
Anh chịu khó gõ vào ô tìm kiếm dòng chữ "lệnh mvsetup" sẽ thấy có nhiều bài viết về vấn đề anh hỏi....
Em tưởng lệnh MVSETUP được mọi người xếp vào lịch sử của CAD rồi chứ nhỉ ;) ;) ;). Giờ chắc cũng ko mấy ai dùng nữa.
-
tiện thể cho em hỏi em co file cad nhưng không biết tỷ lệ như thế nào. Giờ muốn vẽ tỷ lệ 1/2000 thì làm ntn a.
Vấn đề này được bàn luận khá nhiều trên diễn đàn rồi. .
http://www.cadviet.com/forum/topic/8397-van-de-ve-ty-le-ban-ve/ đọc ở bình luận #6
Còn nữa, nếu bạn mới sử dụng cad, nên tìm hiểu khái niệm: Vẽ trên Model- In trên layout.
-
Re (Render) lại bản vẽ. - hoặc gõ "Z" Enter --> "A" Enter. (Lệnh Zoom All)
-
Hỏi Ketxu xem nào ^_^
Thôi thì hỏi đơn giản 1 chút. Mấy anh học món này như thế nào ạ.
Lisp đơn thuần ko sử dụng Vla- Acet... thì em còn có thể đọc sách để biết.
Vậy những thứ nâng cao kia em phải học như thế nào, mong mấy anh chỉ bảo.
Nếu có sách học thì hay :( :( Chứ tự dưng thấy 1 lisp nào đó, mò ra tìm hiểu nó là gì thì ko hệ thống cho lắm.
-
Chào ketxu. Cao thủ thì không dám nhận, những điều mình biết cũng đủ dùng thôi. :) Mình cũng mong được học hỏi từ diễn đàn và của mọi người.
Các anh- chị- bác trai- bác gái..... toàn sử dụng "Vla" với "Acet" "Geom" các kiểu, còn em thì chưa hiểu gì..... :wacko: :wacko: :wacko: Tự thấy bản thân còn gà quá. !!!
Có bác nào dạy em phần này ko, em nhận mang xôi gà đến học hỏi !!! (TT)
Xin Lisp Tự Động Các Text Có Tọa Độ Nằm Trong Vùng Khép Kín
trong AutoLisp
Đã đăng · Trả lời báo cáo
Lisp cộng số trong Text