Chuyển đến nội dung
Diễn đàn CADViet
thinhquoc

xin lisp move 1 giá trị nhất định

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

Các bác giúp e lisp move 1 đối tượng đi 1 giá trị nhất định, em tìm trên diễn đàn rồi nhưng không thấy

Chào bạn thinhquoc,

Lệnh move đòi hỏi có hai tham số là khoảng cách và góc độ move. Vậy bạn muốn cái gì cố định????Cái giá trị nhất định của bạn là cái chi chi 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
Các bác giúp e lisp move 1 đối tượng đi 1 giá trị nhất định, em tìm trên diễn đàn rồi nhưng không thấy

Dùng cái này xem.

 

(defun c:ms ()

 

(Prompt "\nChon cac doi tuong muon move")

(Setq doituongmove (Ssget))

 

(setq diemgocmove (getpoint "\nDiem co so: "))

(setq diemdenmove (getpoint diemgocmove"\nDiem dung noi suy: "))

 

(command ".move" doituongmove "" diemgocmove diemdenmove)

 

(while (Setq doituongmove (Ssget))

(command ".move" doituongmove "" diemgocmove diemdenmove)

)

 

(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

cảm ơn các bác đã quan tâm, em muốn lisp move đối tượng đi theo phương thẳng đứng ( nếu có thể xoay 1 góc thì càng tốt ) đi 1 giá trị nhất định ( giá trị này mình thay số vào lisp là hay nhất ), vì công việc của e thường phải move các đối tượng đi 1 giá trị như nhau mà phải làm thủ công thì mất thời gian lắm.

Cảm ơn các bác 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
cảm ơn các bác đã quan tâm, em muốn lisp move đối tượng đi theo phương thẳng đứng ( nếu có thể xoay 1 góc thì càng tốt ) đi 1 giá trị nhất định ( giá trị này mình thay số vào lisp là hay nhất ), vì công việc của e thường phải move các đối tượng đi 1 giá trị như nhau mà phải làm thủ công thì mất thời gian lắm.

Cảm ơn các bác trước !

khó hiểu quá đi. sao bạn ko dùng lệnh move cho khỏe.

  • 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ảm ơn các bác đã quan tâm, em muốn lisp move đối tượng đi theo phương thẳng đứng ( nếu có thể xoay 1 góc thì càng tốt ) đi 1 giá trị nhất định ( giá trị này mình thay số vào lisp là hay nhất ), vì công việc của e thường phải move các đối tượng đi 1 giá trị như nhau mà phải làm thủ công thì mất thời gian lắm.

Cảm ơn các bác trước !

Cải tiến lisp trên của Duy782006. :(

 

Lệnh DM dùng định 2 điểm cơ sở.

Lệnh MD dùng thực hiện lệnh move. Khi muốn thay đổi 2 điểm cơ sở thì lại gọi lệnh DM.

(defun c:DM ()

(setq diemgocmovedattendaidekhoitrung (getpoint "\nDiem co so: "))

(setq diemdenmovedattendaidekhoitrung (getpoint diemgocmovedattendaidekhoitrung"\nDiem dung noi suy: "))

(Princ))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:MD ()

(Prompt "\nChon cac doi tuong muon move")

(Setq doituongmove (Ssget))

(cond

((= diemgocmovedattendaidekhoitrung nil) (alert "Chua ton tai cac diem co so

\ngo lenh DM de xac dinh"))

((/= diemgocmovedattendaidekhoitrung nil) (command ".move" doituongmove "" diemgocmovedattendaidekhoitrung diemdenmovedattendaidekhoitrung))

)

(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

em nghĩ cái bác ý cần là cái lisp tương tự như lệnh offset trong cad nhưng khác cái là sau khi offset thì đối tượng cũ mất đi. Em cũng đang cần cái đó, mong các pro 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
em nghĩ cái bác ý cần là cái lisp tương tự như lệnh offset trong cad nhưng khác cái là sau khi offset thì đối tượng cũ mất đi. Em cũng đang cần cái đó, mong các pro giúp

Dùng lệnh Ofset trong cad như sau:

 

Command: o

Specify offset distance or [Through/Erase/Layer] : e

Erase source object after offsetting? [Yes/No] : y

Specify offset distance or [Through/Erase/Layer] : Specify second

point:

Select object to offset or [Exit/Undo] :

Specify point on side to offset or [Exit/Multiple/Undo] :

Select object to offset or [Exit/Undo] :

Specify point on side to offset or [Exit/Multiple/Undo] :

Select object to offset or [Exit/Undo] :

  • 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ảm ơn các bác đã quan tâm, em muốn lisp move đối tượng đi theo phương thẳng đứng ( nếu có thể xoay 1 góc thì càng tốt ) đi 1 giá trị nhất định ( giá trị này mình thay số vào lisp là hay nhất ), vì công việc của e thường phải move các đối tượng đi 1 giá trị như nhau mà phải làm thủ công thì mất thời gian lắm.

Cảm ơn các bác trước !

Em nghĩ ý bạn ấy là như thế này :

(Defun c:m1 () 
(command ".move" (ssget) "" "D" (polar '(0.0 0.0 0.0) (getangle  "\nGoc move :" ) 500))(princ)
 )

Khoảng cách 500 thay tực tiếp trong lisp

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 nghĩ cái bác ý cần là cái lisp tương tự như lệnh offset trong cad nhưng khác cái là sau khi offset thì đối tượng cũ mất đi. Em cũng đang cần cái đó, mong các pro giúp

Tặng bạn cái mình vẫn đang dùng

(defun c:om (/ offset_dist obj_2_offset offset_side)
(setvar 'cmdecho 0)
(while (= offset_dist nil)
(setq offset_dist (getdist "\nKhoang cach offset: "))
);while

(while
(while (= obj_2_offset nil)
(setq obj_2_offset (entsel (strcat "\nKick vao doi tuong can offset : ")))
);while

(while (= offset_side nil)
(setq offset_side (getpoint "\nPhia offset: "))
);while

(command "offset" offset_dist obj_2_offset offset_side "")

(command "erase" obj_2_offset "")
(setq obj_2_offset nil)
(setq offset_side nil)
);while

(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

Có 1 vấn đề, cái lisp của bác ketxu dùng với đối tượng khác thì ok nhưng với text thì hok ổn, move xong không thấy chữ đâu bác ạ. mong bác chỉ giáo cho e vớ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

 

Tặng bạn cái mình vẫn đang dùng

(defun c:om (/ offset_dist obj_2_offset offset_side)(setvar 'cmdecho 0)(while (= offset_dist nil)(setq offset_dist (getdist "\nKhoang cach offset: ")));while(while(while (= obj_2_offset nil)(setq obj_2_offset (entsel (strcat "\nKick vao doi tuong can offset <" (rtos offset_dist) ">: "))));while(while (= offset_side nil)(setq offset_side (getpoint "\nPhia offset: ")));while(command "offset" offset_dist obj_2_offset offset_side "")(command "erase" obj_2_offset "")(setq obj_2_offset nil)(setq offset_side nil));while(princ))

Sao down về không sử dụng được bác ah,diễn đàn bị lỗi nên lisp nó cứ dài qua phải,không có xuống hàng gì hết?Bác ketxu up lại giùm mình với.Thanks.

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ình cũng dow về ko xài dc..hjx. Mong bác ketxu up lại giúp hoặc chỉ mình cách dow ko bị lỗi. Mình dow nhiều lisp hay bị thế này.

khi load lisp nó báo : on input

Thanks u so :)

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

Nhờ các bác viết dùm lisp move và lisp copy với 1 khoảng cách nhất định như sau:

1) Yệnh MX: (phương X)

chọn đối tượng:

chọn hướng : giả sử chọn điểm bên trái thì đt dc move sang trái 1500

2) Lệnh MY: (phương Y)

chọn đối tượng:

chọn hướng :  giả sử chọn điểm bên trên thì đt dc move lên trên 1500

3) Tương tự với lệnh copy : CX, CY

TH này do e phải sửa lại bản vẽ nhiều lỗi lặp lại giống nhau nên cần dùng vì mỗi lần move hay copy phải gõ 1500 mất 4 thao tác mỏi tay quá !!

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 bản chất lệnh Move và Copy đã có mà bạn, thậm chí còn gọn hơn:

Chọn đối tượng >> pick điểm gốc >> nhập khoảng cách. Xong!

Chỉ chú ý đến F8 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

Cái này bản chất lệnh Move và Copy đã có mà bạn, thậm chí còn gọn hơn:

Chọn đối tượng >> pick điểm gốc >> nhập khoảng cách. Xong!

Chỉ chú ý đến F8 thôi.

e muốn bỏ qua khâu nhập khoảng cách vì phải gõ tạch tạch tạch tạch 4 cái, mà phải sửa nhiều bv của n khác  ~.~

thực ra e muốn khi nhập lệnh MX là đã bao hàm k/c 1500 trong đó rồi ^-^

Giống như lisp rotate dưới đây, e chỉ việc nhập 1> chọn đối tượng> chọn điểm là đt quay 120 độ

(defun c:1 () (ssget) (command "rotate" "p" "" pause "120"))

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


×