Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
16 replies to this topic

#1 thinhquoc

thinhquoc

    biết pan

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

Đã gửi 03 August 2010 - 02:39 PM

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
  • 0

#2 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 03 August 2010 - 05:02 PM

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è????
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 03 August 2010 - 10:04 PM

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)
)

  • 0

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#4 thinhquoc

thinhquoc

    biết pan

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

Đã gửi 03 August 2010 - 10:53 PM

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 !
  • 0

#5 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 05 August 2010 - 12:46 PM

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.
  • 1
Hình đã gửi

#6 Zuy782006

Zuy782006

    biết vẽ line

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 05 August 2010 - 02:03 PM

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))

  • 0
Ơ hay, tại sao ta sống chốn này?
Quay cuồng mãi, vậy có gì vui !!!

#7 kaka105ht

kaka105ht

    biết vẽ circle

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

Đã gửi 14 January 2011 - 04:54 PM

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
  • 0

#8 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 14 January 2011 - 05:05 PM

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] :
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 January 2011 - 12:18 AM

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
  • 0

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


#10 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 15 January 2011 - 12:22 AM

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 <" (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))

  • 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


#11 kaka105ht

kaka105ht

    biết vẽ circle

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

Đã gửi 17 January 2011 - 08:20 AM

thanks bác ketxu nhìu lắm, đúng là cái mà e cần ^^
  • 0

#12 kaka105ht

kaka105ht

    biết vẽ circle

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

Đã gửi 21 January 2011 - 08:56 AM

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
  • 0

#13 hugo75

hugo75

    biết vẽ polygon

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

Đã gửi 10 July 2013 - 04:49 PM

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.


  • 0

#14 huaductiep

huaductiep

    biết vẽ rectang

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

Đã gửi 11 December 2013 - 01:43 AM

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 :)


  • 0

#15 ptd1987

ptd1987

    biết vẽ ellipse

  • Members
  • PipPip
  • 52 Bài viết
Điểm đánh giá: -5 (bình thường)

Đã gửi 05 March 2014 - 06:43 PM

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á !!


  • 0

#16 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 05 March 2014 - 08:56 PM

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.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#17 ptd1987

ptd1987

    biết vẽ ellipse

  • Members
  • PipPip
  • 52 Bài viết
Điểm đánh giá: -5 (bình thường)

Đã gửi 06 March 2014 - 01:31 AM

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"))


  • 0