Đến nội dung


Hình ảnh
* - - - - 2 Bình chọn

(Yêu cầu) xin lisp copy, move đối tượng rồi xoay


  • Please log in to reply
27 replies to this topic

#1 sang29

sang29

    biết pan

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

Đã gửi 17 June 2013 - 10:27 AM

Mình tìm trên diễn đàn nhưng không thấy list nào sau khi copy hoặc move xong thì xoay được đối tượng cả (không muốn dùng lệnh mocoro vì nó loằng ngoằng, tương đối lâu)

 

Bác nào có lisp này share cho mình với

 

Thanks


  • 0

#2 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 17 June 2013 - 11:21 AM

Bạn dùng tạm lisp này nhé 

;;Ham luu cac gia tri vao bien tam
(defun start ()
(setq tamcmdecho (getvar "cmdecho"))
(setq tamosmode (getvar "osmode"))
(setq tamangbase (getvar "angbase"))
(setq tamangdir (getvar "angdir"))
)
;;ham dat lai cac gia tri nay
(defun end ()
(setvar "cmdecho" tamcmdecho)
(setvar "osmode" tamosmode)
(setvar "angbase" tamangbase)
(setvar "angdir" tamangdir)
)
;;Ham dat cac gia tri bien bang 0
(defun tccd ()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setvar "angbase" 0)
(setvar "angdir" 0)
)
;;;copy va xoay doi tuong
(defun c:cr (/ doituong goc dmoi gocxoay)
(prompt "\nChon doi tuong muon copy")
(setq doituong (ssget))
(setq dgoc (getpoint "\nChon diem goc:"))
(start)
(tccd)
(setq dmoi (getpoint "\nChon diem den moi:")
gocxoay (/ (* (getangle "\nNhap goc xoay:") 180) pi))
(command "copy" "P" "" dgoc dmoi "")
(command "rotate" "Last" "" dmoi gocxoay "")
(end)
)


  • 1

#3 sang29

sang29

    biết pan

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

Đã gửi 17 June 2013 - 11:37 AM

Bạn dùng tạm lisp này nhé 

;;Ham luu cac gia tri vao bien tam
(defun start ()
(setq tamcmdecho (getvar "cmdecho"))
(setq tamosmode (getvar "osmode"))
(setq tamangbase (getvar "angbase"))
(setq tamangdir (getvar "angdir"))
)
;;ham dat lai cac gia tri nay
(defun end ()
(setvar "cmdecho" tamcmdecho)
(setvar "osmode" tamosmode)
(setvar "angbase" tamangbase)
(setvar "angdir" tamangdir)
)
;;Ham dat cac gia tri bien bang 0
(defun tccd ()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(setvar "angbase" 0)
(setvar "angdir" 0)
)
;;;copy va xoay doi tuong
(defun c:cr (/ doituong goc dmoi gocxoay)
(prompt "\nChon doi tuong muon copy")
(setq doituong (ssget))
(setq dgoc (getpoint "\nChon diem goc:"))
(start)
(tccd)
(setq dmoi (getpoint "\nChon diem den moi:")
gocxoay (/ (* (getangle "\nNhap goc xoay:") 180) pi))
(command "copy" "P" "" dgoc dmoi "")
(command "rotate" "Last" "" dmoi gocxoay "")
(end)
)

cám ơn bác cho list này nhưng mình muốn khi copy hoặc move xong đối tượng hiện ra và rồi mới đánh goc độ xoay, chứ như bjo là bắt buộc fai đánh xong góc độ quay

và list hiện tại chưa bắt điểm được, ấn bắt điểm lại fai f3 1 fat rồi mới xong

 

Rất cám ơn bác


  • 0

#4 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 17 June 2013 - 11:59 AM

Mình tìm trên diễn đàn nhưng không thấy list nào sau khi copy hoặc move xong thì xoay được đối tượng cả (không muốn dùng lệnh mocoro vì nó loằng ngoằng, tương đối lâu)

 

Bác nào có lisp này share cho mình với

 

Thanks

Hề hề hề,

Bạn cần phải mô tả rõ cái việc xoay mới được. Bởi lệnh xoay là cần phải có tâm xoay và góc xoay mới được. Cùng góc xoay nhưng tâm xoay khác nhau là cái hình nó xoay ra sẽ tít mù khác nhau.

Đó cũng là cái lý do để cái lisp của bác CK244 chưa phù hợp với yêu cầu của bạn......


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#5 sang29

sang29

    biết pan

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

Đã gửi 17 June 2013 - 11:59 AM

Ý mình là như bthuong trong cad sau khi mình copy hoặc move đối rượng xong thì gõ tiếp lệnh rotate mới xoay được đối tượng. Nhưng bây giờ mình muốn góp vào trong 1 lệnh vì nếu ấn co rồi lại ro thì tương đối lâu. Còn mocoro thì rất lâu

 

Thanks các bác


  • 0

#6 Chiron

Chiron

    biết dimradius

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

Đã gửi 17 June 2013 - 12:01 PM

sang29 thử cái này xem:

(defun c:mnr ()
  (setq ss (ssget))
  (command "move" ss "" "0" "0")
  (command "move" ss "" pause pause)
  (command "rotate" ss "" "@" pause)
)

  • 1

#7 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 17 June 2013 - 12:06 PM

Gửi lại bạn

;;;copy va xoay doi tuong
(defun c:cr (/ goc dmoi gocxoay)
(prompt "\nChon doi tuong muon copy")
(ssget)
(setq dgoc (getpoint "\nChon diem goc:"))
(setq dmoi (getpoint "\nChon diem den moi:"))
(command "copy" "P" "" dgoc dgoc "")
(command "move" "p" "" dgoc dmoi "")
(setq gocxoay (/ (* (getangle "\nNhap goc xoay:") 180) pi))
(command "rotate" "P" "" dmoi gocxoay "")
)

Mình bở chế độ bắt điểm đi vì tránh lỗi bắt điểm.Khôi phục lại cho đúng ý bạn


  • 1

#8 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 17 June 2013 - 12:14 PM

Bổ sung thêm cái tâm xoay cho bạn chọn lại tâm xoay

(defun c:cr (/ goc dmoi gocxoay txoay)
(prompt "\nChon doi tuong muon copy")
(ssget)
(setq dgoc (getpoint "\nChon diem goc:"))
(setq dmoi (getpoint "\nChon diem den moi:"))
(command "copy" "P" "" dgoc dgoc "")
(command "move" "p" "" dgoc dmoi "")
(setq txoay (getpoint "\nChon tam xoay:"))
(if (= txoay nil) (setq txoay dmoi))
(setq gocxoay (/ (* (getangle "\nNhap goc xoay:") 180) pi))
(command "rotate" "P" "" txoay gocxoay "")
)

Khi tâm xoay trùng với điểm gốc bạn muốn di chuyển tới thì bạn chỉ cần enter và nhập góc xoay


  • 1

#9 sang29

sang29

    biết pan

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

Đã gửi 17 June 2013 - 12:54 PM

ok, đã được rùi, tk bác cd2k44 nha :)


  • 0

#10 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 17 June 2013 - 05:29 PM

Copy xong, move "p" thì không phải tập mới sinh :)


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

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 17 June 2013 - 06:22 PM

Mình tìm trên diễn đàn nhưng không thấy list nào sau khi copy hoặc move xong thì xoay được đối tượng cả (không muốn dùng lệnh mocoro vì nó loằng ngoằng, tương đối lâu)

 

Bác nào có lisp này share cho mình với

 

Thanks

 

Theo Hoằn thì đã có MOCORO trong AutoCAD rồi , thì cứ MOCORO mà... phang cho nó lành!


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#12 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 18 June 2013 - 07:13 AM

Cho mình chung vui với :D

Thể theo nguyện vọng của Hoằn mình edit sang "thể loại" MOCORO:

(defun c:cr( / oldcm doituong goc dmoi)
(setq oldcm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(prompt "\nChon doi tuong muon copy")
(setq doituong (ssget))
(setq dgoc (getpoint "\nChon diem goc:"))
(setq dmoi (getpoint dgoc "\nChon diem den moi:"))
(prompt "\nChon goc quay: ")
(command ".mocoro" doituong "" dgoc "c" dmoi "" "r" pause "")
(setvar "cmdecho" oldcm)
(princ)
)

  • 2

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#13 cd2k44

cd2k44

    Edu level: li5

  • Members
  • PipPipPipPipPipPipPip
  • 648 Bài viết
Điểm đánh giá: 121 (tàm tạm)

Đã gửi 18 June 2013 - 07:55 AM

Để xài thêm lệnh mocoro này nhớ cài thêm express nhé chủ thớt


  • 0

#14 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 18 June 2013 - 11:50 AM

Cho mình chung vui với :D

Thể theo nguyện vọng của Hoằn mình edit sang "thể loại" MOCORO:

(defun c:cr( / oldcm doituong goc dmoi)
(setq oldcm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(prompt "\nChon doi tuong muon copy")
(setq doituong (ssget))
(setq dgoc (getpoint "\nChon diem goc:"))
(setq dmoi (getpoint dgoc "\nChon diem den moi:"))
(prompt "\nChon goc quay: ")
(command ".mocoro" doituong "" dgoc "c" dmoi "" "r" pause "")
(setvar "cmdecho" oldcm)
(princ)
)

 

:) :) chỉ có lợi cho anh Hiệp tập viết lisp thôi!

Command: Ap APPLOAD Hiepcr.lsp successfully loaded.

Command:

Command:

Command: CR

Chon doi tuong muon copy

Select objects: Specify opposite corner: 2 found

Select objects:

Chon diem goc:

Chon diem den moi:

Chon goc quay: 30

 

 

Tính chi ly thì dùng lisp chậm hơn, hao tổn nhiều nơtron hơn là dùng mocoro, nhớ tên người người yêu sướng hơn là phải nhớ cái tên CR lạ hoắc là cái chắc rồi!

 

Command: MOCORO  (AutoCAD2013 chỉ cần gõ 3 ký tự: MOC)
Select objects: Specify opposite corner: 2 found
Select objects:
Base point:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: c
Second point of displacement/Undo/<eXit>:
Second point of displacement/Undo/<eXit>:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: r
Second Point or Rotation angle: 30
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>:

 


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...

 

 


#15 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 18 June 2013 - 03:12 PM

Hoằn lại "bảo thủ" rồi ! :D :D :D

Đúng là có cái này thi luyện viết Lisp mới vui, nhưng nói lâu hơn thì hơi buồn:

1. CR (Copy - Ro) có 2 chữ cái, ngắn hơn MOC _ 3 chữ cái

2. Đã chọn C; R mặc định, khỏi phải bấm lại

3. Edit lisp ko lâu & nếu dùng lặp lại nhiều thì mới nghĩ tới lisp --> thời gian "vô ích" chiếm tỷ trọng ko lớn.

:D :D :D


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#16 vuongvjpnd

vuongvjpnd

    biết vẽ rectang

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

Đã gửi 18 June 2013 - 04:12 PM

theo tôi nghĩ thì ta nên copy cho đúng điểm rồi dùng lênh rotato thì sẽ như ý mình hơn!!!!!!!hjhj


  • 0

#17 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 19 June 2013 - 05:47 AM

Cho mình chung vui với :D

Thể theo nguyện vọng của Hoằn mình edit sang "thể loại" MOCORO:

(defun c:cr( / oldcm doituong goc dmoi)
(setq oldcm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(prompt "\nChon doi tuong muon copy")
(setq doituong (ssget))
(setq dgoc (getpoint "\nChon diem goc:"))
(setq dmoi (getpoint dgoc "\nChon diem den moi:"))
(prompt "\nChon goc quay: ")
(command ".mocoro" doituong "" dgoc "c" dmoi "" "r" pause "")
(setvar "cmdecho" oldcm)
(princ)
)

Chào bạn hiepttr!

Bạn viết dựa trên (command ".mocoro".....)

Tuy nhiên, với mocoro thì khi copy đối tượng có thể hiện được "hình ảnh động" của đối tượng mới sinh. Còn bạn viết lại như thế thì vô tình bỏ mất "hình ảnh động" khi copy rồi.

 

@Chiron: Lisp bạn viết ở bài #6 ok, có điều không có dòng nhắc chi hết trơn.......

 

@cd2k44: Bạn đã sử dụng hàm (ssget) để chọn đối tượng rồi thì không nên sử dụng tuỳ chọn "P"  của select object để chọn đối tượng. Vì lỡ nếu khi không chọn được đối tượng nào thì Lisp hiểu "p" là đối tượng trước đó thì không đúng nữa. Bên cạnh đó, chú ý thêm góp ý của Ketxu "Copy xong, move "p" thì không phải tập mới sinh"


  • 0

#18 hiepttr

hiepttr

    Edu level: li10

  • Members
  • PipPipPipPipPipPipPip
  • 1298 Bài viết
Điểm đánh giá: 518 (tốt)

Đã gửi 19 June 2013 - 07:50 AM

Hề hề hề... (ăn cắp bản quyền  bác Bình tí) :D

Cái sự học của mình nó chỉ mới bắt đầu, có thể nói đối với các bác thì chỉ như cái phôi thai - mới chỉ biết ngọ nguậy !

Tò mò đc cái gì dùng được là mừng hết lớn luôn...

Cơ mà cái lisp của mình nó chỉ không thể copy liên tục chứ nó vẫn cho "hình ảnh động" đó chứ :D

Cảm ơn vì đã góp ý & rất mong nhận được sự "khai ngộ" từ các bác để mình ngày một hoàn thiện hơn !!!


  • 0

Có vợ dù dữ dù hiền , bạn đều có lợi
_ Nếu vợ hiền, bạn sẽ là người đàn ông sung sướng
_ Nếu vợ dữ, bạn sẽ thành ... triết gia !

Bergson


#19 Chiron

Chiron

    biết dimradius

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

Đã gửi 19 June 2013 - 08:27 AM

Chiron thấy lệnh mocoro của express tool sử dụng tâm xoay là điểm base point khi move / copy nên nghĩ yêu cầu của sang29 đơn giản hơn trường hợp các bác đã viết.

@Chiron: Lisp bạn viết ở bài #6 ok, có điều không có dòng nhắc chi hết trơn.......

Không có dòng nhắc là sao bác? Đây là lệnh của CAD mà? Hơn nữa, không thấy chủ topic phản hồi gì nên không viết tiếp cho lệnh copy; sau đó ở bài #9 sang29 bảo đã ok rồi và không thấy xuất hiện nữa nên không lăn tăn gì thêm. ^ ^


  • 0

#20 Hoan1111

Hoan1111

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2587 Bài viết
Điểm đánh giá: 692 (tốt)

Đã gửi 19 June 2013 - 08:50 AM

Anh Hiệp cố tình không hiểu ý của anh Tuệ :"Tuy nhiên, với mocoro thì khi copy đối tượng có thể hiện được "hình ảnh động" của đối tượng mới sinh. Còn bạn viết lại như thế thì vô tình bỏ mất "hình ảnh động" khi copy rồi."

" Hình chữ nhật thẳng" sau khi mocoro được "hình chữ nhật thẳng" + " hình chữ nhật nghiêng" >>> được tiếp một hình chữ nhật nghiêng nữa + hình chữ nhật nghiêng phóng to lên rất "sinh ...động"!

Command: MOCORO
Select objects: 1 found
Select objects:
Base point:
[Move/Copy/Rotate/Scale/Base/Undo]<eXit>: >>>MOCOROSO! :) :) :)


  • 0

66 Câu Phật Học Cho Cuộc Sống : http://ngocchinh.com...-cho-cuoc-song/

Gió đưa cây cải về trời / Rau răm ở lại chịu lời đắng cay...