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.
Đăng nhập để thực hiện theo  
vodoifx

Kiểm Tra Giúp Em File Lisp Hatch Nhanh Em Viết,

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

vodoifx    1

(defun c:h2 () 

(setq oslast (getvar "OSMODE"))

(setq lay (getvar "clayer"))

(command "layer" "new" "9.Thai" "c" "9" "9.Thai" "")

(command "layer" "S" "9.Thai" "")

(command "osnap" "")

(setq pt1 (getpoint "\nPick diem trong vung can Hatch : "))

(while (/= pt1 nil)

(setq vsize ( /(getvar "VIEWSIZE") 50 ))

(command "bhatch" "p" "angle" vsize "0" "last" "")

(setq pt1 (getpoint "\nPick diem trong vung can Hatch : "))

(exit))

(princ)

(command(setvar "clayer" lay)) 

(command "setvar" "OSMODE" oslast)

)

 

khi chay lsp này em bị những sau:

 

1.

Pick diem trong vung can Hatch :

2D point or option keyword required.

; error: Function cancelled

 

2. 2 dòng lệnh cuối không thiết lập về giá trị ban đầu???

 

Các anh giúp em với ạ. em thanks trước.

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
phamthanhbinh    3.123

(defun c:h2 () 

(setq oslast (getvar "OSMODE"))

(setq lay (getvar "clayer"))

(command "layer" "new" "9.Thai" "c" "9" "9.Thai" "")

(command "layer" "S" "9.Thai" "")

(command "osnap" "")

(setq pt1 (getpoint "\nPick diem trong vung can Hatch : "))

(while (/= pt1 nil)

(setq vsize ( /(getvar "VIEWSIZE") 50 ))

(command "bhatch" "p" "angle" vsize "0" "last" "")

(setq pt1 (getpoint "\nPick diem trong vung can Hatch : "))

(exit))

(princ)

(command(setvar "clayer" lay)) 

(command "setvar" "OSMODE" oslast)

)

 

khi chay lsp này em bị những sau:

 

1.

Pick diem trong vung can Hatch :

2D point or option keyword required.

; error: Function cancelled

 

2. 2 dòng lệnh cuối không thiết lập về giá trị ban đầu???

 

Các anh giúp em với ạ. em thanks trước.

Hề hề hề,

Bạn xem lại dòng lệnh  (command "bhatch" "p" "angle" vsize "0" "last" ""). Dòng này có cấu trúc không phù hợp với lệnh bhatch. Tham số "last" ở đây có ý nghĩa gì vậy???

Do dòng lệnh này sai nên lisp không chạy hết và do vậy các dòng lệnh cuối không được thực thi bạn ạ. 

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
duy782006    1.375

Cái thằng pick điểm chọn 1 vùng khép kín bằng lisp rất rách việc.

Mình viết đoạn này trong trường hợp điểm chọn có vùng khép kín ngon lành rồi bạn tìm thêm mà hoàn thiện nhé.

;;;--------------------------------------------------------------------------
(defun duy:hatchpicdiem (tenhatch tilehatch gochatch layerhatch / tenhatch tilehatch gochatch layerhatch)  
  (command "bhatch" "p" tenhatch tilehatch gochatch (getpoint "Chon diem") "") 
  (command "change" "last" "" "p" "la" layerhatch "")
(princ)
)
;;;--------------------------------------------------------------------------
(defun c:hpd ()
(duy:hatchpicdiem "ANSI31" "1000" "0" "khuat-9")
(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
anti lazy    27

khi chay lsp này em bị những sau:

 

1.

Pick diem trong vung can Hatch :

2D point or option keyword required.

; error: Function cancelled

 

2. 2 dòng lệnh cuối không thiết lập về giá trị ban đầu???

 

Các anh giúp em với ạ. em thanks trước.

Tôi ủng hộ các mem có tinh thần : Học & Hỏi

1 -

(command "-bhatch" "p" "angle" vsize "0" pt1 "")

2 - Bỏ (exit) cuối vòng while

 

vodoifx nên học cách dùng VLIDE & debug vì sẽ có ích nhiều khi lập trì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
duy782006    1.375

Để cho nhàn tốt nhất kiên quan đến hatch thì mình set các thông số theo ý mình rồi ném trả lại cho lệnh hatch của cad làm việc. Mình lưu cái lisp này đêu đó trên cadviet lâu lắm rồi. Bạn gỏ lệnh THHA thử rồi mày mò cho hiểu nhé. Lệnh trên gán tên hatch và layer cho hatch xong gọi hộp thoại hatch của cad thực hiện xong thì trả lại layer hiện hành.

(defun c:shat();show hatch
(initdia)
(command "hatch")
)


;;;;;;;;;;;

(defun c:thha(/ ov vl)
(setvar "hpname" "ansi31") 
(setq vl '("clayer" "cmdecho"); Sys Var list
ov (mapcar 'getvar vl)); Get Old values
(setvar "cmdecho" 1) 
(if (tblsearch "layer" "KT-Hatch")
(setvar "CLAYER" "KT-Hatch")
(command "-layer" "M" "KT-Hatch" "" ) )
(initdia)
(command "hatch")
(while (< 0 (getvar "CMDACTIVE"))
(command pause)
) 
(vl-cmdf "change" "L" "" "P" "LA" "KT-Hatch" "")
(mapcar 'setvar vl ov); reset Sys Vars
(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
vodoifx    1

Tôi ủng hộ các mem có tinh thần : Học & Hỏi

1 -

(command "-bhatch" "p" "angle" vsize "0" pt1 "")

2 - Bỏ (exit) cuối vòng while

 

vodoifx nên học cách dùng VLIDE & debug vì sẽ có ích nhiều khi lập trình

hôm qua em cũng đút pt1 vào thay cho "last" nhưng không bỏ (exit) nên không được.

. Cám ơn anh nhé.

 

Nhưng em cũng chưa ưng ý lắm ở chỗ các đối tượng hatch ở mỗi vùng hátch rời rạc nhau không tiên cho viện quản lý.

để em tìn hiẻu thêm vậy. hì

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  

×