

Biet ve CAD
-
Số lượng nội dung
474 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
71
Bài đăng được đăng bởi Biet ve CAD
-
-
11 phút trước, naturooo đã nói:Bác cho em hỏi có cách nào chọn được file cad đang mở để viết hàm "write-line" vào được không nhỉ. Bình thường mở file theo đường dẫn rồi viết write-line. Cảm ơn bác!
Bạn nên hỏi trong chủ đề hỏi đáp autolisp ấy ^^
Ý bạn chắc là lấy full name của các file cad đang mở à, đây là hàm lấy danh sách các file cad đang mở
(vl-load-com)
(setq *doc* (vla-get-Documents (vlax-get-acad-object)))
(vlax-for d *doc* (princ (strcat "\n" (vla-get-FullName d))))
-
Vào lúc 27/4/2020 tại 07:03, Danh Cong đã nói:@Biet ve CAD, anh tư vấn cho bạn ấy kìa :))
hehe, mỗi người đều có nhu cầu khác nhau @Danh Cong à ^^ lisp các bạn khác trên diễn đàn cũng rất tốt rồi, tuy nhiên bạn nào thích in được các file có đấu tiếng Việt, hay ngôn ngữ như Hàn, Trung...thì liên hệ mình nhé ^^
tiện giới thiệu lại video lisp
-
3
-
-
35 phút trước, thiep đã nói:Hề hề hề, tất cả dữ liệu đề bài đưa ra đều làm được.
Việc định danh tên block "làm tâm" hay việc lấy dữ liệu ngoài thay thế toạ độ block "làm tâm" cũng không khó.
Việc định danh tên block theo giá trị thuộc tính để đo khoảng cách cũng không khó.
Chỉ khó là người nhờ viết lisp lại ra đầu bài không rõ ràng làm người viết lisp phải khốn khổ. Đưa bản vẽ này làm mẫu, lại dùng bản vẽ khác, mà bản vẽ khác cũng sai về toạ độ điểm chèn block mới khốn khổ.
Đầu tư viết 1 lisp như thế này rất vất vả, lấy được 4 field từ 2 đối tượng tính căn bậc hai của tổng 2 bình phương của hiệu từng cặp 4 field này không đơn giản chút nào, bây giờ thì không cần dùng nữa, đôi khi cảm thấy nản.
Dạ vâng bác, em cũng biết lisp nên cảm thấy được cái khó, thấy bác viết rất nhiệt tình, cách thức dùng lisp cũng rất chu đáo lường trước được các tình huống mà người yêu cầu chưa đưa ra. Nên em chỉ nói vui như vậy gây ra hiểu nhầm ^^
-
1
-
-
17 phút trước, lethanh2004 đã nói:Chào Bạn Biet ve CAD …! Không biết tuổi tác bạn thế nào cho dễ xưng hô . nhưng tôi nói với bạn thế này
Có thể kiến thức bạn hơn tôi . Bạn học hành hơn tôi . nhưng bạn hãy vẫn dụng kiến thức của mình để giúp chính bạn , nếu có time thì giúp đỡ mọi người . còn nếu không thì lên im lặng , đừng chọc gậy bánh xe kiểu như vậy . Cảm ơn đã đọc
Thân …!
xin Info để lúc nào tặng bạn cuốn sách ^^
Không nên suy nghĩ tiêu cực như vậy bạn à, hãy hiểu hết ý nghĩa đã rồi mới phê bình hay đại loại như vậy bạn
Bạn cũng đăng nhiều bài, xin lisp cũng nhiều mà cách bạn yêu cầu cảm thấy ko nhất quán, để được đoạn lispp như bác Thiệp viết ko phải đơn giản, nên phải sửa lisp hay làm lisp mới với yêu cầu chưa rõ ràng, chưa có sự đầu tư kỹ lưỡng của người yêu cầu thì thành ra là làm khó người viết
Bạn hiểu ý mình chứ, suy nghĩ kỹ lưỡng trước khi yêu cầu bạn nhé
-
Bạn thử dùng lệnh STARTUP đặt về 2, STARTMODE về 0 xem nhé, vừa khởi động cad nhanh lại đỡ rối mắt
Còn muốn về như cũ bạn tham khảo helpp của cad
-
1
-
-
42 phút trước, thiep đã nói:.....................
Bắt được con Kiến rồi, giờ bắt tiếp con Voi to hơn thử xem có được không ^^
-
1
-
1
-
-
Vào lúc 18/4/2020 tại 08:46, VNG_Vodanh đã nói:bác còn cái lisp này không, share em cái
Tải về http://www.mediafire.com/file/fx3phih5s44or91/chuyen_font_c_cf_-_free.fas/file
Xem thêm các lisp tiện ích khác:
*** Lisp in nhanh bản vẽ: https://www.youtube.com/playlist?list=PL05frYPpT5LLRHAE9W-osYor9Jbe7nOg-
*** Tiện ích hay khác: https://www.youtube.com/playlist?list=PL05frYPpT5LJUXFg-LYSgxvSmxzIPdoqA
-
1 giờ} trướ}c, vietduong234 đã nói:Cảm ơn @Biet ve CAD, tại trước đây mình vẽ không bị như vậy, khảng thời gian gần đây có hiện tượng này, mỗi lần mở 1 file là nó lại lưu một File acad.exe ở Task manager. Mình vẽ TK viễn thông, mỗi ngày mở - tắt nhiều file nên rất khó chịu. Không có cách nào khắc phục ah bạn?
Bạn gõ lệnh SDI và dặt là 0 thử xem có dc ko ( sau đó phải tắt cad đi bật lại nhé )
-
Bạn dùng lệnh SELECTIONANNODISPLAY set về 0 là ok, muốn hiện lại set về 1
-
1
-
-
acad.exe không phải là virut bạn nhé, đó là file chạy của chương trình autocad, mở file dwg tất nhiên acad.exe phải chạy, bạn chọn nó và end process
sở dĩ có 2 cái acad.exe chạy là do bạn khi tắt cad, nó chưa thoát hẳn, và bạn đã mở file dwg khác lên. khi cad chưa thoát hẳn thì tất nhiên ko thể đổi tên thư mục chứa file rồi
-
1
-
-
vừa cài thử 2018 vẫn in bt, giờ bạn rảnh thì liên hệ mình qua https://www.facebook.com/cad.bietve nhé, mình thử dùng ultraview xem trên máy bạn xem
-
1
-
-
34 phút trước, Duy Anh Trần đã nói:EM chỉnh sửa đưa link lên rồi đó
- Bác xem rúp em với
- Em thử mở máy có cad 2014 thì in không vấn đề gì nhưng cứ mở 2018 để in là bị
Khó bắt bệnh phết, thử cad 2007 và 2020 đều bt
bạn thử file này xem nhé: https://drive.google.com/file/d/1AikPbVQtSLjb7tO0T4FRsirpYTJ2yz7g/view?usp=sharing
Không được bạn thử lưu về dxf và chuyển lại dwg xem
-
Gửi file cad mẫu lên bạn ơi
- File cad này khi copy ra các máy khác có bị không ?
- Thử trên các phiên bản cad khác nhau xem ?
-
1
-
-
2 giờ trước, lethanh2004 đã nói:Bác thiệp có thể chỉ chi tiết cho em hơn đc ko . do mục đích e làm không nhiều đối tượng và cũng không gần như bác mô tả ạ
File cad đính kèm đã làm mẫu bạn 1 cái ATT, tuy nhiên đây là cách thủ công, còn muốn dùng lisp cho nhanh thì phải nhờ các bác trên này viết giùm
-
12 giờ trước, thiep đã nói:Tại bảng Properties, khi người dùng thay đổi thuộc tính từ TextOverwrite sang Measurement hoặc ngược lại của textDim thì biểu thức field đã gán cho text có sẵn sẽ không update được vì nó chỉ update giá trị của thuộc tính đã định sẵn trong biểu thức field, không update việc thay đổi thuộc
Bác @thiep nhiệt tình quá, thấy bác làm đoạn lisp đoạn lisp trên cũng khá tốn công, Like bác ^^
Sao bác ko quy định chung cho cách sử dụng lisp, chứ sao mà xử lý hết tình huống của cad được, TextOverwrite và Measurement là 2 giá trị độc lập nhau cơ mà
Quy định luôn là lisp chỉ dùng cho TextOverwrite hoặc Measurement, nếu 1 trong 2 giá trị này thay đổi cho nhau thì người dùng phải dùng lại lisp để lấy lại thông tin, như vậy mọi người đều hiểu và sử dụng dúng chức năng của lisp
-
Mình làm thử đoạn lisp này, áp dụng cho các đối tượng liền nhau ( cách nhau 1 khoảng 0.1) và dùng cho 1 cụm các đối tượng đó
(defun C:jp ( / o) (setq o (getvar 'PEDITACCEPT)) (setvar 'PEDITACCEPT 1) (vl-cmdf "PEDIT" "M" (ssget) "" "J" 0.1 "") (vl-cmdf "-OVERKILL" (entlast) "" "O" 0.1 "D") (setvar 'PEDITACCEPT o) )
-
1
-
-
Vào lúc 6/4/2020 tại 10:34, gia_bach đã nói:dùng lệnh OVERKILL và JOIN là đc, cần gì tới LISP.
Làm theo cách bác @gia_bachgợi ý là ok mà, nhanh gọn nhẹ
1. dùng lisp chọn đối tượng
2. dùng lệnh PE rồi join
3. sau đó overkill là ngon lành ( bước này sẽ xóa tất cả các điểm cùng nằm trên 1 line)
-
12 giờ trước, Han Tinh đã nói:Thanks bạn!
Theo hướng dẫn của bạn @ Doan Nguyen Van mình cũng làm được rồi, tuy nhiên chỉ làm được với các chi tiết có kích thước thật. Trường hợp của mình là các chi tiết có các kích thước na ná nhau, do đó mình edit các kích thước này (edit dim) thì nó không được. Vậy mình nhờ các bạn giúp đỡ cho trường hợp các kích thước này bị edit.
Lisp mình tự nhận text override của dim mà, chắc bạn chưa thử ^^
-
18 giờ trước, Han Tinh đã nói:Thanks bạn đã hướng dẫn, tuy nhiên sau khi làm thử thì thấy là: nó chỉ thay đổi text khi ta thay đổi chiều dài dim (phải vẽ tỉ lệ 1:1) nếu ta vẽ phi tỉ lệ thì nó không được. Bạn có thể viết giúp mình 1 lisp dùng cho trường hợp này được không vậy bạn. Gõ lệnh xong, sau đó chọn tất cả các dim rồi chọn text (hình vẽ có thể là phi tỉ lệ hoặc đúng tỉ lệ). Thanks bạn!
Lisp đã có rồi mà bạn, phiền các bạn khác phải mắc công viết lại làm chi, lisp liên quan đến Field và Formula cũng toát mồ hôi hột ra ấy chứ ^^
Bạn tham khảo video này , thay vì chọn Rectang bạn có thể chọn đối tượng là Dim
-
1
-
-
18 phút trước, zaqzaqzaqzaq đã nói:sử dụng lisp của a vanngeonhuxua thì làm được rồi nhưng em nhờ a ấy sửa lại 1 chút để sử dụng cho tiện
Bạn thử xem nhé ( mình sửa lại dựa lisp trên của vanngeonhuxua )
(vl-load-com) (defun l-coor2l-pt (lst flag / ) (if lst (cons (list (car lst) (cadr lst) (if flag (+ (if (vlax-property-available-p ename 'Elevation) (vlax-get ename 'Elevation) 0.0) (caddr lst)) (if (vlax-property-available-p ename 'Elevation) (vlax-get ename 'Elevation) 0.0) ) ) (l-coor2l-pt (if flag (cdddr lst) (cddr lst)) flag) ) ) ) (defun c:Change_MLine ( / js ent ename l_pt cur_lay closed lst ss) (princ "\nPlease Select a MLine ") (if (setq ss (ssget '((0 . "MLINE")))) (progn (setq js 0) (repeat (sslength ss) (setq ent (ssname ss js) ename (vlax-ename->vla-object ent) l_pt (l-coor2l-pt (vlax-get ename 'Coordinates) T) cur_lay (getvar "CLAYER") ) (setvar "clayer" (vlax-get ename 'Layer)) (command "_.mline" "S" (vla-get-MlineScale ename)) (foreach n l_pt (command "_none" (trans n 0 1))) (command "") (vla-put-Justification (vlax-ename->vla-object(entlast)) (vla-get-Justification ename)) (entdel ent) (setq js (1+ js)) ) (setvar "CLAYER" cur_lay) )) (prin1) )
-
1
-
-
15 phút trước, zaqzaqzaqzaq đã nói:Anh ơi, em làm thử theo cách của anh nhưng khi làm bước 3 thì style mà em copy sang nó tự động đổi tên ạ. nó k trùng với mlstyle1 của bản vẽ mới a ạ
Chắc phải dùng đến lisp thôi, Mline cad nó ko cho đổi
-
1
-
-
1 giờ} trướ}c, zaqzaqzaqzaq đã nói:anh ơi lisp này hay quá ạ. nhưng khi em thực hiện thì kích thước Mline cũng thay đổi theo setup hiện hành, nên nếu muốn giữ nguyên thì phải mỗi loại kích thước 1 lần. a có thể sửa lại để khi em thực hiện lệnh Change_MLine thì nó vẫn giữ nguyên kích thước của đối tượng Mline không ạ? Và có thể chọn nhiều Mine 1 lúc không a (hiện tại phải chọn từng Mline một)? Thank a!!!
1.Bạn mở 1 bản vẽ mới tinh lên, tạo mlstyle1 với các tính chất giống hệt mlstyle2 ( nếu bản vẽ hiện hành có rồi thì copy sang và mlstyle2 đổi tên thành mlstyle1)
2.Bên bản vẽ hiện hành chọn tất cả các mline có mlstyle1
3. sau đó cut sang bản vẽ mới
4. tiếp theo là đổi tên mlstyle1 thành mlstyle2
5. Copy tất cả sang bản vẽ hiện hành là ok
-
1
-
-
Chỉnh mặc định thì chưa biết cách, bạn dùng chức năng ở hình này cũng ok mà, áp dụng khi bạn đã in ok bản vẽ trước đó
Không thì có thể tham khảo lisp này nhé:
https://www.cadviet.com/forum/topic/175810-lisp-in-nhiều-bản-vẽ-model-layout-folder/
-
1
-
-
4 giờ trước, nhimret đã nói:về thuật toán thì lisp quá chuẩn rồi, nhờ bác chỉnh hộ đơn vị về m2, và khi chọn text kết quả thì dòng text sẽ hiện ra là S="ket qua" m2
Cám ơn bác nhiều.
Lisp Tính toán của mình cũng có chức năng này ^^:
-
1
-
Nhờ viết Lisp đánh dấu đối tượng
trong AutoLisp
Đã đăng · Trả lời báo cáo
1 chú thì rectang và polyline, 1 chú thì region và rectang , vậy mà vẫn hiểu được nhau mới tài ^^