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

hoi lien ket DCL-AutoLisp.......

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

http://www.cadviet.com/upfiles/3/132733_example.lsp

 

http://www.cadviet.com/upfiles/3/132733_example_1.txt

 

em đang hoc DCL trong autolisp nên còn nhiều vấn đề chưa hiểu và viết còn sai nhiều chỗ chạy không có được và e có post file dcl và lsp... các bác pro nào chỉ  giùm em với:

yêu cầu của e là:

 

- khi chọn layer, color thi tạo layer mới với tên layer vừa chọn trong edit_box, và màu chọn trong popup_list

- khi thực DrPoint thì vẽ point được nhập vào từ edit_box2, và lúc đó edit_box1, edit_box3 ở chế độ không làm việc, tương tự như thực hiện DrTExt, DrPLine......

 

cao thủ nào xem giùm e và chỉ cho e những lỗi mà e trong file lsp mà em viết

thks cả 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

mọi người cho e hỏi chút

giờ e có 1 chuỗi bất kỳ gồm các chữ số cách nhau bằng dấu cách "  "  hoặc dấu "," hay dấu chấm phẩy ";"

em muốn lấy riêng các chữ số bên trái, bên phải  dấu cách "  "  hoặc dấu "," hay dấu chấm phẩy ";" thì làm thế nào???

ví dụ: 1448.57,23.74 giờ muốn lấy số 1448.57 và số 23.74 riêng ra thì dùng hàm gì???

hàm substr dùng không có được........

 

 

thks cả nhà :mellow:  :)  :)  :)  :)  :)  :) 

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

Hàm substr dùng được mà.

(setq a "1448.57,23.74 "

         a1 (substr a 1 (vl-string-search "," a))

         a2 (substr a (+ 2 (vl-string-search "," a)))

)

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

http://www.cadviet.com/upfiles/3/132733_dcl_2.txt

http://www.cadviet.com/upfiles/3/132733_lsp_1.txt

http://www.cadviet.com/upfiles/3/132733_editbox_1.lsp

nhờ các cao thủ chỉ giáo

e có file dcl và lsp như đính kèm

cho e hỏi chút là khi e thực hiện thao tác trên nút select xong thì làm thế nào để hiện tiếp hộp thoại dcl như lúc gọi hàm editbox để thực hiện tiếp việc tiếp các thao tác tiếp theo

 

thkssss cả 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

Bạn làm như thế này:

 

(defun sav()
    (setq txt(get_tile "edt1"))
)
 
(defun reload()
    (setq id_dcl(load_dialog "editbox.dcl"))
  (new_dialog "editbox" id_dcl)
 
  (action_tile "select" "(setq ddiag 3)(done_dialog)")
  (action_tile "accept" "(setq ddiag 2)(sav)(done_dialog)")
  (action_tile "cancel" "(setq ddiag 1)(done_dialog)")
  (start_dialog)
  (unload_dialog id_dcl)
)
 
(defun c:editbox ()
  (reload)    
  (if (= ddiag 1)
    (progn
      (princ "chuong trinh da thoat: ")
    )
  )
  (if (= ddiag 3)
    (progn      
      (setq ss (ssget))
      (reload)
    )
  )
  (if (= ddiag 2)
    (progn
      (command "text" "j" "mc" '(0 0) 2.5 0 txt)
      (setq sname(ssname ss 0)
   obj(vlax-ename->vla-object sname)
   are(rtos (vla-get-area obj) 2 3)
   ss1(ssget)
   sname1(ssname ss1 0)
   obj1(vlax-ename->vla-object sname1)
      )
      (vla-put-textstring obj1 are)
      (princ "chay OK: ") (princ)
    )
  )
)
  
[
  • 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

mọi người cho e hỏi chút

e dung hàm (vla-put-Visible vla-obj 0) de an doi tuong chon, gio dung ham nao de hien các đối tượng chọn trước đó ạ, hoặc hiện 1 số đối tượng hiện trước đó

THKSSSSSS 

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

Gio e dung hàm (vla-put-Visible vla-obj 0) de an doi tuog chon, gio e muon hien 1so hoac tat ca doi tuog an do hien len thi lam cach nao a.

vi du: chom 10 doi tuong de an bang ham vla-put-visible cac doi tuong gia su theo thu tu tu 1 den 10, gio e muon hien doi tuong thu tu 2,4,5,7,9 chang han thj lam the nao

thks ca nha....

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

(vla-put-Visible vla-obj 1)

Vấn đề là bạn đã biết vla-obj khi ẩn rồi thì khi muốn hiện thằng nào phải gọi đúng thằ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ả sử lb là cái list các đối tượng đa sắp xếp theo thứ tự.

(setq la '(2 4 5 7 9))

(mapcar '(lambda(x) (vla-put-Visible (vlax-ename->vla-object (nth x lb)) 1)) la)

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ậy giờ e ẩn khoảng 100 đối tượng mà giờ e muốn hiện lên tất cả thì thế nào..............và làm thế nào để biết được các của đối tượng đã ẩn đi trước đó để dùng hàm vla-ename->vlax-object chuyển sang đối tượng vla

thkssssssss...!!!!!!

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ậy giờ e ẩn khoảng 100 đối tượng mà giờ e muốn hiện lên tất cả thì thế nào..............và làm thế nào để biết được các của đối tượng đã ẩn đi trước đó để dùng hàm vla-ename->vlax-object chuyển sang đối tượng vla

thkssssssss...!!!!!!

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 bạn không lưu những cái đã ẩn vào 1 cái list thì chỉ có cách (ssget "X") rồi xem từng cái = vla-get-Visible, cái nào = 0 thì cho = 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

Nếu bạn không lưu những cái đã ẩn vào 1 cái list thì chỉ có cách (ssget "X") rồi xem từng cái = vla-get-Visible, cái nào = 0 thì cho = 1.

 

Dùng mã dxf 60 để chọn những cái bị ẩn (ssget "X" '((60 . 1)))

Duyệt qua từng đối tượng rồi cho hiện lê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

Vấn đề mà người đặt câu hỏi đưa ra là: hiện lại 1 số thằng đã ẩn. Vậy, bạn không biết họ tên thằng nào đã ẩn thì làm sao chỉ đich danh nó để hiện? Hiện tất cả thì dễ nhưng hiện "1 số thằng" thì phải chỉ ra chúng là những thằng nào chứ, phải không chủ topic?

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  

×