Đến nội dung


Hình ảnh
* * * - - 4 Bình chọn

Giao diện hộp thoại trong AutoLisp


  • Please log in to reply
208 replies to this topic

#21 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 17 March 2008 - 04:38 PM

Mình chỉ mới biết tạo file *.sld thôi , chưa tạo được *.slb . Mình đã làm theo như file help nhưng máy cứ báo là nó không hiểu lệnh slidelib .

Bạn chưa đọc kỹ Help đó thôi:
The following operating system command line syntax constructs a slide library:
slidelib library [ < slidelist ]

Đó là lệnh nhập cho hệ điều hành chứ không phải cho Acad. Trong môi trường Acad, bạn có thể gọi lệnh của hệ điều hành thông qua: (command "shell")

Bạn tham khảo 2 lisp sau mình vẫn thường dùng để tạo *.sld và *.slb:
;;;--------------------------------------------------------------------------------------
(defun C:SLD();;;Make *.sld file
(command "mslide" (getstring "\nSlide name:"))
(alert "Finish make sld file")
)
;;;--------------------------------------------------------------------------------------
(defun C:SLB(/ Myname);;;Make *.slb file
(setq MyName (getstring "\nSLB file name:"))
(command "shell" (strcat "dir *.sld/b > " MyName ".txt"))
(command "shell" (strcat "slidelib " MyName " < " MyName ".txt"))
(alert "Finish make slb file")
)
;;;--------------------------------------------------------------------------------------
Toàn bộ kết quả nhận được (*sld và *.slb) nằm ở thư mục gốc của Acad. Bạn đọc code sẽ hiểu ra vấn đề và có thể chỉnh sửa chương trình theo ý bạn.
  • 0

#22 h2c

h2c

    biết vẽ ellipse

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

Đã gửi 17 March 2008 - 05:50 PM

Mình đã thử và vẫn chưa tạo được flie slb như mong muốn được , vẫn không điều khiển được nó . Có phải bản chất của slb là tập hợp các sld lại ? và tại sao phải dùng slb trong khi đã có sẵn sld rồi ?
  • 0

#23 roberto

roberto

    biết pan

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

Đã gửi 17 March 2008 - 09:02 PM

Các bác có thể cho em 1 lisp ví dụ về dialog được không ah . Khi đánh lệnh ABC.. gì đó thì sẽ hiện lên bảng dialog . 1 bên là có 3 dòng với nội dung "hình tròn" "hình vuông" "tam giác" , bên kia là slide của 3 hình đó . Khi mình click vào hình slide hay dòng chữ thì sẽ thực thi ngay lệnh chứ không cần phải nhấp ok . Tất nhiên sau khi click sẽ có giai đoạn nhập R đường tròn , cạnh hình vuông hoặc kích thước tam giác .
Lisp này để em học hỏi , chứ nhiều lisp trên máy quá phức tạp và rất dài , em còn học nhiều nên chưa hiểu hết .
Em cảm ơn rất nhiều .

Bạn thu đoạn code này xem,
Tự tạo lay file *.Sld nhé
"htron.sld"
"hvuong.sld"
" htamgiac.sld"
đặt đường dẫn ở đoạn này
" im (strcat "c:\\" image)" trong funtion (fill-im) mình đang để là ổ c:\
Hy vọng giúp được bạn. Mình buông súng lâu rồi nên bây giờ viết chắc củ chuối lắm <_<
Nếu bạn không muốn lặp lại main dialog thì bỏ phần "(while ( >= redia 2 )" ở C:show đi
thuty.dcl
thuty: dialog{
label= "thu image button";
:boxed_column {
:row{
:icon_ima{
key ="tron";
}
:icon_ima{
key ="vuong";

}
:icon_ima{
key ="tamgiac";

}
} //row
: retirement_button {
label = " Exit ";
key = "accept";
is_default = true;
}


}//boxed_colum
}

// lap mot cai rieng >>> lap lai nhieu lan
icon_ima: image_button {
color = 0;
allow_accept = true;
fixed_height = true;
fixed_width = true;
width =25;
height =9;

}


hinhtron: dialog{
label="hinh tron";
:edit_box{
label = "nhap ban kinh R";
key = "bankinh";
value = "0.0";

}

ok_cancel;
}

hinhvuong: dialog{
label="hinh vuong";
:edit_box{
label = "chieu dai canh";
key = "canh";
value = "0.0";

}

ok_cancel;

}

hinhtamgiac: dialog{
label="Hinh tam giac";
:edit_box{
label = "canh gi cung duoc";
key = "canhtamgiac";
value = "100.0";

}
:edit_box{
label = "goc gi cung duoc";
key = "goctamgiac";
value = 0.0;

}

ok_cancel;

}

Thuty.lsp
;;; load dialog
(defun loadcl (dia_name)
(if (= -1 (setq dcl_id (load_dialog (strcat dia_name ".dcl"))))
(progn
(alert (strcat dia_name ".dcl" "not found")
(setq dialogloaded nil)
)
)
(setq dialogloaded 1)
)
)
;;;=========================
;;; thu tuc dua anh nen
(defun fill-im (image key / width height im)
(setq width (dimx_tile key)
height (dimy_tile key)
;********************* CHU Y *****************************
; dat duong dan den file chua anh - image la anh can dua nen
;************************************************************
im (strcat "c:\\" image)
)
(start_image key)
(slide_image 0 0 width height im)
(end_image)
)
;;; htron , hvuong , htamgiac la anh can dua nen
;;; thu tuc nay chi lam gon chuong trinh
(defun appear-images ()
(fill-im "htron" "tron")
(fill-im "hvuong" "vuong")
(fill-im "htamgiac" "tamgiac")

)
;;; Load subdialog tranh lap lai nhieu lan
(defun td (dialogname)
(if (not (new_dialog dialogname dcl_id)) (exit))
(start_dialog)
(done_dialog)
; dat mot so cac function kiem tra va lam viec voi subdialog

);end defun
;;;
;;; Chu y chi la vi du ve cach hien thi dialog thoi
(defun td1 ()
(if (not (new_dialog "hinhtron" dcl_id)) (exit))
(start_dialog)
;CHU Y DAY CHI LA VI DU VE CANH HIEN THI DIALOG THOI
; 2 cach hien thi dialog thi dieu khien sub dialog khac nhau
; do thoi gian co han chi lay vi du thoi.

);end defun
;;;

(defun c:show (/ dcl_id dialogloaded redia r)
(setq redia 2)
(loadcl "thuty")
(if (/= nil dialogloaded)
(progn
(while ( >= redia 2 )
(progn
(if (not (new_dialog "thuty" dcl_id)) (exit)); break when error
(appear-images)
(action_tile "tron" "(td1)(done_dialog 3)")
(action_tile "vuong" "(setq r $key)(done_dialog 4)")
(action_tile "tamgiac" "(setq r $key)(done_dialog 5)")
(action_tile "accept" "(done_dialog 1)")
(setq redia (start_dialog))
;;; Co mot so cach de goi Funtion khi tac dong Image
;;; Minh chi gioi thieu 2 cach thoi, khong co thoi gian
;;; Cach 1
(cond
((eq r "vuong") (td "hinhvuong"))
((eq r "tamgiac") (td "hinhtamgiac"))
)
(setq r nil)
;;; cach 2
;;; (cond
;;; ((= redia 4) (td "hinhvuong"))
;;; ((= redia 5) (td "hinhtamgiac"))
;;; )

);p
);w
(unload_dialog dcl_id)
);p-f
(print "Error")
);if
);defun
Have fun,
Roberto Nguyen
  • 1

#24 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 18 March 2008 - 07:44 AM

Mình đã thử và vẫn chưa tạo được flie slb như mong muốn được , vẫn không điều khiển được nó . Có phải bản chất của slb là tập hợp các sld lại ? và tại sao phải dùng slb trong khi đã có sẵn sld rồi ?

Tất nhiên, chỉ dùng *.sld, thậm chí không cần, dùng ngay bản vẽ *.dwg cũng được. Tuy nhiên, *.slb có những cái hay hơn:
1) Đúng như bạn nhận định, *.slb là một package của các *.sld. Khi cấp cho người dùng chương trình của bạn không phải kéo theo dài lê thê một "đoàn quân" mấy chục, có khi hàng trăm cái *.sld, mà chỉ cần 1 file *.slb duy nhất (Autodesk cũng làm như vậy mà). Khi đã "chơi" món này, ai cũng thấy khoái chí và không bao giờ chịu làm một vài cái *.sld
2) Dùng *.slb bạn mới có thể làm được cái gọi là Image_Tile_Menu. Món này cũng hay lắm đó. Bạn vào: Menu - Draw - Surfaces - 3D Surfaces sẽ thấy.
3) Chẳng hiểu bạn thao tác thế nào mà không tạo được *.slb? Có 2 động tác để tạo *.slb từ các *.sld:
- Tạo file *.txt, là một list chứa các tên file *.sld. (động tác này làm thủ công cũng được, chẳng cần lệnh liếc gì)
- Tạo *.slb từ *.txt trên
Xin hỏi thêm: bạn đang dùng phiên bản Cad nào? Sau khi chạy function (C:SLB...) mình gởi ở trên, bạn có nhận được *.txt không? Nếu có, thử chạy lại (C:SLB...) lần nữa xem. Nếu vẫn không được, đọc kỹ lại Help của bản Cad bạn đang dùng, chắc chắn phải tạo được! Không lẽ Autodesk lừa bạn à?

Bạn dùng thử chương trình sau, đúng yêu cầu mà bạn đã nêu. Từ từ "ngâm cứu" code của nó sẽ hiểu ra mọi vấn đề:
http://www.cadviet.com/upfiles/Geo.zip

Unzip và đọc readme.txt
  • 1

#25 h2c

h2c

    biết vẽ ellipse

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

Đã gửi 18 March 2008 - 11:25 AM

Mình đang dùng cad08 . Mình vẫn tạo được file *.slb nhưng mà nó lại không chứa thông tin gì hết . Mình dùng lisp của bác ssg và dùng command shell của cad nhưng vẫn ko được , chỉ tạo ra file rỗng , có gì lưu ý về nơi đặt file *.sld không ?

Mình chuyển qua làm theo đoạn help này
In the Command Prompt window, at the prompt, enter CD <folder location of slides> to change folders.
As an example: CD “c:\symbol”

At the prompt, enter the following syntax to create the slide library:
slidelib mark <mark.txt (mark.txt chứa danh sách các *.sld , tất cả các file *.txt và *.sld nằm trong thư mục c:\symbol)

Mình không hiểu tại sao trong command promt nó lại báo ko hiểu lệnh slidelib .

Cám ơn bạn đã nhiệt tình giúp đỡ .
  • 0

#26 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 18 March 2008 - 01:48 PM

Tất nhiên, chỉ dùng *.sld, thậm chí không cần, dùng ngay bản vẽ *.dwg cũng được. Tuy nhiên, *.slb có những cái hay hơn:
1) Đúng như bạn nhận định, *.slb là một package của các *.sld. Khi cấp cho người dùng chương trình của bạn không phải kéo theo dài lê thê một "đoàn quân" mấy chục, có khi hàng trăm cái *.sld, mà chỉ cần 1 file *.slb duy nhất (Autodesk cũng làm như vậy mà). Khi đã "chơi" món này, ai cũng thấy khoái chí và không bao giờ chịu làm một vài cái *.sld
2) Dùng *.slb bạn mới có thể làm được cái gọi là Image_Tile_Menu. Món này cũng hay lắm đó. Bạn vào: Menu - Draw - Surfaces - 3D Surfaces sẽ thấy.
3) Chẳng hiểu bạn thao tác thế nào mà không tạo được *.slb? Có 2 động tác để tạo *.slb từ các *.sld:
- Tạo file *.txt, là một list chứa các tên file *.sld. (động tác này làm thủ công cũng được, chẳng cần lệnh liếc gì)
- Tạo *.slb từ *.txt trên
Xin hỏi thêm: bạn đang dùng phiên bản Cad nào? Sau khi chạy function (C:SLB...) mình gởi ở trên, bạn có nhận được *.txt không? Nếu có, thử chạy lại (C:SLB...) lần nữa xem. Nếu vẫn không được, đọc kỹ lại Help của bản Cad bạn đang dùng, chắc chắn phải tạo được! Không lẽ Autodesk lừa bạn à?

Bạn dùng thử chương trình sau, đúng yêu cầu mà bạn đã nêu. Từ từ "ngâm cứu" code của nó sẽ hiểu ra mọi vấn đề:
http://www.cadviet.com/upfiles/Geo.zip

Unzip và đọc readme.txt


-Công nhận là tạo được *.slb thì hay hơn nhưng tôi cũng bị vướng (hồi giờ không tạo được file này). Nên tôi chấp nhận có nguyên 1 đội quân hàng ngàn file *.sld như vậy.
-Dùng *.sld vẫn có thể tạo được các hộpthoại có hình ảnh mà. thậm chí tôi còn làm nguyên con lisp về thu viện bằng cách dùng *.sld, khingười dùng chỉnh sửa hoặc thêm vào có vẻ cũng tiện hơn.
-Nói chung nếu tạo được thì hìn nó pro hơn một tí còn không cũng không sao bạn không cần bận tậm đến 1 điểm nhỏ này mà ảnh hưởng đến cả công việc lớn của bạn.
  • 0

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


#27 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 18 March 2008 - 02:45 PM

Mình đang dùng cad08 . Mình vẫn tạo được file *.slb nhưng mà nó lại không chứa thông tin gì hết . Mình dùng lisp của bác ssg và dùng command shell của cad nhưng vẫn ko được , chỉ tạo ra file rỗng , có gì lưu ý về nơi đặt file *.sld không ?

Mình chuyển qua làm theo đoạn help này
In the Command Prompt window, at the prompt, enter CD to change folders.
As an example: CD “c:\symbol”

At the prompt, enter the following syntax to create the slide library:
slidelib mark
Mình không hiểu tại sao trong command promt nó lại báo ko hiểu lệnh slidelib .

Cám ơn bạn đã nhiệt tình giúp đỡ .

1) Mình đã lưu ý ở bài trên, toàn bộ *.sld, *.txt đều đặt ở thư mục gốc của Acad. Nó tạo ra *.slb cũng ở đó luôn. Khi có rồi muốn move đi đâu thì tuỳ.
2) Nếu không dùng lisp thì dùng lệnh shell, đừng chơi Command Prompt của Windows nữa. Cái này không ổn đâu.
3) Như bạn duy782006 nói, nếu thấy "khó chơi" quá thì thôi, chấp nhận dùng *.sld. Tuy nhiên, không xét đến chuyện pro hay amateur, nếu chỉ tạo Image hay Image_Button cho dialog thì cái nào cũng đuợc. Nhưng để làm được Image_Tile_Menu thì chỉ có một cách duy nhất là dùng *.slb.
Bạn có vất vả với đám code lằng nhằng điều khiển dialog mới thấy được giá trị của cái Image_Tile_Menu: chỉ cần vài dòng trong *.mns là bạn có ngay một dialog bao gồm cả 2 thành phần: 1 listbox chứa text và 1 list box chứa hình ảnh tương ứng, chẳng cần viết code cho *dcl lẫn *.lsp. Nhưng mà thôi, tuỳ quan điểm mỗi người. No problems! Chúc mọi người vui vẻ!
  • 0

#28 h2c

h2c

    biết vẽ ellipse

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

Đã gửi 18 March 2008 - 05:16 PM

Cảm ơn bạn ssg rất nhiều . Nhưng thật kỳ cục là kết quả nhận được của mình là file này đây , mọi cách từ hôm qua đến giờ vẫn là nó . Mình đã move hết *.txt và *.sld sang thư mục gốc của CAD08 và dùng lisp của bạn nhưng vẫn ko được , kết quả vẫn là mark.txt y như ban đầu còn file *.slb này nó lại nằm bên mục my documents .
http://www.cadviet.c...pfiles/mark.slb
  • 0

#29 roberto

roberto

    biết pan

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

Đã gửi 18 March 2008 - 09:15 PM

[/quote]
Bạn có vất vả với đám code lằng nhằng điều khiển dialog mới thấy được giá trị của cái Image_Tile_Menu: chỉ cần vài dòng trong *.mns là bạn có ngay một dialog bao gồm cả 2 thành phần: 1 listbox chứa text và 1 list box chứa hình ảnh tương ứng, chẳng cần viết code cho *dcl lẫn *.lsp. Nhưng mà thôi, tuỳ quan điểm mỗi người. No problems! Chúc mọi người vui vẻ!
[/quote]

Theo quan điểm của mình thì mỗi cái có 1 thế mạnh riêng, khồng thể xét trên cùng một thứ nguyên được, tức là không thể đổi 1 m = bao nhiêu kg được ???
Đánh giá như bạn hơi chủ quan thì phải, Chỉ là ý kiến của mình thôi nhế <_<
Nếu dùng *.mns làm được hết thì sinh ra dialog để làm gì.???

Đồng ý với ý kiến "duy782006"
"Nói chung nếu tạo được thì hìn nó pro hơn một tí còn không cũng không sao bạn không cần bận tậm đến 1 điểm nhỏ này mà ảnh hưởng đến cả công việc lớn của bạn."
Quan trọng là bên trong nó chứa những gì?, Và có bao nhiêu người sử dụng nó cho công việc?
  • 0

#30 Nộ Thiên

Nộ Thiên

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 133 (tàm tạm)

Đã gửi 18 March 2008 - 09:23 PM

3) Như bạn duy782006 nói, nếu thấy "khó chơi" quá thì thôi, chấp nhận dùng *.sld. Tuy nhiên, không xét đến chuyện pro hay amateur, nếu chỉ tạo Image hay Image_Button cho dialog thì cái nào cũng đuợc. Nhưng để làm được Image_Tile_Menu thì chỉ có một cách duy nhất là dùng *.slb.

Kỳ thật, mình vẫn tạo image-Tile-menu bằng *.SLD:

Đây là menu
Hình đã gửi

Đây các file *.SLD
Hình đã gửi

Đây nội dung file *.MNU
Hình đã gửi

Bác SSG nhầm lẫn gì đây chăng? hay là đây kg phải là image-tile-menu?
  • 2

#31 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 19 March 2008 - 08:41 AM

Theo quan điểm của mình thì mỗi cái có 1 thế mạnh riêng, khồng thể xét trên cùng một thứ nguyên được, tức là không thể đổi 1 m = bao nhiêu kg được ???
Đánh giá như bạn hơi chủ quan thì phải, Chỉ là ý kiến của mình thôi nhế <_<
Nếu dùng *.mns làm được hết thì sinh ra dialog để làm gì.???

OK, chưa bao giờ mình có ý so sánh 1m với 1kg. Nhưng trong trường hợp này, giữa Dialog (có chứa Image) và Image_Tile_Menu có cái để so với nhau được.
Còn mỗi cái có ưu thế riêng thì tất nhiên rồi. Autodesk bày ra đủ thứ món, tuỳ trường hợp, tuỳ ngữ cảnh, và tuỷ cả... khẩu vị của mỗi người, sẽ có một món...ngon miệng hơn so với các món khác!

@Nộ Thiên
Cám ơn bạn! Không phải mình nhầm mà là không biết. Lần đầu tiên mình thấy kiểu này!
Xin lỗi tất cả các bạn vì sự kết luận vội vàng. Mình sẽ nghiêm túc rút kinh nghiệm.
  • 0

#32 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 19 March 2008 - 09:07 AM

@Nộ Thiên
Cám ơn bạn! Không phải mình nhầm mà là không biết. Lần đầu tiên mình thấy kiểu này!
Xin lỗi tất cả các bạn vì sự kết luận vội vàng. Mình sẽ nghiêm túc rút kinh nghiệm.

Bác nôthiên tạo thư viện kiểu này rất hay đấy, nhưng mà em có rất nhiều file thư ivện (10000file) bác có cách nào mà làm thư viện kiểu này không.em thấy cácnh này nhanh!
Em có 1 cách nhưng mà nó hơi "điên" 1 chút, nếu bác có cách nào hay thì em sẽ bỏ cách của em. Chứ tạo 1 .MNU cho các file thư viện vậy thì "chết đấy"
(cách của em em nói sau)
  • 0
Hãy ước cho trọn 1 ước mơ!

#33 Nộ Thiên

Nộ Thiên

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 133 (tàm tạm)

Đã gửi 19 March 2008 - 09:38 AM

Bác nôthiên tạo thư viện kiểu này rất hay đấy, nhưng mà em có rất nhiều file thư ivện (10000file) bác có cách nào mà làm thư viện kiểu này không.em thấy cácnh này nhanh!
Em có 1 cách nhưng mà nó hơi "điên" 1 chút, nếu bác có cách nào hay thì em sẽ bỏ cách của em. Chứ tạo 1 .MNU cho các file thư viện vậy thì "chết đấy"
(cách của em em nói sau)

Cái hình trên đó kg phải dùng như một thư viện đâu. Tất nhiên đối với thư viện dwg thì kg thể làm theo kiểu này đc. (từng file SLD)
  • 0

#34 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 19 March 2008 - 09:48 AM

Cái hình trên đó kg phải dùng như một thư viện đâu. Tất nhiên đối với thư viện dwg thì kg thể làm theo kiểu này đc. (từng file SLD)

Ý em hỏi là cách tạo 1 >MNU nhanh cơ, chứ: ban đầu thì tạo ra *.sld, *.slb. đã lâu rồi, lại tạo ra các MNU tổng hợp lại thì mệt phết?
  • 0
Hãy ước cho trọn 1 ước mơ!

#35 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 19 March 2008 - 10:11 AM

Bác nôthiên tạo thư viện kiểu này rất hay đấy, nhưng mà em có rất nhiều file thư ivện (10000file) bác có cách nào mà làm thư viện kiểu này không.em thấy cácnh này nhanh!
Em có 1 cách nhưng mà nó hơi "điên" 1 chút, nếu bác có cách nào hay thì em sẽ bỏ cách của em. Chứ tạo 1 .MNU cho các file thư viện vậy thì "chết đấy"
(cách của em em nói sau)

Bạn bày cho mình cách hơi điên của bạn đi.
  • 0

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


#36 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 19 March 2008 - 10:25 AM

Bạn bày cho mình cách hơi điên của bạn đi.

KHÔNG PHẢI HƠI ĐÂU MÀ ĐIÊN HẲN ĐẤY, CÀNG NGHĨ CÀNG ĐIêN!
1--TẠO SLD QUÁ DỄ, AI CŨNG CÓ THỂ VIẾT 1 LISP BẬT FILE CAD LÊNH LÀ OK
2--TẠO SLB CŨNG KHONG CÓ VẤN ĐỀ GÌ
3--VẤN ĐỀ LÀ THỐNG KÊ NÓ LẠI, BẰNG 1 MENU (TẠO ĐUÔI MNU) VÀ CÁCH CỦA TÔI LÀ:
DÙNG PHẦM MÊN NGHE NHẠC WINAP 5.0, BẬT TẤT CẢ CÁC FILE CAD LÊN, đương nhiên là không đọc đợc, nhưng mà nó sẽ in ra đựoc 1 cái list tên file(dùng chức năng lọc của word lọc ra tên cần thiết.
4--dùng excel kéo 1 phát là xong
http://www.cadviet.c...files/Book1.xls
  • 1
Hãy ước cho trọn 1 ước mơ!

#37 Nộ Thiên

Nộ Thiên

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 133 (tàm tạm)

Đã gửi 19 March 2008 - 12:14 PM

KHÔNG PHẢI HƠI ĐÂU MÀ ĐIÊN HẲN ĐẤY, CÀNG NGHĨ CÀNG ĐIêN!
1--TẠO SLD QUÁ DỄ, AI CŨNG CÓ THỂ VIẾT 1 LISP BẬT FILE CAD LÊNH LÀ OK
2--TẠO SLB CŨNG KHONG CÓ VẤN ĐỀ GÌ
3--VẤN ĐỀ LÀ THỐNG KÊ NÓ LẠI, BẰNG 1 MENU (TẠO ĐUÔI MNU) VÀ CÁCH CỦA TÔI LÀ:
DÙNG PHẦM MÊN NGHE NHẠC WINAP 5.0, BẬT TẤT CẢ CÁC FILE CAD LÊN, đương nhiên là không đọc đợc, nhưng mà nó sẽ in ra đựoc 1 cái list tên file(dùng chức năng lọc của word lọc ra tên cần thiết.
4--dùng excel kéo 1 phát là xong
http://www.cadviet.com/upfiles/Book1.xls

Nếu cần thiết hãy viết 1 lisp để tạo cái đoạn text nhàm chán trên trong file *.mnu
  • 0

#38 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 19 March 2008 - 02:57 PM

3--VẤN ĐỀ LÀ THỐNG KÊ NÓ LẠI, BẰNG 1 MENU (TẠO ĐUÔI MNU) VÀ CÁCH CỦA TÔI LÀ:
DÙNG PHẦM MÊN NGHE NHẠC WINAP 5.0, BẬT TẤT CẢ CÁC FILE CAD LÊN, đương nhiên là không đọc đợc, nhưng mà nó sẽ in ra đựoc 1 cái list tên file(dùng chức năng lọc của word lọc ra tên cần thiết.
4--dùng excel kéo 1 phát là xong

Sao lại phải "nhờ vả" Winap lẫn Excel? Bạn làm theo gợi ý của Nộ Thiên đi.
Bạn tham khảo đoạn sau:
(setq
MyDir (getstring "\nInput your drawing directory:" T)
MyList (vl-directory-files MyDir "*.dwg")
)

Kết quả nhận được MyList là 1 list chứa các tên file *.dwg trong thư mục MyDir. Đã là List Data Type rồi thì hẳn bạn biết phải làm gì với nó theo ý thích?
  • 0

#39 ssg

ssg

    biết lệnh adcenter

  • Vip
  • PipPipPipPipPipPipPip
  • 1228 Bài viết
Điểm đánh giá: 1087 (rất tốt)

Đã gửi 19 March 2008 - 03:11 PM

Cảm ơn bạn ssg rất nhiều . Nhưng thật kỳ cục là kết quả nhận được của mình là file này đây , mọi cách từ hôm qua đến giờ vẫn là nó . Mình đã move hết *.txt và *.sld sang thư mục gốc của CAD08 và dùng lisp của bạn nhưng vẫn ko được , kết quả vẫn là mark.txt y như ban đầu còn file *.slb này nó lại nằm bên mục my documents .

Có thể do bạn thiết lập Options của Cad hoặc của System. Cụ thể là cái nào thì chịu. Lâu nay mình vẫn dùng Lisp đã post cho bạn, không vấn đề gì. Mà thật ra là lâu lâu mới làm một lần nên không quan tâm mấy.
Bạn thử lại bằng cái này:
(defun C:SLB2(/ ffn dr tfn Lsld f x);;;Make *.slb file
(setq
ffn (getfiled "Save slb file as" "" "slb" 1)
dr (vl-filename-directory ffn)
tfn (strcat dr "\\mylist.txt")
Lsld (vl-directory-files dr "*.sld")
f (open tfn "w")
)
(foreach x Lsld (princ (strcat dr "\\" x "\n") f))
(close f)
(command "shell" (strcat "slidelib " ffn " < " tfn))
(alert (strcat "Finish make " ffn))
(vl-file-delete tfn)
)

1) Tạo các *.sld, đặt gom vào một thư mục nào đó tuỳ thích
2) Chạy SLB2. Chọn nơi lưu file *.slb tại thư mục chứa các *.sld nói trên
3) Nếu vẫn cứ không được nữa thì... ssg bó tay!
  • 0

#40 h2c

h2c

    biết vẽ ellipse

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

Đã gửi 21 March 2008 - 11:37 PM

Cám ơn ssg nhiều .
  • 0