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

Nhân bản đối tượng theo một đường

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

Cả nhà cho mình hỏi:Trong lệnh ARRAY nhập vào Angle of array thì hình cần array sẽ xoay theo hướng góc chọn.Nhưng không biết làm cách nào để một chuổi hình được xếp theo một đường như thế này không.Mình đã thử nhưng toàn bị lệch.Còn dùng copy như hình dưới thì hok nói làm gì

file như thế này

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ả nhà cho mình hỏi:Trong lệnh ARRAY nhập vào Angle of array thì hình cần array sẽ xoay theo hướng góc chọn.Nhưng không biết làm cách nào để một chuổi hình được xếp theo một đường như thế này không.Mình đã thử nhưng toàn bị lệch.Còn dùng copy như hình dưới thì hok nói làm gì

file như thế này

Bạn upload lại file đi :) chưa hiểu ý bạn muốn gì 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ái này mình nghĩ nên dùng lệnh divide rồi chọn chức năng chèn block thì sẽ hợp lý hơn.

Hiện tại có một lisp làm chức năng trên nhưng không hiểu sao không chạy được.Các bác xem jum em cái.

(DEFUN newerr (ne)
 (if (/= ne "function cancelled")
(princ (strcat "\nError:" ne))
 )
 (setvar "OSMODE" 0)
 (setvar "CMDECHO" ce)
 (setvar "BLIPMODE" bm)
 (setq "error" olderr)
 (princ)
)

(DEFUN C:BRICKCAP (/ sp ep ds an wd lg bs om ce bm nx nu p1 p2 p3 p4)
 (setq olderr "error")
 (setq "error" newerr)
 (while
(= sp nil)
(setq sp (getpoint "\nStart of first brick:"))
 )
 (while
(= ep nil)
(setq ep (getpoint "\nFinish point:"))
 )
 (setq ds (distance sp ep))  
 (setq wd (getdist "\nPick or enter width of bricks <4.0>:"))  
 (if
(= wd nil)
(setq wd 4.0)
 )  
 (setq lg (getdist "\nPick or enter length of bricks <8.0>:"))  
 (if
(= lg nil)
(setq lg 8.0)
 )
 (setq bs (getdist "\nPick or enter distance between brick <W + L / 20>:"))
 (if
(= bs nil)
(setq bs (/ (+ wd lg) 20))
 )
 (setq om (getvar "OSMODE"))
 (setvar "OSMODE" 0)
 (setq ce (getvar "CMDECHO"))
 (setvar "CMDECHO" 0)
 (setq bm (getvar "BLIPMODE"))
 (setvar "BLIPMODE" 0)
 (setq nx (+ bs lg)
nu (/ ds nx)
p1 sp
p2 (polar p1 an lg)
p3 (polar p2 (+ an (/ pi 2)) wd)
p4 (polar p1 (+ an (/ pi 2)) wd)
 )
 (repeat (+ (fix nu) 1)
(command "LINE" p1 p2 p3 p4 "C")
(setq p1 (polar p1 an nx)
  p2 (polar p2 an nx)
  p3 (polar p3 an nx)
  p4 (polar p4 an nx)
)
 )
 (setvar "OSMODE" om)
 (setvar "CMDECHO" cm)
 (setvar "BLIPMODE" bm)
 (setq "error" olderr)
 (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ả nhà cho mình hỏi:Trong lệnh ARRAY nhập vào Angle of array thì hình cần array sẽ xoay theo hướng góc chọn.Nhưng không biết làm cách nào để một chuổi hình được xếp theo một đường như thế này không.Mình đã thử nhưng toàn bị lệch.Còn dùng copy như hình dưới thì hok nói làm gì

file như thế này

Mình đã thử bằng lệnh array và không hề thấy lệch. Còn nếu bạn biết được góc xoay, với khối lượng tạo không nhiều thì bạn có thể dùng lệnh rotate của cad07 với lựa chon copy

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 đã thử bằng lệnh array và không hề thấy lệch. Còn nếu bạn biết được góc xoay, với khối lượng tạo không nhiều thì bạn có thể dùng lệnh rotate của cad07 với lựa chon copy

Cái quan trọng là vẫn lệch.Mong các bác test zùm em.Em vẫn dùng CAD 2007 mà.Và thêm một điều nữa là số lượng các hình rất nhiều,và theo nhiều chiều khác nhau.Cứ ngồi mà dò góc với copy chắc cũng đủ oải.Mà cái lisp kia thì em không sửa được,thế mới chuố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ả nhà cho mình hỏi:Trong lệnh ARRAY nhập vào Angle of array thì hình cần array sẽ xoay theo hướng góc chọn.Nhưng không biết làm cách nào để một chuổi hình được xếp theo một đường như thế này không.Mình đã thử nhưng toàn bị lệch.Còn dùng copy như hình dưới thì hok nói làm gì

file như thế này

 

Bạn có thể dùng 2 lệnh measuredivide để chỉa một đường với lựa chọn BlockAlign block <Y>. Mesure khác divide ở chỗ: mesure chia đường theo khoảng cách các block còn divide chia đường theo số lượng block.

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
Nếu không chỉnh sửa được thì mong bác nào cho em cái lisp tạo dãy như vậy đi.Cảm ơn các bác nhiều.

 

 

Về ý đồ này bác có thể xài copym ngay trong express của bản Cad. Nhưng lệch hay không là do bắt điêm đấy nhé. Copym mã nguôn mở bác có thế tham khảo để cải tiến.

 

vd: command: copym

 

Select objects:

 

Base point:

Second point or

[Repeat (last)/Divide/Measure/Array (dynamic)/Undo] <exit>: *Cancel*

 

chọn measure ...

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

×