Đến nội dung


Hình ảnh
- - - - -

[Đã xong] Nhờ viết lisp chọn nhanh layer và move!


  • Please log in to reply
7 replies to this topic

#1 dragontalon0802

dragontalon0802

    biết lệnh erase

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

Đã gửi 27 May 2011 - 10:26 PM

Mình cần 1 lisp chọn nhanh layer bằng lệnh "4" enter và kích vào một đối tượng thuộc layer nào thì cad sẽ chuyển sang làm việc với layer đó.
Và một lisp có lệnh "m2" rồi chọn đối tượng, chỉ hướng di chuyển thì đối tượng sẽ move một khoảng 220. Do không viết được nên nhờ các bạn viết hộ nhé.
Cảm ơn các bạn nhiều.
Chúc một ngày vui vẻ.
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 27 May 2011 - 11:06 PM

Của bạn :
(Defun c:m2 () (command ".move" (ssget) "" "D" (polar '(0.0 0.0 0.0) (getangle "\nGoc move :" ) 220))(princ)) 
(defun c:4() (command "_Laymcur"))

  • 3

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#3 hungcuongtx

hungcuongtx

    biết zoom

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

Đã gửi 28 May 2011 - 12:18 AM

nhờ bạn Ketxu có thể cải tiến giúp mình cái lisp trên được không.
Mục đích của mình:
-chọn đối tượng
-nhấn lệnh xz
-chọn hướng di chuyển
+nếu nhấn "A" thì đối tượng sang trái 600
+nếu nhấn "S" thì đối tượng xuống đưới 600
+nếu nhấn "D" thì đối tượng sang phải 600
+nếu nhấn "W" thì đối tượng lên trên 600 (giống như chơi game vậy đó :P )
+sau khi nhấn phím di chuyển rồi thì có thể nhấn tiếp tục được, vd nhấn a di chuyển 600, nhấn tiếp a di chuyển 600 nữa,...
-thoát lệnh bằng Space.
Hình đã gửi
File Cad
Cám ơn nhiều!
  • 1

#4 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 28 May 2011 - 12:53 AM

Tạm thời thế này, di chuyển = phím + space, thoát bằng 1 phím khác nào đó :
(Defun c:xz ( / ss ans)
(prompt "\nCh\U+1ECDn \U+0111\U+1ED1i t\U+01B0\U+1EE3ng :")
(setq ss (ssget) pt '(0.0 0.0 0.0))
(while (and (setq ans (strcase (getstring "H\U+01B0\U+1EDBng di chuy\U+1EC3n (A S D W) :"))) (wcmatch ans "A,D,W,S"))
(cond
((= ans "A")(command ".move" ss "" "D" (polar pt pi 600)))
((= ans "D")(command ".move" ss "" "D" (polar pt 0 600)))
((= ans "W")(command ".move" ss "" "D" (polar pt (/ pi 2) 600)))
((= ans "S")(command ".move" ss "" "D" (polar pt (/(* 3 pi) 2) 600)))
)
)
)

P/S : 1 yêu cầu khá ngộ ^^
  • 2

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#5 dragontalon0802

dragontalon0802

    biết lệnh erase

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

Đã gửi 28 May 2011 - 02:24 PM

Của bạn :

(Defun c:m2 () (command ".move" (ssget) "" "D" (polar '(0.0 0.0 0.0) (getangle "\nGoc move :" ) 220))(princ)) 
(defun c:4() (command "_Laymcur"))

Lisp dùng hay lắm, Cảm ơn bạn nhiều nhé.
  • 0

#6 pdle

pdle

    biết lệnh mtext

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

Đã gửi 28 May 2011 - 04:19 PM

Lisp dùng hay lắm, Cảm ơn bạn nhiều nhé.

Em không hiểu là người yêu cầu cái lisp có lệnh 4 để làm gì khi mà nó chính là lệnh Laycur trong AutoCAD!
  • 0
Share your knowledge. It is a way to achieve immortality !

***

PS: Nếu bài viết của mình có ích, xin hãy "Bình chọn cho bài viết này" nhé :D

#7 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 28 May 2011 - 04:52 PM

Có khả năng là bạn ấy chưa biết laymcur, hoặc đơn giản muốn nó gọn hơn thôi :)
  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#8 ht.thichvobien

ht.thichvobien

    biết zoom

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

Đã gửi 19 April 2013 - 11:22 AM

e cũng nghĩ như bác ketxu


  • 0