Chuyển đến nội dung
Diễn đàn CADViet
kts.ngocquan

Với MPLot

Các bài được khuyến nghị

Từ lệnh MPLot của CadViet mình có 1 chút yêu cầu nhỏ nhờ ae giúp đỡ :

- Mình muốn xin File Lisp của của nó để add vào file lisp của mình rồi mới chuyển sang .vlx

Các bạn CADViet giúp mình 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
Từ lệnh MPLot của CadViet mình có 1 chút yêu cầu nhỏ nhờ ae giúp đỡ :

- Mình muốn xin File Lisp của của nó để add vào file lisp của mình rồi mới chuyển sang .vlx

Các bạn CADViet giúp mình nhé

Tiếc là không đượ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
Từ lệnh MPLot của CadViet mình có 1 chút yêu cầu nhỏ nhờ ae giúp đỡ :

- Mình muốn xin File Lisp của của nó để add vào file lisp của mình rồi mới chuyển sang .vlx

Các bạn CADViet giúp mình nhé

 

MPlot: In hàng loạt bản vẽ trong cửa sổ hình chữ nhật

Dùng để in r hàng, c cột bản vẽ kích thước như nhau. Bản đầu tiên từ vị trí x0, y0

Kích thước mỗi cửa sổ rộng w, cao h. Khoảng cách các cửa sổ theo phương x là dw, phương y là dh

 

(defun Plot1 (ll ur)
(command "-PLOT" "Yes" "Model" "HP LJ 5200" "A4" "Millimeters" "Portrait" "No"
     "Window" ll ur "1/200" "Center" "Yes" "sl.ctb" "Yes" "Wireframe" "no" "Yes" "Yes")
)

(defun MPlot (r c x0 y0 w h dw dh / i j x y om)
(setq y y0 om (getvar "OSMODE"))
(setvar "OSMODE" 0)
(repeat r
	(setq x x0)
	(repeat c
		(Plot1 (list x y) (list (+ x w) (+ y h)))
		(setq x (+ x dw))
	)
	(setq y (+ y dh))
)
(setvar "OSMODE" om)
)

Vì mỗi máy có cấu hình khác nhau, để in đúng các bạn đánh lệnh

Command: -PLOT

Detailed plot configuration? [Yes/No] : y

....

Sau đó nhập các từ khóa cần thiết. Để lấy cấu hình đúng, khi nào trong dòng Command có dấu [?]

các bạn đánh ? thì cad sẽ list các cấu hình, sau đó copy vào vị trí tương ứng trong hàm Plot1

 

 

 

VD về cách dùng hàm này

Lệnh MPlot: In hàng loạt bản vẽ

Dùng in r hàng, c cột với điểm đầu, kích thước cửa sổ và khoảng cách của các hàng, cột pick trên bản vẽ

 

Lệnh MPlotA: In hàng loạt bản vẽ đặt cạnh nhau trong vùng hình chữ nhật

Dùng in toàn bộ bản vẽ trong vùng hình chữ nhật. Pick điểm để chọn điểm gốc ,kích thước mỗi cửa sổ và khoảng cách của các hàng, cột

 

 

(defun C:MPlot ( / r c p0 p1 p2 x y dw dh)
(setq r (getint "\nSo hang :") c (getint "\nSo cot :"))
(setq p0 (getpoint "\nGoc duoi trai cua so dau tien:") x (car p0) y (cadr p0))
(setq p1 (getpoint "\nGoc tren trai cua so dau tien:"))
(setq p2 (getpoint "\nGoc duoi trai cua so hang 2 cot 2:"))
(setq w (- (car p1) x) h (- (cadr p1) y))
(setq dw (- (car p2) x) dh (- (cadr p2) y))
(if (or (<= w 0) (<= h 0))
	(progn (princ "\nNhap sai diem") (quit))
)
(if (<= dw 0 ) (setq c 1))
(if (<= dh 0 ) (setq r 1))
(MPlot r c x y w h dw dh )
)

Nếu các cửa sổ in nằm cạnh nhau thì dùng hàm sau sẽ tự động tính số hàng và cột

(defun C:MPlotA ( / r c p0 p1 p2 x y w h dw dh)
(setq p0 (getpoint "\nGoc duoi trai cua so dau tien:") x (car p0) y (cadr p0))
(setq p1 (getpoint "\nGoc tren phai cua so dau tien:"))
(setq p2 (getpoint "\nGoc tren phai cua so cuoi cung:"))
(setq w (- (car p1) x) h (- (cadr p1) y))
(setq dw (- (car p2) x) dh (- (cadr p2) y))
(if (or (<= w 0) (<= h 0) (<= dw 0) (<= dh 0))
	(progn (princ "\nNhap sai diem") (quit))
)
(setq r (fix (+ 0.5 (/ dh h ) )))
(setq c (fix (+ 0.5 (/ dw w ) )))
(MPlot r c x y w h w h )
)

Hoặc dùng kiểu load trực tiếp code từ cửa sổ lisp

(MPlot 2 3 0 0 42000.0 59400.0 42000.0 59400.0)

  • Vote tăng 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

Command: mpl

 

Select objects: Specify opposite corner: 2 found

1 was filtered out.

 

Select objects:

 

1=1.00

Yes or No, please.

 

Yes or No, please.

; error: An error has occurred inside the *error* functionFunction cancelled

Save changes to page setup [Yes/No]?

Proceed with plot [Yes/No] : n

Lệnh MPL của mình bị lỗi như thế này , có ai giúp mình đc ko, mình cảm ơn nhiều 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

Mình vừa cài Mplot của bác Nguyễn Hoành. Minh chon in kieu Block, chọn Plot selected thi bị báo lỗi sau:

 

"Command: mpl

Select objects: Specify opposite corner: 9 found

 

Select objects:

 

1=1.36

Yes or No, please.

 

Yes or No, please.

; error: An error has occurred inside the *error* functionFunction cancelled

Save changes to page setup [Yes/No]? y Proceed with plot [Yes/No] :

Effective plotting area: 290.70 wide by 413.81 high

Effective plotting area: 290.70 wide by 354.12 high

 

Plotting viewport 4.

 

Plotting viewport 1.

 

Grid too dense to display"

 

Không có bản in nào ra cả.

Bác Nguyễn Hoành xem gíup mình nhé.

Thanks.

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

Mình cũng viết vài lisp chuyên dùng cho cầu đường. Có viết lệnh in. Chưa xem lisp MPlot của bác NH nên không biết, nhưng in theo kiểu in liên tục của TDT thì mệt lắm, phải sắp xếp khung in, rồi xoay cùng 1 chiều, đúng kích cỡ, nên nhiều khi muốn in khung lớn nhỏ lộn xộn hoặc cái dọc cái nằm ngang, rồi cái nào trước cái nào sau nữa ... nên cũng hơi bất tiện. Bạn nào cần pm yahoo mình gởi cho. Vì mình mới mày mò nên còn kém không dám post lên đây mấy bác cười cho.

  • Vote tăng 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

À tiện đây cho mình hỏi, vì sao một số bản vẽ dùng hàm vlax-curve-getPointAtDist thì điểm bắt chính xác trên curve. Một số nó lại bắt không chính xác. Nghĩa là nó không nằm trên Curve.

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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×