18/11/2025

Lisp miễn phí import nhiều trang PDF vào bản vẽ AutoCAD | Multiple pages import PDF into AutoCAD drawing | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản
   

Thông tin thêm: 👉👉👉

Lệnh MPDFimportA3

Cho phép Import nhiều trang PDF vào bản vẽ AutoCAD hiện hành.

Tác giả: Ks.Hiệp (nhóm AutoLISP hỗ trợ vẽ Cad)


Lưu ý: Các tệp tin PDF và đường dẫn đến tệp tin không được sử dụng tiếng Việt có dấu!


1 Thêm file MPDFimportA3.lsp

Lưu mã sau dưới dạng tệp tin MPDFimportA3.lsp
Code:
(defun C:MPDFimportA3 (/ fn pg pg1 pgN pgN0 pt initpt cell cmde imp cols row gap spacing-h spacing-v)
	;Created by Ks.Hiep @Nhom AutoLISP ho tro ve Cad
	;YouTUBE channel https://www.youtube.com/results?search_query=iqc+channel
	(setq fn (getfiled "Select PDF file to import" "" "pdf" 8))
	(if fn
		(progn
			(setq cmde (getvar "cmdecho"))(setvar "cmdecho" 0)
			(if (/= (type pgN0) 'INT) (setq pgN0 999))
			(setq initpt (getpoint "\nInitial insertion point <view center>: "))
			(if (not initpt)(setq initpt (getvar "VIEWCTR")))

			;; Giữ nguyên cell như code gốc
			(setq cell (getdist initpt "\nPage cell width <default A3/Letter>: "))
			(if (not cell)(setq cell (if (zerop (getvar "measurement")) 8.5 210.0)))

			;; Thêm tham số gap - khoảng hở giữa các trang
			(setq gap (getdist "\nGap between pages <50mm>: "))
			(if (not gap)(setq gap (if (zerop (getvar "measurement")) 1.97 50.0))) ; 50mm or 1.97 inch

			;; Tính khoảng cách giữa các trang: A3 ngang (420mm) + gap (50mm) = 470mm
			(setq spacing-h (+ 420.0 gap))  ; Khoảng cách ngang cố định = 420 + 50 = 470mm
			(setq spacing-v (+ (* 420.0 1.414) gap))  ; Khoảng cách dọc = chiều cao A3 + gap

			;; Nếu đơn vị là imperial (inch), chuyển đổi
			(if (zerop (getvar "measurement"))
				(progn
					(setq spacing-h (/ spacing-h 25.4))  ; Convert mm to inch
					(setq spacing-v (/ spacing-v 25.4))
				)
			)

			(setq pg1 (getint "\nStart page # <1>: "))
			(setq pg (if pg1 pg1 1))
			(vl-catch-all-error-p (vl-catch-all-apply '(lambda ()
			(command "_-PDFIMPORT" "_Fi" fn "?" "*" nil)
			) nil))
			(setq pgN0 (read (getvar "LASTPROMPT"))) ; get number of pages
			(setq pgN (getint (strcat "\nEnd page # <" (itoa pgN0) ">: ")))
			(if (not pgN) (setq pgN pgN0))
			(initget "Import Attach")
			(setq imp (getkword "\nImport or attach [Import/Attach] <Import>: "))
			(if (not imp)(setq imp "Import"))
			(initget "All")
			(setq cols (getint "\nNumber of side-by-side pages for a grid [All] <All>: "))
			(if (or (not cols)(= cols "All")) (setq cols 999))
			(setq col 0  row 0  pt initpt)

			(princ "\nWorking...\n")
			(while (and (not (wcmatch (getvar "LASTPROMPT") "*'`?'`.")) (<= pg pgN)) ; paging...
			(princ pg)(princ ": ")
			(if (= col cols)(setq row (1+ row)  col 0)) ; reset

			;; Tọa độ luỹ tiến: cột * 470mm, hàng * (594+50)mm
			(setq pt (mapcar '+ initpt (list (* col spacing-h) (* row spacing-v -1.0) 0)))

			(vl-catch-all-error-p 
			(vl-catch-all-apply '(lambda ()
			 (if (= imp "Attach")
				;; GIỮ NGUYÊN scale factor như code gốc
				(command "_-pdfattach" fn (itoa pg) pt (/ cell 8.5) 0.0) ; pt scale rot
				(command "_-pdfimport" "_Fi" fn (itoa pg) pt (/ cell 8.5) 0.0)
			 )
			 )
			 nil
			))
			(setq pg (1+ pg)  col (1+ col))
			) ; while
			(command) ;cancel
			(princ (strcat "\n" imp "ed " (itoa (1- pg)) " pages in " (itoa (1+ row)) " row(s)."))
			(princ (strcat "\nSpacing: " (rtos spacing-h 2 2) " x " (rtos spacing-v 2 2)))
			(setvar "cmdecho" cmde)
		)
	)
	(princ)
)

(defun hackqs(/)  (vl-load-com)
	(vl-cmdf "start" "https://www.youtube.com/results?search_query=iqc+channel")
	(princ)
)
(repeat 1
	(hackqs)
)


Link tải (MediaFire)




---------------------------------------------------------------------------------------------
Ứng dụng được phát triển bởi đội ngũ AutoLISP Thật là đơn giản - Tác giả ứng dụng in D2P

    

Mọi thông tin xin liên hệ Fanpage AutoLISP Thật là đơn giản!
Cảm ơn bạn đã theo dõi!

Không có nhận xét nào:

Đăng nhận xét

Lisp miễn phí import nhiều trang PDF vào bản vẽ AutoCAD | Multiple pages import PDF into AutoCAD drawing | AutoLISP Reviewer

Ứng dụng được phát triển/Sưu tầm bởi đội ngũ AutoLISP Thật là đơn giản     Thông tin thêm: 👉👉👉