Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
vuminhchau

[Nhờ viết] mã code đường dẫn load lisp

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

nhờ các bác viết giúp em 1 đoạn code để gắn vào lisp như sau:

load DUONGDAN: "ổ W\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\")

mục đích của em là để trên dữ liệu dùng chung, ai cũng có thể load lisp chạy được nhưng không copy về máy riêng của mình được. vì lúc đó đường dẫn sẽ sai và nó sẽ không hiểu khi load tại máy của mình! nó chỉ hiểu khi load với đường dẫn trên. cảm ơn các bá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

nhờ các bác viết giúp em 1 đoạn code để gắn vào lisp như sau:

load DUONGDAN: "ổ W\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\")

mục đích của em là để trên dữ liệu dùng chung, ai cũng có thể load lisp chạy được nhưng không copy về máy riêng của mình được. vì lúc đó đường dẫn sẽ sai và nó sẽ không hiểu khi load tại máy của mình! nó chỉ hiểu khi load với đường dẫn trên. cảm ơn các bác!

Ý tưởng của bạn = load một lisp duy nhất, lisp sẽ tự động load các lisp, vlx, hatch, các loại đường chăng, nếu vậy thì hiểu được và giúp được

Có điều làm xong thì nó vẫn bị :Hack thôi

Chỉ cần ấn F2 lên nó hiện đường dẫn bị lỗi do không tìm thấy folder, người dùng chỉ cẩn lần theo folder trong máy bạn copy cả thư mục là xong

Bạn nên tìm cách bảo mật khác đi

  • 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

nếu có đoạn đó thì em có thể chuyển lisp sang .vlx và người dùng khác không thể sửa đường dẫn được, mà đường dẫn đó chỉ hiểu là lisp phải để ở ổ W như đường dẫn trên. cảm ơn các bác đã quan tâm và giúp em 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

nhờ các bác viết giúp em 1 đoạn code để gắn vào lisp như sau:

load DUONGDAN: "ổ W\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\")

mục đích của em là để trên dữ liệu dùng chung, ai cũng có thể load lisp chạy được nhưng không copy về máy riêng của mình được. vì lúc đó đường dẫn sẽ sai và nó sẽ không hiểu khi load tại máy của mình! nó chỉ hiểu khi load với đường dẫn trên. cảm ơn các bác!

nếu có đoạn đó thì em có thể chuyển lisp sang .vlx và người dùng khác không thể sửa đường dẫn được, mà đường dẫn đó chỉ hiểu là lisp phải để ở ổ W như đường dẫn trên. cảm ơn các bác đã quan tâm và giúp em nhé!

haiza,

mem này vừa "mót được con trâu" của anh 2 lúa nào đó thả long nhong ngoài đồng,

tính mang ra công viên quây thêm 1 cái chuồng là thành chủ "chuồng trâu"

 

Bác nào muốn dòm ngó thì xin mời "mua vé tham quan" 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

Đến cái đường dẩn cũng ko biết "gắn" thì lisp chắc chắn ko phải tự viết. Keo kiệt làm gì với người khác?

  • 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

thực ra các bác nghĩ có vẻ hơi nặng lời với em, em muốn để dùng chung trên dữ liệu chung trong tổ mà muốn làm phải lên cty, còn mang về thì không được để khuyến khích làm việc trong giờ làm, còn về thì chơi thôi không làm!

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

thực ra các bác nghĩ có vẻ hơi nặng lời với em, em muốn để dùng chung trên dữ liệu chung trong tổ mà muốn làm phải lên cty, còn mang về thì không được để khuyến khích làm việc trong giờ làm, còn về thì chơi thôi không làm!

if (tồn tại thư mục hay file nào đó)

Progn {load lisp abc ....}

Progn (princ "hôm nay nghỉ ")

  • 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

if (tồn tại thư mục hay file nào đó)

Progn {load lisp abc ....}

Progn (princ "hôm nay nghỉ ")

cảm ơn bác đã chỉ! có phải thế này không bác:

if (W\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp)

Progn {load lisp cadviet.lsp}

Progn (princ "lam duoc roi")

như thế này nó không hiểu!

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

Muốn kiểm tra sự tồn tại của file thì dùng hàm findfile

Ý anh Duy là như thế này này bạn:

(if(findfile "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp")
 (progn
(load "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp"))
 (progn (princ "\nKhong ton tai file")
		(princ))
 )

Bạn thử kiểm tra lại xem đúng ý bạn chưa, mình thấy cách của anh Duy rất hay, cảm ơn anh

Bạn ấy trả lời như vậy chắc cũng không đáng ném đá đâu mọi người

  • 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

Ý anh Duy là như thế này này bạn:

(if(findfile "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp")
 (progn
(load "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp"))
 (progn (princ "\nKhong ton tai file")
	(princ))
 )

Bạn thử kiểm tra lại xem đúng ý bạn chưa, mình thấy cách của anh Duy rất hay, cảm ơn anh

Bạn ấy trả lời như vậy chắc cũng không đáng ném đá đâu mọi người

 

Em dùng đoạn mã này ở trong lisp, khi findfile mặc dù file không nằm ở đúng đường dẫn đó nhưng sao nó vẫn hiểu lệnh khi load lisp để ở vị trí khác đường dẫn anh ạ!

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

Trường hợp này tôi chỉ gợi ý không viết và chỉnh giùm vì tôi vẫn không thích cách làm và ko thấy thuyết phục bởi lý do chủ topic đưa ra.

  • 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

Bạn có thể gởi lisp đó lên được không?

Em trích 1 phần trong đó:

nếu em đặt đoạn code trên lên như vậy thì có đúng không ạ!

vì em muốn là lisp chỉ hiểu khi để đúng đường dẫn đó, còn để trỗ khác thì khi load lisp nó sẽ không hiểu lệnh!

(if(findfile "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp")
 (progn
(load "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\cadviet.lsp"))
 (progn (princ "\nKhong ton tai file")
 (princ))
 )
========================================
(defun c:CC (/ SO CHON SL I KQ TEN CS A); chuong trinh cong cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can CONG")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq I 0)
 (setq KQ 0)
 (while (< I SL)
(progn
 	(setq TEN (ssname CHON I))
 	(setq CS (entget TEN))
 	(setq SO (atof (cdr (assoc 1 CS))))
 	(setq KQ (+ KQ SO))
 	(setq i (+ i 1))
) 	; end progn
 ) 	; end while    
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
) 	; end defun
(defun c:TRR (/ SO CHON SL I KQ TEN CS A)
	; chuong trinh tru cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can TRU")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq TEN (ssname CHON 0))
 (setq CS (entget TEN))
 (setq SO (atof (cdr (assoc 1 CS))))
 (setq KQ SO)
 (setq i 1)
 (while (< i SL)
(progn
 	(setq TEN (ssname CHON i))
 	(setq CS (entget TEN))
 	(setq SO (atof (cdr (assoc 1 CS)))))
 	(setq KQ (- KQ SO))
 	(setq i (+ i 1))
) 	; end progn
 ) 	; end while    
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
) 	; end defun
(defun c:NH (/ SO CHON SL I KQ TEN CS A); chuong trinh nhan cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can NHAN")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq I 0)
 (setq KQ 1)
 (while (< I SL)
(progn
 	(setq TEN (ssname CHON I))
 	(setq CS (entget TEN))
 	(setq SO (atof (cdr (assoc 1 CS))))
 	(setq KQ (* KQ SO))
 	(setq i (+ i 1))
) 	; end progn
 ) 	; end while    
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
) 	; end defun
(defun c:CH (/ SO CHON SL I KQ TEN CS A); chuong trinh CHIA cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can CHIA")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq TEN (ssname CHON 0))
 (setq CS (entget TEN))
 (setq SO (atof (cdr (assoc 1 CS))))
 (setq KQ SO)
 (setq i 1)
 (while (< i SL)
(progn
 	(setq TEN (ssname CHON i))
 	(setq CS (entget TEN))
 	(setq SO (atof (cdr (assoc 1 CS))))
 	(setq KQ (/ KQ SO))
 	(setq i (+ i 1))
) 	; end progn
 ) 	; end while    
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
) 	; end defun

(DEFUN C:DC1 (/ A B DTD CHON DT KC) ; DIEU CHINH 1 CANH SONG SONG DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
	"\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN DI CHUYEN")
 (SETQ CHON (ssget))
 (SETQ B (GETPOINT "\n CHON HUONG CAN DI CHUYEN "))
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (SETQ KC "1")
 (if (< DT DTD)
(progn
 	(while (< DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
(progn
 	(while (> DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
 ) 	; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
) 	; end defun

(DEFUN C:DCS (/ A B DTD CHON DT KC) ; DIEU CHINH 1 CANH SONG SONG DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
	"\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH : |CLICK|"
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN DI CHUYEN")
 (SETQ CHON (ssget))
 (SETQ B (GETPOINT "\n CHON HUONG CAN DI CHUYEN "))
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (SETQ KC "0.001")
 (if (< DT DTD)
(progn
 	(while (< DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
(progn
 	(while (> DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
 ) 	; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
) 	; end defun
(DEFUN C:DCQ1 (/ A DTD CHON B C HUONG H DT)
	; DIEU CHINH 1 CANH QUAY QUANH MOT DIEM DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
	"\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN QUAY")
 (SETQ CHON (ssget))
 (SETQ C (GETPOINT "\n CHON TAM QUAY "))
 (SETQ HUONG
 (GETSTRING
"\n CHON HUONG CAN QUAY: |CUNG CHIEU KIM (-)|; |NGUOC CHIEU (+)| "
 )
 )
 (IF (= HUONG "+")
(SETQ H "+1")
(SETQ H "-1")
 ) 	; end if
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (IF (< DT DTD)
(progn
 	(while (< DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
(progn
 	(while (> DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
 ) 	; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
) 	; end defun

(DEFUN C:DCQ (/ A DTD CHON B C HUONG H DT)
	; DIEU CHINH 1 CANH QUAY QUANH MOT DIEM DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
	"\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN QUAY")
 (SETQ CHON (ssget))
 (SETQ C (GETPOINT "\n CHON TAM QUAY "))
 (SETQ HUONG
 (GETSTRING
"\n CHON HUONG CAN QUAY: |CUNG CHIEU KIM (-)|; |NGUOC CHIEU (+)| "
 )
 )
 (IF (= HUONG "+")
(SETQ H "+0.001")
(SETQ H "-0.001")
 ) 	; end if
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (IF (< DT DTD)
(progn
 	(while (< DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
(progn
 	(while (> DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
)	; end progn
 	) 	; end while
) 	; end progn
 ) 	; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
) 	; end defun
(defun C:DKT (/)
(PRINC "\n")
;;;  (SETQ DT (SSGET))
;;; (setq Thoi 0)
;;;  (while (= Thoi 0)
;;;	(if (/= (setq DT
;;; 	(SSGET
;;;   	"\n 	CHON DOI TUONG TIEP THEO? NEU KHONG THI [ENTER] !!!"
;;; 	)
;;; 	)
;;; 	nil
;;; )
;;;  	(progn
;;; (command ".DIMALIGNED" "" "" DT "")
;;;  	)
;;;  	(setq Thoi 1)
;;;	) 	; end if
;;;  ) 	; end while
;;;  (SETQ A (GETPOINT
;;; 	"\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
;;;   )
;;;  )
;;;  (PRINC "\N DIEM A")
;;;  (PRINC A)
;;;   (setq P1 (STRCAT (RTOS (car A)) "," (RTOS (cadr A))))
;;;  (PRINC "\N DIEM P1")
;;;  (PRINC P1)
;;;  (setq P2 (list (+ (car A) 14) (- (cadr A) 14)))
 (SETQ CHON (SSGET))
 (PRINC CHON)
 (SETQ LEN (sslength CHON))
 (PRINC "\N ")
 (PRINC LEN)
 (SETQ I 0)
 (WHILE (<= I LEN)
(PROGN
(SETQ TEN (ssname CHON I))
(SETQ DT (entget TEN))
(PRINC DT)
(command ".DIMALIGNED" "" "" DT "" "")
(SETQ I (+ I 1))
 ); END PROGN
); END WHILE
 ); end defun
;;;  (alert
;;;	"  - - - - http://www.cadviet.com - - - -
;;;------------------------------------------------
;;;| 	Ghi chu 	|  Ten lenh |
;;;------------------------------------------------
;;;Chen HSKT cap GCN font Unicode  CG
;;;Chen HSKT cap GCN font VNI  CGV
;;;Chen HSKT tach dat font Unicode  TD
;;;Chen HSKT tach dat font VNI  TDV
;;;Chen HSKT tach dat co nha font Unicode TN
;;;Chen HSKT tach dat co nha font VNI TNV
;;;Tao hatch cho ranh nha       	H250
;;;Tao hatch cho thua dat     	HD
;;;Cat nhung doan giao nhau     	BL
;;;Tinh dien tich	DT
;;;Code kich thuoc ca doan   KT
;;;Code kich thuoc giua 2 diem  KTT
;;;Tinh dien tich 1/200         	t2
;;;Tinh nhieu dien tich 1/200   	tt2
;;;Tinh dien tich 1/250         	t25
;;;Tinh nhieu dien tich 1/250   	tt25
;;;Tinh dien tich 1/500         	t5
;;;Tinh nhieu dien tich 1/500   	tt5
;;;Tao hatch cho ranh nha       	h1000
;;;Tao hatch cho dat tam giao   	ht
;;;Tao net ranh dat             	mrd
;;;Tao net lo gioi              	mlg
;;;Tao net mep duong            	mmd
;;;Tao net tim duong            	mtd
;;;HiÓn thÞ ®é cao cña ®­êng ®ång møc cd
;;;N¾n d­êng b×nh ®é   ss
;;;ChÌn ®é cao cho diÓm mia ®Þa h×nh nn
;;;Söa ®é cao cho ®iÓm mia ®Þa h×nh sdc
;;;§­a TEXT CñA CAO §é lªn 3D  3d
;;;" )

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

Những dòng bạn trích là đúng. Nó sẽ không load file "Cadviet.lsp" nếu trật path, nhưng khi load file này thì nó vẫn load bình thường.

  • 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

Những dòng bạn trích là đúng. Nó sẽ không load file "Cadviet.lsp" nếu trật path, nhưng khi load file này thì nó vẫn load bình thường.

Không hiểu chủ pic hiểu ý anh Hà chưa, chủ pic mắc lỗi như thế này: đoạn code mình đưa cho bạn là dùng để làm chương trình con hoặc tự chạy để kiểm tra sự tồn tại của file ấn định sẵn tức (cadviet.lsp trong đường dẫn cố định cho sẵn) nếu có thì load lisp A,B,C nào đó(trong TH này là đồng thời là Cadviet.lsp luôn) nghĩa là toàn bộ phần "hồn" của lisp ( tức là "công sức " người viết các code lisp đó) phải được đặt trong file Cadviet.lsp này. Nghĩa là kiểm tra có file Cadviet.lsp thì load data trong file

Còn bạn load luôn một file chứa nhiều Code lisp thì Cad load cả luôn chứ còn gì nữa, code đầu tiên thì bỏ qua vì nil, còn các code sau có ảnh hưởng gì đâu

Mình dần thấy bạn không nên cố kiểu "đánh dấu bản quyền" này làm gì nữa. Làm mem Cadviet tinh thần chia sẻ thì hẹp hòi làm gì vài Code kia,

Bài toán của bạn nói chung là giải như thế này

file dưới đây thì đưa nhân viên

(if(findfile "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\ChayKybo.lsp")
 (progn
(load "W:\\MinhChau\\AutoCAD\\Tienich\\Thu Vien\\ChauKybo.lsp"))
 (progn (princ "\nKhong ton tai file")
 (princ))
 )

file dưới này thì đặt tên là ChauKybo.lsp bỏ vô thư mục W:\MinhChau\AutoCAD\Tienich\Thuvie\ChauKybo.lsp

========================================
(defun c:CC (/ SO CHON SL I KQ TEN CS A); chuong trinh cong cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can CONG")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq I 0)
 (setq KQ 0)
 (while (< I SL)
(progn
  (setq TEN (ssname CHON I))
  (setq CS (entget TEN))
  (setq SO (atof (cdr (assoc 1 CS))))
  (setq KQ (+ KQ SO))
  (setq i (+ i 1))
)  ; end progn
 )  ; end while  
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
)  ; end defun
(defun c:TRR (/ SO CHON SL I KQ TEN CS A)
 ; chuong trinh tru cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can TRU")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq TEN (ssname CHON 0))
 (setq CS (entget TEN))
 (setq SO (atof (cdr (assoc 1 CS))))
 (setq KQ SO)
 (setq i 1)
 (while (< i SL)
(progn
  (setq TEN (ssname CHON i))
  (setq CS (entget TEN))
  (setq SO (atof (cdr (assoc 1 CS)))))
  (setq KQ (- KQ SO))
  (setq i (+ i 1))
)  ; end progn
 )  ; end while  
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
)  ; end defun
(defun c:NH (/ SO CHON SL I KQ TEN CS A); chuong trinh nhan cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can NHAN")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq I 0)
 (setq KQ 1)
 (while (< I SL)
(progn
  (setq TEN (ssname CHON I))
  (setq CS (entget TEN))
  (setq SO (atof (cdr (assoc 1 CS))))
  (setq KQ (* KQ SO))
  (setq i (+ i 1))
)  ; end progn
 )  ; end while  
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
)  ; end defun
(defun c:CH (/ SO CHON SL I KQ TEN CS A); chuong trinh CHIA cac so roi gan text ra man hinh
 (princ "\n ")
 (princ "chon lan luot cac so can CHIA")
 (setq CHON (ssget))
 (setq SL (sslength CHON))
 (setq TEN (ssname CHON 0))
 (setq CS (entget TEN))
 (setq SO (atof (cdr (assoc 1 CS))))
 (setq KQ SO)
 (setq i 1)
 (while (< i SL)
(progn
  (setq TEN (ssname CHON i))
  (setq CS (entget TEN))
  (setq SO (atof (cdr (assoc 1 CS))))
  (setq KQ (/ KQ SO))
  (setq i (+ i 1))
)  ; end progn
 )  ; end while  
 (SETQ A (GETPOINT "Chon diem dat ket qua : "))
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos KQ 2 2))
 (princ)
)  ; end defun
(DEFUN C:DC1 (/ A B DTD CHON DT KC) ; DIEU CHINH 1 CANH SONG SONG DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
 "\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN DI CHUYEN")
 (SETQ CHON (ssget))
 (SETQ B (GETPOINT "\n CHON HUONG CAN DI CHUYEN "))
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (SETQ KC "1")
 (if (< DT DTD)
(progn
  (while (< DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
(progn
  (while (> DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
 )  ; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
)  ; end defun
(DEFUN C:DCS (/ A B DTD CHON DT KC) ; DIEU CHINH 1 CANH SONG SONG DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
 "\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH : |CLICK|"
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN DI CHUYEN")
 (SETQ CHON (ssget))
 (SETQ B (GETPOINT "\n CHON HUONG CAN DI CHUYEN "))
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (SETQ KC "0.001")
 (if (< DT DTD)
(progn
  (while (< DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
(progn
  (while (> DT DTD)
(progn
  (command ".offset" KC CHON B "")
  (COMMAND "ERASE" CHON "")
  (SETQ CHON (ssget "L"))
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
 )  ; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
)  ; end defun
(DEFUN C:DCQ1 (/ A DTD CHON B C HUONG H DT)
 ; DIEU CHINH 1 CANH QUAY QUANH MOT DIEM DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
 "\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN QUAY")
 (SETQ CHON (ssget))
 (SETQ C (GETPOINT "\n CHON TAM QUAY "))
 (SETQ HUONG
 (GETSTRING
"\n CHON HUONG CAN QUAY: |CUNG CHIEU KIM (-)|; |NGUOC CHIEU (+)| "
 )
 )
 (IF (= HUONG "+")
(SETQ H "+1")
(SETQ H "-1")
 )  ; end if
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (IF (< DT DTD)
(progn
  (while (< DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
(progn
  (while (> DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
 )  ; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
)  ; end defun
(DEFUN C:DCQ (/ A DTD CHON B C HUONG H DT)
 ; DIEU CHINH 1 CANH QUAY QUANH MOT DIEM DE CO DIEN TICH THEO Y MUON
 (PRINC "\n")
 (SETQ A (GETPOINT
 "\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
  )
 )
 (SETQ DTD (getreal "\n NHAP DIEN TICH CAN DIEU CHINH : "))
 (princ "\n CHON DUONG THANG CAN QUAY")
 (SETQ CHON (ssget))
 (SETQ C (GETPOINT "\n CHON TAM QUAY "))
 (SETQ HUONG
 (GETSTRING
"\n CHON HUONG CAN QUAY: |CUNG CHIEU KIM (-)|; |NGUOC CHIEU (+)| "
 )
 )
 (IF (= HUONG "+")
(SETQ H "+0.001")
(SETQ H "-0.001")
 )  ; end if
 (COMMAND "BOUNDARY" A "")
 (COMMAND "AREA" "O" (SSGET "L"))
 (COMMAND "ERASE" (SSGET "L") "")
 (SETQ DT (GETVAR "AREA"))
 (IF (< DT DTD)
(progn
  (while (< DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
(progn
  (while (> DT DTD)
(progn
  (command ".rotate" CHON "" C H "")
  (COMMAND "BOUNDARY" A "")
  (COMMAND "AREA" "O" (SSGET "L"))
  (COMMAND "ERASE" (SSGET "L") "")
  (SETQ DT (GETVAR "AREA"))
) ; end progn
  )  ; end while
)  ; end progn
 )  ; end if
 (command "-STYLE" "0" "VNI-AVO" "1" "1" "0" "N" "N" "N")
 (command ".text" "J" "BL" A "0" (rtos (GETVAR "AREA") 2 2))
 (PRINC)
)  ; end defun
(defun C:DKT (/)
(PRINC "\n")
;;;  (SETQ DT (SSGET))
;;; (setq Thoi 0)
;;;  (while (= Thoi 0)
;;; (if (/= (setq DT
;;;  (SSGET
;;;	"\n  CHON DOI TUONG TIEP THEO? NEU KHONG THI [ENTER] !!!"
;;;  )
;;;  )
;;;  nil
;;; )
;;;   (progn
;;; (command ".DIMALIGNED" "" "" DT "")
;;;   )
;;;   (setq Thoi 1)
;;; )  ; end if
;;;  )  ; end while
;;;  (SETQ A (GETPOINT
;;;  "\n CHON GIUA DOI TUONG CAN DIEU CHINH DIEN TICH :|CLICK| "
;;;   )
;;;  )
;;;  (PRINC "\N DIEM A")
;;;  (PRINC A)
;;;   (setq P1 (STRCAT (RTOS (car A)) "," (RTOS (cadr A))))
;;;  (PRINC "\N DIEM P1")
;;;  (PRINC P1)
;;;  (setq P2 (list (+ (car A) 14) (- (cadr A) 14)))
 (SETQ CHON (SSGET))
 (PRINC CHON)
 (SETQ LEN (sslength CHON))
 (PRINC "\N ")
 (PRINC LEN)
 (SETQ I 0)
 (WHILE (<= I LEN)
(PROGN
(SETQ TEN (ssname CHON I))
(SETQ DT (entget TEN))
(PRINC DT)
(command ".DIMALIGNED" "" "" DT "" "")
(SETQ I (+ I 1))
 ); END PROGN
); END WHILE
 ); end defun
;;;  (alert
;;; "  - - - - http://www.cadviet.com - - - -
;;;------------------------------------------------
;;;|  Ghi chu  |  Ten lenh |
;;;------------------------------------------------
;;;Chen HSKT cap GCN font Unicode  CG
;;;Chen HSKT cap GCN font VNI  CGV
;;;Chen HSKT tach dat font Unicode  TD
;;;Chen HSKT tach dat font VNI  TDV
;;;Chen HSKT tach dat co nha font Unicode TN
;;;Chen HSKT tach dat co nha font VNI TNV
;;;Tao hatch cho ranh nha    	H250
;;;Tao hatch cho thua dat  	HD
;;;Cat nhung doan giao nhau  	BL
;;;Tinh dien tich DT
;;;Code kich thuoc ca doan   KT
;;;Code kich thuoc giua 2 diem  KTT
;;;Tinh dien tich 1/200      	t2
;;;Tinh nhieu dien tich 1/200	tt2
;;;Tinh dien tich 1/250      	t25
;;;Tinh nhieu dien tich 1/250	tt25
;;;Tinh dien tich 1/500      	t5
;;;Tinh nhieu dien tich 1/500	tt5
;;;Tao hatch cho ranh nha    	h1000
;;;Tao hatch cho dat tam giao	ht
;;;Tao net ranh dat          	mrd
;;;Tao net lo gioi       		mlg
;;;Tao net mep duong     		mmd
;;;Tao net tim duong     		mtd
;;;HiÓn thÞ ®é cao cña ®­êng ®ång møc cd
;;;N¾n d­êng b×nh ®é   ss
;;;ChÌn ®é cao cho diÓm mia ®Þa h×nh nn
;;;Söa ®é cao cho ®iÓm mia ®Þa h×nh sdc
;;;§­a TEXT CñA CAO §é lªn 3D  3d
;;;" )

  • 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

cảm ơn các anh đã góp ý, cảm ơn anh quansla đã nhiệt tình giúp đỡ! em biết vấn đề này không hay, nhưng có 1 số lý do công việc nên mới vậy!

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

Đăng nhập để thực hiện theo  

×