tien2005
-
Số lượng nội dung
513 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
59
Bài đăng được đăng bởi tien2005
-
-
5 giờ trước, davidbeckkham123 đã nói:đây là lisp IMF
Bạn dùng notepad mở file lisp tìm đến dòng lệnh
xht (+ xht (abs (car (mapcar '- p2 p1))))rồi sửa thành
xht (+ xht (abs (car (mapcar '- p2 p1))) 1000)lưu file là được rồi
-
1
-
-
Vào lúc 17/11/2023 tại 23:51, Xuân Lộc đã nói:Bác @tien2005em bị lỗi hiểm thị độ phân giải 4k win 11 ạ. Mong bác fix lỗi hiểm thị và lisp có chế độ đổi ngôn ngữ thuần tiếng việt ko ạ
Bạn chụp màn hình rồi đưa lê đây xem như thế nào. ngôn ngữ thuần Việt dễ bị lỗi hiển thị do ngôn ngữ lisp của CAD
-
(defun getDxfs(lstId en)(vl-remove-if-not '(lambda(x)(vl-position (car x) lstId)) (entget en)))code trên cũng của cadviet
ex: (getDxfs '(10 42)(car(entsel "\nDoi tuong :")))
kq:( (10 598937.0 1.21987e+006) (42 . 0.0) (10 599034.0 1.21995e+006) (42 . -0.368232) (10 599320.0 1.21995e+006) (42 . 0.0) ....)
-
1
-
-
Vào lúc 29/10/2023 tại 10:17, Tranvu2803 đã nói:Cám ơn a đã chia sẻ lisp rất hay này, e đang có vấn đề khi in nhiều bản vẽ với screening khác nhau thì phải làm sao ạ
Lisp chỉ in các bản vẽ được chọn trong file, không can thiệp vào file định nghĩa nét in *.CTB *.STB
Trong file có nhiều screening thì Bạn cài đặt theo màu, mỗi màu tương ứng với các giá trị screening khác nhau
-
Vào lúc 20/8/2023 tại 10:46, tannguyen291 đã nói:Em đang thử viết một hàm Multi plot theo ý muốn của bản thân.
Đang gặp vấn đề lớn ở hàm (vla-PlotToFile (vla-get-Plot adoc) fileplot)
Nếu chỉ có 1 đối tượng để chọn in thì lisp hoạt động tốt.
Tuy nhiên khi chiếu đến đối tượng thứ 2 để in thì sảy ra hiện tượng máy in trong cad đang hoạt động (máy in chạy nền). Gọi hàm vla-PlotToFile sảy ra lỗi
Em nghĩ rằng cần đợi đến khi plot thứ nhất xong thì mới plot lần thứ 2. nhưng làm sao để biết status plot để đợi
Các bác dùng cách nào để giải quyết vấn đề này chỉ em với.
Bạn chú ý đến biến hệ thống BACKGROUNDPLOT = 0
-
1
-
-
Vào lúc 31/5/2023 tại 11:06, PoTi đã nói:Bác review cách dùng và cách sửa lệnh trong lisp cho e tham khảo với
-
@khuong_qn2003Bạn in theo block? vào trong block kiểm tra xem có đối tượng nào nằm ngoài phạm vi khung tên, chú ý khi dùng chuột chọn các MTEXT sẽ thấy các nút màu xanh bao quanh mtext nằm ngoài phamjvi khung tên
-
2
-
-
@HUY2Knó là 1 chế độ chọn đối tượng trong acad giống như chọn window, cross. Để chọn theo fence thì khi yêu cầu chọn đối tượng bạn nhập chữ F rồi sau đó chon, nó giống như bạn vẽ đương pline. các đối tượng nào bị pline cắt qua và nhìn thấy được trên màn hình thì đối tượng đó được chon
-
@HUY2Kdùng select order: Bạn chọn từng khung, cái nào chọn trước thì in trước, hoặc chọn theo fence, cái nào đầu fence thì thì trước
-
Vào lúc 31/3/2023 tại 09:30, tannguyen291 đã nói:Em cũng gửi 1 hàm mình viết
;bul = t : bulge extend ;bul = nil : tanget extend (defun PointPerpendicular (ent point bul / para startpt endpt pt0 lstex lst lstpt obj cen ) (setq ent (vlax-ename->vla-object ent) pt0 (vlax-curve-getclosestpointto ent point) para (vlax-curve-getparamatpoint ent pt0) startpt (vlax-curve-getstartpoint ent) endpt (vlax-curve-getendpoint ent) ) (setq lstex (vlax-safearray->list (vlax-variant-value (vla-Explode ent)))) (cond ( (equal pt0 startpt 1e-8) (setq lst (list (car lstex))) ) ( (equal pt0 endpt 1e-8) (setq lst (list (last lstex))) ) ((= para (fix para)) (setq para (fix para) lst (list (nth (1- para) lstex) (nth para lstex)) ) ) ) (foreach item lst (if (eq (vla-get-Objectname item) "AcDbLine") (setq obj (vlax-ename->vla-object (makeXline (vlax-curve-getstartpoint item) (vlax-curve-getendpoint item))) lstpt (cons (vlax-curve-getclosestpointto obj point) lstpt) obj (vla-delete obj) ) (if bul (setq obj (entget (vlax-vla-object->ename item)) obj (vlax-ename->vla-object (entmakex (list '(0 . "CIRCLE") (assoc 10 obj) (assoc 40 obj)))) lstpt (cons (vlax-curve-getclosestpointto obj point) lstpt) obj (vla-delete obj) ) (setq cen (vlax-safearray->list (variant-value (vla-get-Center item))) obj (polar pt0 (+ (/ pi 2) (angle cen pt0)) 1) obj (vlax-ename->vla-object (makeXline pt0 obj)) lstpt (cons (vlax-curve-getclosestpointto obj point) lstpt) obj (vla-delete obj) ) ) ) ) (if lstpt (setq lstpt (vl-sort lstpt '(lambda (a b) (< (distance a point) (distance b point)))) pt0 (car lstpt) lst nil ) ) (mapcar 'vla-delete lstex) pt0 ) (defun makeXline (p1 p2 / p3 ) (entmakex (list '(0 . "XLINE") '(100 . "AcDbEntity") '(100 . "AcDbXline") (cons 10 p1) (cons 11 (mapcar '(lambda (a b) (/ (- a b) (distance p1 p2))) p1 p2))) ) )và một hàm test
(defun c:test (/ cur pt px) (setq cur (car (entsel "\nSelect Pline")) pt (getpoint "\nPick point") px (PointPerpendicular cur pt nil) ;extend tanget nil ;extend bulge t ) (entmake (list '(0 . "LINE") (cons 10 pt) (cons 11 px)) ) (princ) )tuy nhiên sảy ra vấn đề khi dùng phương thức bulge
Bạn thử theo hướng:
khi tìm được điểm P gần nhất trên pline thì xem P có trùng với điểm đầu/cuối pline. Nếu trùng thì xem điểm đầu/cuối pline có/không bulge thì phát triển đường tròn/đường thẳng rồi tìm lại P
-
Vào lúc 22/12/2022 tại 16:08, fixilanh đã nói:Cảm ơn bạn đã chia sẻ. Mình không in dc bản vẽ xref khung tên. Mong bạn hướng dẫn trường hợp này ạ.
"Error: bad argument type: numberp: nil"
Vào lúc 24/12/2022 tại 10:33, Nguyễn Hà Huy đã nói:hiện tại lisp phần chọn theo hướng thì e chỉnh từ trái qua phải ok rồi còn phần selec oder tự chọn xắp xếp kiểu nào vẫn bị loại thứ tự khổ giấy khác nhau a tien2005 ạ
xref trong bản vẽ cũng là block nên in bình thường
select order: Bạn chọn từng khung, cái nào chọn trước thì in trước, hoặc chọn theo fence, cái nào đầu fence thì thì trước
-
Hy vọng là dxf 11 của chủ thớt không bị sửa
-
37 phút trước, naturooo đã nói:Bạn phải click chọn từng khung tên 1 theo thứ tự từ trái sang phải chứ k phải là quét chọn từ trái sang phải đâu. Mình vừa thử trên bản vẽ của bạn vẫn in ra đúng thứ tự đấy.
Chọn theo fence vẫn được nhé, cái nào đầu fence thì in trước
-
1
-
-
-
-
Vào lúc 2/12/2022 tại 19:21, AlexJuina đã nói:Bạn phải linh hoạt sử dụng để in
1. in từng đợt 1-13, 14-24, ...
2. move các phần cần in để sắp xếp đúng thứ tự đã được hỗ trợ của lisp
-
Vào lúc 1/12/2022 tại 16:53, Nguyễn Hà Huy đã nói:Bác tien2005 kiểm tra giúp em, file có nhiều tỉ lệ khung tên in ra nó bị loạn không theo thứ tự bản vẽ, nó xếp theo khung cùng cỡ với nhau, e dùng ver 1.11 Mới nhất
Bạn chú ý bài đầu tiên có hướng dẫn : Điểm cơ sở để sắp xếp là góc dưới bên trái của hình chữ nhật bao block hoặc polyline
-
17 giờ trước, marvel đã nói:Bạn chưa hiểu.
Mình muốn in nhiều bản thông qua lisp, in trên cad để ra giấy luôn, chứ vạ gì muốn in PDF.
Vì mình bảo các lisp đều k in được nhiều bản nên mới phải dùng cách xuất PDF rồi mới lấy nó để in thành nhiều bản.
Ví dụ mình cần 10 bộ hồ sơ bv. Nếu dùng lisp sẽ phải đặt 10 lệnh, vì nó k in 1 lần đc 10 bộ. Còn nếu qua PDF thì chỉ 2 lệnh, 1 lệnh xuất PDF và 1 lệnh in PDF ra 10 bản luôn.
Nên bây giờ đang mong có cách nào để 1 lệnh thông qua lisp mà in ra đc 10 bộ luôn ấy. Mình thử lisp của bạn thì chưa đáp ứng được, bạn có thể ktra lại xem sao
Bạn đã sử dụng lisp chưa mà nói lisp không thể in 10 bộ trong 1 lần in.
1 lấn có thể in n bản vẽ và sắp xếp theo thứ tự mà Bạn đã chọn
-
Thì ra Bạn muốn in ra file PDF.
Tìm và cài đặt chương trình tạo máy in pdf ảo (vd: pdf factory pro) và chọn máy in này khi in, nhiều bản vẽ in thì tự động gộp vào 1 file pdf
Nếu in trực tiếp ra giấy thì lisp trên cho Bạn chọn cách nhân bản theo kiểu 1/1 2/2 3/3 hay 1/2/3 1/2/3
-
22 giờ trước, trinhcongquang đã nói:Dùng lệnh như thế nào vậy anh. Hay autolisp đây ah
copy dòng trên dán vào dòng command và enter rồi chọn dim muốn chuyển về hiện hành
còn muốn dùng lisp thì đây
(defun c:dimexit () (command "._-dimstyle" "_restore" ""(entsel))(princ))
-
1
-
-
-
Bạn có thể dùng lệnh chon dim trên bản vẽ thành din hiện hành:
(command "._-dimstyle" "_restore" ""(entsel))
-
1
-
-
-
29 phút trước, dinhtuong18 đã nói:đây ạ,em gửi file,các bác xem giúp em với ạ
em cảm ơnvới ví dụ trong file bạn gửi thì không có lisp làm đâu nhé, vì quá khó để đúng ý của bạn

MPL-MultiPlot _ in nhiều bản vẽ trong file DWG (Layout + Model)
trong AutoLisp
Đã đăng · Trả lời báo cáo
Đã cập nhật tại bài #1: thêm các lựa chọn sắp xếp khi in, lưu cấu hình của giao diện ra file (trước khi in Bạn phải chọn máy in, giấy và nét in cho phù hợp), fix lỗi
@AlexJuina