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

Giúp em vần đề linetype

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

em có 1 số linetye riêng, ý em là load 1 lần sau này khởi động là nó có lun ko phải load lại cái này em đã làm đc, giờ em mún khi mở bất kỳ bản vẽ nào nó cũng load lun những linetype của em lun, chứ bình thường khi khởi động trang cad mới mới có còn khi mở 1 file bất kỳ thì ko có, ý đồ của em thực hiện đc ko mong được các anh giúp đỡ

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 khi mở 1 file cad bất kỳ ko phải file acadiso.dwt em đã add sẵn linetype của em ở trong, mà ko có những linetype em cần thì em load lại là xong nhưng cái tội làm biếng nên hỏi thử xem có cách nào khác ko hi ^^

  • 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

Làm lisp tự động insert cái file có sẳn các cái mong muốn vào.

 

(defun S::STARTUP ()

(command ".insert" "đuonganfile" "0,0" "" "")

)

  • Vote tăng 2

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

em làm đc rùi anh duy thank anh,nếu linetype của em đã tạo thành file ".lin" rùi có cách khác để add vào 1 file bất kỳ mà ko cần load ko anh

  • 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

vụ này mình đã tìm hiểu dùng 1 cách khác là dug lsp tiện hơn cách dùng bình thường 1 tí nhưng có 1 nhược điểm là ko thể load 1 lúc nguyên file .lin đc chỉ có cách load từng cái trong đó vì thế nếu file .lin của bạn nhiều linetype thì phải khai báo hơi nhiều trong lsp^^. nhưng cực 1 lần rùi thui sau này tring bất kỳ file nào lúc nào bạn mún load chỉ cần đáng 1 lệnh enter 1 cái là có hết :D

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

vụ này mình đã tìm hiểu dùng 1 cách khác là dug lsp tiện hơn cách dùng bình thường 1 tí nhưng có 1 nhược điểm là ko thể load 1 lúc nguyên file .lin đc chỉ có cách load từng cái trong đó vì thế nếu file .lin của bạn nhiều linetype thì phải khai báo hơi nhiều trong lsp^^. nhưng cực 1 lần rùi thui sau này tring bất kỳ file nào lúc nào bạn mún load chỉ cần đáng 1 lệnh enter 1 cái là có hết :D

Cái này có thể sử dụng lệnh Linetype mà load -> Thích anh nào thì load lên mà chọn linetype ấy thôi

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

Thanks anh Tue vì em dùng lệnh cad nhiều bước nên lười :D, nếu mình tạo hay lượm nhặt đc các linetype rùi đóng nó thành file.lin mún load mổi lần phải load tìm đường dẫn chọn -> ok. Nay dùng lsp gọn hơn 1 ít hihi.

Đây bạn dattran tham khảo hỉ

(defun c:llt ()

(if (tblsearch "ltype" "tên file.lin của bạn")

(command "linetype" "load" "tên file.lin của bạn" "ghi đường dẫn đến chỗ chứa file .lin đó" "y")

(command "linetype" "load" "viết đúng tên của mỗi linetype trong file.lin bạn mún load, sau mỗi tên phải có 1 dấu phẩy" "ghi đường dẫn đến chỗ chứa file .lin đó" ""))

)

Lưu ý chỉ thay ngay đúng chữ viết màu đỏ, màu đen giữ nguyên y chang nhé :D

Code ví dụ

(defun c:llt ()
(if (tblsearch "ltype" "acad.lin")
(command "linetype" "load" "acad.lin" "C:\\program files\\autodesk\\autocad 2012 - English\\supports\\acad.lin" "y")
(command "linetype" "load" "DASHDOT,DASHED" "C:\\program files\\autodesk\\autocad 2012 - English\\supports\\acad.lin" ""))
)

  • 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

Thanks anh Tue vì em dùng lệnh cad nhiều bước nên lười :D, nếu mình tạo hay lượm nhặt đc các linetype rùi đóng nó thành file.lin mún load mổi lần phải load tìm đường dẫn chọn -> ok. Nay dùng lsp gọn hơn 1 ít hihi.

Đây bạn dattran tham khảo hỉ

 

Lưu ý chỉ thay ngay đúng chữ viết màu đỏ, màu đen giữ nguyên y chang nhé :D

Code ví dụ

(defun c:llt ()
(if (tblsearch "ltype" "acad.lin")
(command "linetype" "load" "acad.lin" "C:\\program files\\autodesk\\autocad 2012 - English\\supports\\acad.lin" "y")
(command "linetype" "load" "DASHDOT,DASHED" "C:\\program files\\autodesk\\autocad 2012 - English\\supports\\acad.lin" ""))
)

Code load tất cả Linetype trong 1 file acad.lin đây bạn :

(defun c:Loadltype(/ f lst-lt data)
 ;;writen by Tue_NV
 (setq doc (vla-get-activedocument (vlax-get-acad-object)))
     (setq f (open (findfile "acad.lin") "r"))
 (while (setq data (read-line f))
(if (wcmatch data "`**@*`,*")
 	(setq lst-lt (append lst-lt (list (substr data (+ (vl-string-search "*" data) 2)
  				  		(1- (vl-string-search "," data))
  			     )
  		       )
  		)
 	)
)
 )
 (close f)
 (mapcar '(lambda(x) (loadLinetype doc x "acad.lin")) lst-lt)
 (princ)
)
(defun loadLinetype (doc LineTypeName FileName)
   (vl-catch-all-error-p
     (vl-catch-all-apply
   	'vla-load
   	(list
     	(vla-get-Linetypes doc)
     	LineTypeName
     	FileName
   	)
     )
   )
)

Tương tự, để load các linetype trong 1 file *lin -> xem code trên để tuỳ biến cho phù hợp

  • Vote tăng 3

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

ui chao phức tạp wá :D, anh Ket chưa dạy đến chỗ cao siêu vầy ^^, em mới học nên chỉ có thể viết đơn giản như trên.

Thanks anh Tue down về khi nào học tới đem ra tham khảo học hỏ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

Cái này cũng không phức tạp lắm, không cần tới lips. Bạn có thể làm như sau:

1. Bạn mở một bản vẽ mới lên rồi bạn tạo đầy đủ các layers, linetype, kiểu chữ.....tóm lại là bản vẽ đầy đủ theo nhu cầu mà bạn cân.

2. Đến đây khi bạn đã tạo hoàn chỉnh xong hết bạn chọn save as ---> Chọn Drawing Template. Tới đây nó hiện ra một hộp thoại cho bạn lựa chọn ( đặt tên cho file cad template tại thư mục template trong thư viện của autocad) ----> Hộp thoại Template options hiển thị bạn chọn : mục Measurement là Metric, mục New layer Notification là: Save all layers as unreconciled. Tới đây bạn đã tạo được một file cad chuẩn trong thư viện của cad.

3. Sau khi thực hiện 2 bước trến xong bạn vào mục option (lệnh op), thì hộp thoại options hiện ra tại thẻ đầu tiên ( thẻ files) bạn chon mục tempalte setting ----> Default template file name for QNEW ( lựa chọn lile cad khi khởi động cad mặc định), thì ta chọn file cad mà bạn tạo ở trên trong thư mục template trong thư viện cad là xong.

Chúc các bạn thành công !

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

Giờ mới thấy bài này nổi lên, thấy code bác Tuệ dài quá ^^

(defun llt(f / a B) ;(llt "acad.lin")
(setq b (mapcar 'getvar (setq a '(EXPERT CMDECHO))))
(mapcar 'setvar a '(3 0))
(cond ((findfile f)(command "-linetype" "load" "*" f "")))
(mapcar 'setvar a B)
)

  • Vote tăng 4

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  

×