Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
17 replies to this topic

#1 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 21 September 2012 - 11:18 PM

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!
  • 0

#2 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 22 September 2012 - 12:10 AM

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
  • 1

#3 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 September 2012 - 08:42 AM

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é!
  • 0

#4 HoaVien

HoaVien

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 22 September 2012 - 09:02 AM

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é ?!
  • 0

#5 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 22 September 2012 - 09:12 AM

Đế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?
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#6 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5679 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 22 September 2012 - 10:01 AM

VMC đọc kỹ hàm Load của autolisp là được
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#7 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 22 September 2012 - 10:02 AM

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!
  • 0

#8 HoaVien

HoaVien

    biết vẽ arc

  • Members
  • PipPip
  • 44 Bài viết
Điểm đánh giá: 12 (tàm tạm)

Đã gửi 22 September 2012 - 10:11 PM

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ỉ ")
  • 1

#9 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 September 2012 - 03:34 PM

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!
  • 0

#10 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 23 September 2012 - 09:22 PM

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

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#11 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 23 September 2012 - 10:49 PM

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
  • 1

#12 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 23 September 2012 - 11:11 PM

Ý 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 ạ!
  • 0

#13 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 24 September 2012 - 06:50 AM

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

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#14 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1360 (rất tốt)

Đã gửi 24 September 2012 - 08:34 AM

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.
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#15 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 24 September 2012 - 11:52 AM

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&#211;n th&#222; &#174;&#233; cao c&#241;a &#174;&#173;&#234;ng &#174;&#229;ng m&#248;c cd
;;;N&#190;n d&#173;&#234;ng b&#215;nh &#174;&#233; ss
;;;Ch&#204;n &#174;&#233; cao cho di&#211;m mia &#174;&#222;a h&#215;nh nn
;;;S&#246;a &#174;&#233; cao cho &#174;i&#211;m mia &#174;&#222;a h&#215;nh sdc
;;;&#167;&#173;a TEXT C&#241;A CAO &#167;&#233; l&#170;n 3D 3d
;;;" )

  • 0

#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5447 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 24 September 2012 - 12:19 PM

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.
  • 1

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#17 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 24 September 2012 - 01:16 PM

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&#211;n th&#222; &#174;&#233; cao c&#241;a &#174;&#173;&#234;ng &#174;&#229;ng m&#248;c cd
;;;N&#190;n d&#173;&#234;ng b&#215;nh &#174;&#233; ss
;;;Ch&#204;n &#174;&#233; cao cho di&#211;m mia &#174;&#222;a h&#215;nh nn
;;;S&#246;a &#174;&#233; cao cho &#174;i&#211;m mia &#174;&#222;a h&#215;nh sdc
;;;&#167;&#173;a TEXT C&#241;A CAO &#167;&#233; l&#170;n 3D 3d
;;;" )

  • 1

#18 vuminhchau

vuminhchau

    biết vẽ polygon

  • Members
  • PipPip
  • 72 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 24 September 2012 - 05:29 PM

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!
  • 0