Đến nội dung


Hình ảnh

[hỏi] move đối tượng không đổi cao độ


  • Please log in to reply
16 replies to this topic

#1 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 09:44 AM

giúp tôi move các đối tượng trong cad không bị thay đổi cao độ
  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2012 - 09:47 AM

giúp tôi move các đối tượng trong cad không bị thay đổi cao độ

Câu hỏi chưa rõ ràng lắm. Muốn move không thay đổi cao độ thì toạ độ z của điểm gốc và điểm đến cùng giá trị.
  • 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.


#3 Truong_AAn

Truong_AAn

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 314 Bài viết
Điểm đánh giá: 68 (tàm tạm)

Đã gửi 16 April 2012 - 09:52 AM

Bạn hỏi 2D hay 3D
  • 0
Hình đã gửi
----------------------------------------------------------------------------------//-------------------------------------------------------------------------------------

#4 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 09:55 AM

Bạn hỏi 2D hay 3D

tôi đang viết lisp vậy. chắc trong cad không có lệnh đó nhỉ.
  • 0

#5 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 09:58 AM

tôi đang viết lisp vậy. chắc trong cad không có lệnh đó nhỉ.

anh em giúp viết code chuyển: pt có tọa độ (x y z) chuyển thành (x y 0) nhé.
  • 0

#6 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2012 - 10:11 AM

anh em giúp viết code chuyển: pt có tọa độ (x y z) chuyển thành (x y 0) nhé.

(setq pt1 (list (car pt) (cadr pt) 0))
  • 1

* 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.


#7 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 10:17 AM

(setq pt1 (list (car pt) (cadr pt) 0))

thanhk!
  • 0

#8 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 10:19 AM

thanhk!

(defun c:mm()
(setq dt (ssget))
(setq point1 (getpoint "\n chon diem goc:"))
(setq x1 (nth 0 point1))
(setq y1 (nth 1 point1))
(setq p1 (list x1 y1 0))
(setq point2 (getpoint "\n chon diem toi:"))
(setq x2 (nth 0 point2))
(setq y2 (nth 1 point2))
(setq p2 (list x2 y2 0))
(command "move" dt p1 p2 "")
)
anh em sửa giùm cái lisp này toi không hiểu sao không nhận lênh move
  • 0

#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 April 2012 - 10:22 AM

Thiếu 1 dấu "" sau từ dt của lệnh move đồng thời thừa dấu "" ở cuối lệnh move.
Thêm 1 chú ý là Getpoint sử dụng cho 2D
  • 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


#10 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 10:23 AM

Thiếu 1 dấu "" sau từ dt của lệnh move

thêm rồi mà vẫn không được a ketxu oi, xin lỗi được rùi a
  • 0

#11 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 10:36 AM

(defun c:mm()
(setq dt (ssget))
(setq point1 (getpoint "\n chon diem goc:"))
(setq x1 (nth 0 point1))
(setq y1 (nth 1 point1))
(setq z1 (nth 2 point1))
(setq p1 (list x1 y1 0))
(setq point2 (getpoint "\n chon diem toi:"))
(setq x2 (nth 0 point2))
(setq y2 (nth 1 point2))
(setq p2 (list x2 y2 0))
(command "move" dt "" p1 p2)
)
các bác ơi em dùng lisp này move nhưng đối tượng move vẫn bị thay đổi cao độ. giúp tôi với
  • 0

#12 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2012 - 10:46 AM

(defun c:mm()
(setq dt (ssget))
(setq point1 (getpoint "\n chon diem goc:"))
(setq x1 (nth 0 point1))
(setq y1 (nth 1 point1))
(setq z1 (nth 2 point1))
(setq p1 (list x1 y1 0))
(setq point2 (getpoint "\n chon diem toi:"))
(setq x2 (nth 0 point2))
(setq y2 (nth 1 point2))
(setq p2 (list x2 y2 0))
(command "move" dt "" p1 p2)
)
các bác ơi em dùng lisp này move nhưng đối tượng move vẫn bị thay đổi cao độ. giúp tôi với

Rất có thể bạn bị osnap. Hoăc tắt osnap, hoặc setvar về 0 trước khi move rồi trả lại sau khi move, hoặc:
Sửa
(command "move" dt "" p1 p2)
Thành
(command "move" dt "" "non" p1 "non" p2)
  • 1

* 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.


#13 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 10:50 AM

Rất có thể bạn bị osnap.
Sửa
(command "move" dt "" p1 p2)
Thành
(command "move" dt "" "non" p1 "non" p2)

không được bác Hà a. nếu bỏ bắt điểm thì lại không move chuẩn.
  • 0

#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2012 - 10:54 AM

không được bác Hà a. nếu bỏ bắt điểm thì lại không move chuẩn.

Ai bảo thế?
  • 1

* 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.


#15 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 10:55 AM

không được bác Hà a. nếu bỏ bắt điểm thì lại không move chuẩn.

cảm ơn bác hà nhé. e sử lý được rồi
  • 0

#16 dunguss3581

dunguss3581

    biết lệnh rotate

  • Advance Member
  • PipPipPip
  • 139 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 16 April 2012 - 11:22 AM

các bác ơi tương tự như move trên tôi viết cho lệnh align lại không được. giúp tôi xem sai ở đâu nhé
(defun c:all()
(setq dt (ssget))
(setq point1 (getpoint "\n chon diem goc 1:"))
(setq x1 (nth 0 point1))
(setq y1 (nth 1 point1))
(setq p1 (list x1 y1 0))
(setq point2 (getpoint "\n chon diem toi 1:"))
(setq x2 (nth 0 point2))
(setq y2 (nth 1 point2))
(setq p2 (list x2 y2 0))
(setq point3 (getpoint "\n chon diem huong 1:"))
(setq x3 (nth 0 point3))
(setq y3 (nth 1 point3))
(setq p3 (list x3 y3 0))
(setq point4 (getpoint "\n chon diem toi huong 2:"))
(setq x4 (nth 0 point4))
(setq y4 (nth 1 point4))
(setq p4 (list x4 y4 0))
(command "ALIGN" dt "" "non" p1 "non" p2 "non" p3 "non" p4 "" "")
)

  • 0

#17 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 16 April 2012 - 11:49 AM

Bạn phải học cách dùng vlide soát lỗi hoặc bật F2 xem thông báo lỗi đi, là người viết lisp đừng kêu "tại sao không được", mà hãy cố gắng nói "lỗi là :... nhưng chưa giải quyết được" :)
  • 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