Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
hatesale

Tạo hàm Lisp từ các lệnh của cad

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

hatesale    1

Chào anh em ! :)  :)

Mình đang gặp khó khăn trong việc sử dụng các hàm có sẵn của Cad để viết Lisp. :wacko:  :wacko:  :wacko:

Ví dụ như: 

- Tạo layer

   (command " layer " "m" "ten_layer" "c" "1" "w" "0.4" "" "")

- thay đổi thông số đơn vị bản vẽ

   (command "units" "2" "3" "2" "3" "" "")

 

Đoạn code như trên mình muốn hiểu thì phải thử, tuy nhiên nếu mình muốn thiết lập nhiều thông số như trong cad thì phải code Lisp viết như thế nào? 

ví dụ như tạo dimstyle

mình sưu tập code thì thấy có đoạn như sau:

(command "dimtxt" 2) ; chiều cao text

(command "dimscale" 100) ; tỷ lệ

......

Vậy cho mình hỏi làm sao để mình biết các từ khoá "dimtxt" "dimscale"....để còn biết và viết code ạ

 

Trân thành cảm ơn anh 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
quansla    232

Chào anh em ! :)  :)

Mình đang gặp khó khăn trong việc sử dụng các hàm có sẵn của Cad để viết Lisp. :wacko:  :wacko:  :wacko:

Ví dụ như: 

- Tạo layer

   (command " layer " "m" "ten_layer" "c" "1" "w" "0.4" "" "")

- thay đổi thông số đơn vị bản vẽ

   (command "units" "2" "3" "2" "3" "" "")

 

Đoạn code như trên mình muốn hiểu thì phải thử, tuy nhiên nếu mình muốn thiết lập nhiều thông số như trong cad thì phải code Lisp viết như thế nào? 

ví dụ như tạo dimstyle

mình sưu tập code thì thấy có đoạn như sau:

(command "dimtxt" 2) ; chiều cao text

(command "dimscale" 100) ; tỷ lệ

......

Vậy cho mình hỏi làm sao để mình biết các từ khoá "dimtxt" "dimscale"....để còn biết và viết code ạ

 

Trân thành cảm ơn anh em nhé :)  :)  :)  :)

Không ngưng học hỏi bạn ạ,tích luỹ dần dần rồi sẽ có thôi

C1/ Dành cho việc tự nghiên cứu, không dùng tài liệu, Chịu khó khi mở Cad, tìm hiểu các biến liên quan của Cad, ví dụ bạn có thể (với cad đời cao - ví dụ 2012 như máy mình) : mở hộp thoại Dimmentision Mânger di chuột lại gần một thiết lập nào đó, dừng chuột lại đó chờ cho trợ giúp của Cad hiện nên (rất nhanh, khoảng 1-1.5 s thôi) trong đó có thể sẽ có biến liên quan đến thông số đó mà bạn cần. ví dụ DimGap khi di chuột lại gần thông số khoảng cách TextDim và đường ghi kích thước.

C2/ Bạn hãy sử dụng lệnh "SYSVDLG" (hoặc menu Express Tool / System variable Editor...) để có thông số về toàn bộ biến của Cad, cùng các trợ giúp liên quan. Bạn có thể sửa giá trị của chúng lẻ lẻ ra ví dụ 1,321342342 sau đó suất ra tập tin svf(sau này cần đổi lại thành txt để đọc) để dễ tìm giá trị của chúng khi thay đổi, hoặc tinh ý tìm ra thay đổi của chúng trên bản vẽ.

C3/ Đọc Help của Cad, dò thông tin trên mạng. Hỏi trực tiếp khi gặp vướng mắc.

 

 

trên là cách mà mình tìm hiểu biến hệ thống của Cad ngày trước, khá hữu ích. Bạn muón sửa thông số Cad có thể sử dụng cách này.

 

Đương nhiên sẽ có nhiều thông số mà bạn không tìm được (không có, không dễ thấy) . bạn có thể tìm cách thiết lập chúng bằng nhiều cách khác. Chẳng hạn dùng lệnh (Scrip/ Líp/ VBA) thực hiện lệnh để làm thiết lập lần lượt như khi thực hiện thủ công

 

 

 

Tham khảo nha: Tạo dim style


(defun c:taodim()

(setvar "cmdecho" 0)

(command

"DIMBLK" "archtick" "DIMASZ" 1.2 "DIMCEN" 2

"DIMTIH" "off" "DIMTDEC" 2 "DIMZIN" 8

"DIMAZIN" 2 "DIMTOH" "off" "DIMTIH" "off"

"DIMDEC" 2 "DIMCLRT" 6 "DIMTIX" "on"

"DIMTXT" 2.5 "DIMTAD" 1 "DIMGAP" 0.5

"DIMCLRD" 8 "DIMLTYPE" "bylayer" "DIMLWD" -1

"DIMDLE" 1

;"DIMSCALE" 100

"DIMCLRE" 8 "DIMLTEX1" "bylayer"

"DIMLTEX2" "bylayer" "DIMEXE" 1 "DIMEXO" 0

"DIMLWE" -1 "DIMATFIT" 3 "DIMTMOVE" 0

"DIMTOFL" "on" "DIMDEC" 2 "DIMDSEP" "."

"DIMLUNIT" 2 "DIMLWD" -1 "DIMLWE" -1

"DIMJUST" 0 "DIMTAD" 1 "DIMTFILL" 0

)

(IF (NOT (TBLSEARCH "STYLE" "DIM"))

(command "-style"

"DIM"

"tahoma.TTF"

""

""

""

""

""

(while (> (getvar "cmdactive") 0) (command ""))

)

)

(COMMAND "DIMTXSTY" "DIM")

(if (not (tblsearch "DIMSTYLE" "xxxxx100"))

(Command ".dimstyle" "s" "xxxxx100")

)

(prompt "da tao xong dim xxxxx100 " )

(setvar "cmdecho" 1)

(princ)

)

 

 

hoặc ví dụ về tạo Text Style


 

(defun taotxt(name font txh )

(IF (NOT (TBLSEARCH "STYLE" name ))

(command "-style"

name

font

txh

"" "" "" ""

(while (> (getvar "cmdactive") 0)(command ""))

)

)

)

(defun c:taotxt()

(tblsearch "style" "t3")

(setvar "cmdecho" 0)

(taotxt "Dim" "vnromadi.shx" 0 )

(taotxt "Dim2" "tvsimli.shx" 0 )

(taotxt "T1" "vnromadi.shx" 0 )

(taotxt "T2" "VHHELS.TTF" 0 )

(taotxt "T3" "VHAVAN.TTF" 0 )

(princ "\nda tao xong cac text Style ")

(setvar "cmdecho" 1)

(princ)

)

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


×