Đến nội dung


Hình ảnh

Lsp Thay Lệnh Open


  • Please log in to reply
6 replies to this topic

#1 Han Tinh

Han Tinh

    biết vẽ pline

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

Đã gửi 21 August 2015 - 08:45 PM

Chào mọi người mình muốn dùng đoạn lisp để thay cho lệnh open của cad, mong moi người chỉ giúp

Mình viết như này nó không chạy được, không biết nó còn thiếu gì nữa: 

 

(defun C:opp ()

(command "open")
)
 
Sau khi gõ lệnh opp thì nó xuất hiện như hình này. 
 
127675_untitled_1.jpg

  • 0

#2 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 21 August 2015 - 10:22 PM

Mục đích của bạn là để làm gì, hay dùng lisp cho nó oai?
  • 0

* 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.


#3 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 21 August 2015 - 10:52 PM

 

Chào mọi người mình muốn dùng đoạn lisp để thay cho lệnh open của cad, mong moi người chỉ giúp

Mình viết như này nó không chạy được, không biết nó còn thiếu gì nữa: 

 

(defun C:opp ()

(command "open")
)
 
Sau khi gõ lệnh opp thì nó xuất hiện như hình này. 
 
127675_untitled_1.jpg

 

Thix oai thì làm thế này :D :

(defun c:opp (/ sd fn) (vl-load-com)
(setq sd (getvar "SDI")) (setvar "SDI" 0)
(setq fn (getfiled "SELECT FILE" "" "dwg" 8))
(vla-activate (vla-open (vla-get-documents (vlax-get-acad-object)) fn))
(setvar "SDI" sd) (princ))

Muốn vào thẳng đường dẫn thì sữa : (setq fn (getfiled "SELECT FILE" "D:\\XXX\\BIEN PHAP THI CONG\\" "dwg" 8))


  • 3

#4 Han Tinh

Han Tinh

    biết vẽ pline

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

Đã gửi 22 August 2015 - 06:46 AM

Không để oai đâu bạn pphung183 ơi! Mình muốn mở nhiều bản vẽ cùng lúc thôi. Nhưng mình dùng lsp của bạn thì nó hiện lên hôp thoại như mình cần rồi, nhưng mình chon nhiều file để mở thì không được bạn giúp mình chỗ này với


  • 1

#5 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 August 2015 - 07:06 AM

Không để oai đâu bạn pphung183 ơi! Mình muốn mở nhiều bản vẽ cùng lúc thôi. Nhưng mình dùng lsp của bạn thì nó hiện lên hôp thoại như mình cần rồi, nhưng mình chon nhiều file để mở thì không được bạn giúp mình chỗ này với

Bạn thử lsp này nhé! 

http://www.cadviet.c...2_testnil_1.lsp

 

 


  • 1

#6 pphung183

pphung183

    biết dimstyle

  • Members
  • PipPipPipPipPip
  • 384 Bài viết
Điểm đánh giá: 425 (tốt)

Đã gửi 22 August 2015 - 11:36 AM

Không để oai đâu bạn pphung183 ơi! Mình muốn mở nhiều bản vẽ cùng lúc thôi. Nhưng mình dùng lsp của bạn thì nó hiện lên hôp thoại như mình cần rồi, nhưng mình chon nhiều file để mở thì không được bạn giúp mình chỗ này với

Nâng cấp 1 chút : Chọn 1 file bản vẽ sẽ mở tất cả các file có trong thư mục :

(muốn mở các file có chọn lọc thì xem cái lisp hoành tráng theo link bác TUE_NV đã post :)).

(defun c:opp (/ sd fn path lstfile) (vl-load-com)
(setq sd (getvar "SDI")) (setvar "SDI" 0)
(setq fn (getfiled "SELECT FILE" "" "dwg" 8))
(setq path (vl-filename-directory (findfile fn)))
(setq lstfile (vl-directory-files path "*.dwg") 
lstfile (vl-remove (getvar "dwgname") lstfile))
(foreach f lstfile (vla-open (vla-get-documents (vlax-get-acad-object)) 
(strcat path "\\" f)))
(setvar "SDI" sd) (princ))


  • 2

#7 Han Tinh

Han Tinh

    biết vẽ pline

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

Đã gửi 22 August 2015 - 01:16 PM

Thanks 2 bạn nhiều lắm! Mỗi lsp có nét hay riêng. 


  • 0