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

[Đã xong] Lisp rải đối tượng theo đơờng dẩn.

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

Bảo gửi file cho dòm ngó block tí thì không gửi mà giọng văn nghe chừng dỗi rồi :blush:

 

Đâu có đâu anh, e đang tìm cách up file lên thôi, tại e chưa up lên bao giờ mà, chứ e có dỗi đâu,

 

A mà biết ngày xưa mấy anh chị phòng e làm như thế nào thì a còn choáng hơn ý, vì thủ công quá mà, may mà e tìm được forum này nên cũng đã giảm bớt đi nhiều rồi ạ.

http://www.cadviet.com/upfiles/3/tong_xa_yen_ninh999.dwg

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

Đâu có đâu anh, e đang tìm cách up file lên thôi, tại e chưa up lên bao giờ mà, chứ e có dỗi đâu,

 

A mà biết ngày xưa mấy anh chị phòng e làm như thế nào thì a còn choáng hơn ý, vì thủ công quá mà, may mà e tìm được forum này nên cũng đã giảm bớt đi nhiều rồi ạ.

http://www.cadviet.com/upfiles/3/tong_xa_yen_ninh999.dwg

http://www.cadviet.com/upfiles/3/tong_xa_yen_ninh999duychinh.dwg

 

-Đã lưu ý bạn xem lại điểm chèn block rồi mà bạn vẫn để nó ở 1 nơi nào xa lắm í.

-Block trước khi thực hiện lệnh bạn cho góc quay của nó bằng 0 hoặc 90 nhé. (như kiểu bạn ưng thì là 90).

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

Anh ơi, e chạy đc lệnh dpl rồi ạ, nhưng nó vẫn có một nhược điểm là nếu góc giữa 2 đỉnh là 180 độ thì ko chạy đc đúng ý e muốn, e up cả file lên anh xem giùm e nhé.

 

http://www.cadviet.com/upfiles/3/cat_ne_2005.dwg

Ờ mình không lường đến trường hợp này để mình nghỉ cách sửa.

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

Anh ơi, e chạy đc lệnh dpl rồi ạ, nhưng nó vẫn có một nhược điểm là nếu góc giữa 2 đỉnh là 180 độ thì ko chạy đc đúng ý e muốn, e up cả file lên anh xem giùm e nhé.

 

http://www.cadviet.com/upfiles/3/cat_ne_2005.dwg

Chỉnh lại lổi nêu trên rồi đây bạn. Tên lệnh như cũ.

;;;;;;;;;;;;;;;;;
(Defun chonnhomdoituong ()
 (princ "\nChon doi tuong rai:")
 (setq ss (ssget))

(cond 
     ((= ss nil) (princ "\nChua chon duoc doi tuong nao:") (chonnhomdoituong))
     ((/= ss nil) 
(setq dsl (sslength ss))
           (cond 
           ((= dsl 1) 
(setq doituong (ssname SS 0))
(setq doituong (entget doituong))
(setq KIEUDOITUONG (cdr (assoc 0 doituong)))
                  (cond 
                  ((= KIEUDOITUONG "INSERT") (setq dc (cdr (assoc 10 doituong))))
                  ((/= KIEUDOITUONG "INSERT") (setq dc (getpoint "\nChon diem goc: ")))
                  );ketthuccondxemblock
                );kethucdsl1
           ((/= dsl 1) (setq dc (getpoint "\nChon diem goc: ")))
           );ketthuccondnho

);ketthucsetqdsl
);ketthuccondtong  
 (princ)
)
;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(Defun C:dpl ( )   
(command "undo" "be")
(chonnhomdoituong)

(Prompt "\nChon doi tuong lam duong dan")
(setq doituong1 (entsel))
(while
(null doituong1)
(Prompt "\nChon doi tuong lam duong dan")
(setq doituong1 (entsel))
)

(setq doituongt (car doituong1))
(setq doituong (entget doituongt))

 (setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)

(setq sodinh (cdr (assoc 90 doituong)))
(setq Rec (acet-geom-vertex-list doituongt))
(setq ttd 1)
(while (< ttd (- sodinh 1))

    (setq dinh (nth ttd Rec))
    (setq dinhtr (nth (- ttd 1) Rec))
    (setq dinhsa (nth (+ ttd 1) Rec))
    (setq goctr (angle dinh dinhtr))
    (setq gocsa (angle dinh dinhsa))
    (setq gockt (angle dinhsa dinhtr))
    (setq kiemtra (rtos (- gockt goctr) 2 2))
(cond 
     ((= kiemtra "0.00") 
    (setq tgtrsa (polar dinh (+ goctr (/ pi 2)) 100))
)
     ((/= kiemtra "0.00") 
    (setq tgtr (polar dinh goctr 100))
    (setq tgsa (polar dinh gocsa 100))
    (setq goctrsa (angle tgtr tgsa))
    (setq daitrsa (distance tgtr tgsa))
    (setq tgtrsa (polar tgtr goctrsa (/ daitrsa 2)))
)
)


(setq L 0)
(setq M (sslength ss))
(while (< L M)
  (setq DT (ssname ss L))
  (command ".copy" DT "" dc dinh)
  (command ".rotate" "last" "" dinh tgtrsa)
  (command ".rotate" "last" "" dinh 90)
  (setq L (1+ L))
)

(setq ttd (1+ ttd))
)
(setvar "osmode" luubatdiem)
(command "undo" "end")
(Princ)
)

  • Like 1
  • 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

Mấy bạn cho mình hỏi,sao mình chọn đường dẫn không được nhỉ,hay là Cad của mình lỗi

Bạn copy đoạn thông báo từ khi chạy đến khi kết thúc từ dòng command lên mình xem thử!

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

CAD 2012 đã làm được tất cả việc trên. Các bạn ko p đau đầu nữa đâu :D

Hi hi ông duy782006 đã nói "(à nghe bảo cad12 đã kết hợp array theo đường dẩn nhưng mình chưa tiếp xúc nên ko biết có bị dẩm lên đó ko nhưng đây là thử nghiệm vì mình tính cho xác định điểm bắt đầu và hướng rải nửa nhưng chưa nghỉ ra kịch bản vì có quá nhiều thường hợp muốn)

"

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

e xem qua giới thiệu của cad 2012 rồi, nhưng nó ko giống như cái e mong muốn, e chỉ cần rải ra đỉnh của pline thôi, dùng lips a Duy viết thì đúng ý em luôn. Mà lại ko fải cài lại cad, hihi

  • Vote giảm 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

e xem qua giới thiệu của cad 2012 rồi, nhưng nó ko giống như cái e mong muốn, e chỉ cần rải ra đỉnh của pline thôi, dùng lips a Duy viết thì đúng ý em luôn. Mà lại ko fải cài lại cad, hihi

Tại topic này vốn là mình khoe cái lisp rải đối tượng thoe đường dẩn nên có các ý kiến trên là đúng rồi. Mình với tpthainguyen phang ngang 1 cái lisp rải đối tượng đến các đỉnh pline vào mà ko báo với khán giả nên các ý kiến nhiều khi không thống nhất quan điểm với nhau.

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

Theo chương trình hành động nay mình thêm phần chọn điểm bắt đầu rải và hướng rải cho lisp rải đối tượng theo đường dẩn.

*Lệnh rải cho toàn bộ đường dẩn thì vẩn như cũ.

*Lệnh rải từ điểm:

-Tên lệnh RTD.

-Chọn đối tượng cần rải như cũ.

-Chọn đường dẩn như cũ.

-Chọn điểm bắt đầu rải (nằm trên đường dẩn).

-Chọn điểm chỉ hướng rải (nằm trên đường dẩn).

-Lúc này các phần sau giống lisp cũ chỉ có điều đối tượng rải từ điểm bắt đầu do mình chọn và rải về phía mình chọn.

*Dự kiến là sau khi chọn 2 điểm sẽ hỏi các lựa chọn:

-Theo số lượng trên toàn bộ đoạn từ điểm bắt đầu rải theo hướng chỉ và đi hết đường dẩn. (cái này đã có)

-Theo khoảng cách trên toàn bộ đoạn từ điểm bắt đầu rải theo hướng chỉ và đi hết đường dẩn. (cái này đã có)

-Từ điểm bắt đầu rải theo hướng chỉ và đi hết đường dẩn hỏi số lần rải và khoảng cách rải (nhân với nhau không nhất thiết rải đến hết).

-Theo số lượng trên đoạn từ điểm bắt đầu rải đến điểm chỉ hướng.

-Theo khoảng cách trên đoạn từ điểm bắt đầu rải đến điểm chỉ hướng.

Đang nghỉ cách nào gộp vào 1 câu hỏi cho nó ngắn nên tạm thời dùng như trên đã.


(Defun c:rdt (/ ss doituong dsl dc ddd chondd chieudaicuver diemdau diemcuoi krai chieudaidoan slc sl index d2 p2 d5 p5 d3 p3 dt l m)
(vl-load-com)
(command "undo" "be")
(command "ucs" "")
(chonnhomdoituong)
(choncuver)
(hoikieurai)
(command "ucs" "p")
(command "undo" "end")
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun c:rtd (/ ss doituong dsl dc ddd chondd chieudaicuver diemdau diemcuoi krai chieudaidoan slc sl index d2 p2 d5 p5 d3 p3 dt l m)
(vl-load-com)
(command "undo" "be")
(command "ucs" "")
(chonnhomdoituong)
(choncuver)
(chondiemxuatphat)
(hoikieuraicd)
(command "ucs" "p")
(command "undo" "end")
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun chondiemxuatphat ()
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 545)
(setq diemchuan (getpoint "\nDiem bat dau rai tren duong dan:"))
(setq diemdinhhuong (getpoint diemchuan"\nHuong rai so voi diem chuan:"))
(setvar "osmode" 0)
(setq daidendiem (vlax-curve-getDistAtPoint chondd diemchuan))
(setq daidenhuong (vlax-curve-getDistAtPoint chondd diemdinhhuong))
(setvar "osmode"luubatdiem)
(Cond
((< daidendiem daidenhuong) (setq chieudaitinh (- chieudaicuver daidendiem)) (setq dautinh +))           
((> daidendiem daidenhuong) (setq chieudaitinh daidendiem) (setq dautinh -))
) 
(setq doanxuatphat daidendiem)
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun hoikieuraicd ()
 (setq kraicd (strcase (getstring "\nKieu rai theo: So luong/<Khoang cach>")))
(Cond
((= kraicd "S") (raisoluongcd))
((/= kraicd "S")(raikhoangcachcd))
) 
 (princ)
)
;;;;;;;;;;;;;;
(Defun raikhoangcachcd ()
  (setq chieudaidoan (GETDIST "\nKhoang cach doan chia: "))
  (setq sol (+ (/ chieudaitinh chieudaidoan) 1))
   (setq sl (fix sol))
   (setq sl (fix sl))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun raisoluongcd ()
(setq slc (getreal "\nChia duong dan thanh may lan:"))
(setq chieudaidoan (/ chieudaitinh slc))
(setq sl (fix (+ 1 slc)))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun chonnhomdoituong ()
 (princ "\nChon doi tuong rai:")
 (setq ss (ssget))

(cond 
     ((= ss nil) (princ "\nChua chon duoc doi tuong nao:") (chonnhomdoituong))
     ((/= ss nil) 
(setq dsl (sslength ss))
           (cond 
           ((= dsl 1) 
(setq doituong (ssname SS 0))
(setq doituong (entget doituong))
(setq KIEUDOITUONG (cdr (assoc 0 doituong)))
                  (cond 
                  ((= KIEUDOITUONG "INSERT") (setq dc (cdr (assoc 10 doituong))))
                  ((/= KIEUDOITUONG "INSERT") (chondiemchuandoituong))
                  );ketthuccondxemblock
                );kethucdsl1
           ((/= dsl 1) (chondiemchuandoituong))
           );ketthuccondnho

);ketthucsetqdsl
);ketthuccondtong  
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun chondiemchuandoituong ()
(setq dc (getpoint "\nChon diem goc: "))
(cond 
     ((= dc nil) (princ "\nChua chon duoc diem goc:") (chondiemchuandoituong))
     ((/= ss nil))) 
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun choncuver ()

(setq ddd (entsel "\nChon duong dan:"))
(while
(or
(null ddd)
(or (= "TEXT" (cdr (assoc 0 (entget (car ddd))))) (= "MTEXT" (cdr (assoc 0 (entget (car ddd))))) (= "HATCH" (cdr (assoc 0 (entget (car ddd))))) (= "INSERT" (cdr (assoc 0 (entget (car ddd))))) (= "REGION" (cdr (assoc 0 (entget (car ddd))))) (= "DIMENSION" (cdr (assoc 0 (entget (car ddd)))))
)
)
(setq ddd (entsel "\nDoi tuong khong the lam duong dan! Chon lai"))
)

(setq chondd (car ddd))
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq chieudaicuver (vlax-curve-getDistAtParam chondd (vlax-curve-getEndParam chondd)))
(setq doanxuatphat 0)
(setvar "osmode"luubatdiem)
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun hoikieurai ()
(setq dautinh +)
 (setq krai (strcase (getstring "\nKieu rai theo: So luong/<Khoang cach>")))
(Cond
((= krai "S") (raisoluong))
((/= krai "S")(raikhoangcach))
) 

 (princ)
)
;;;;;;;;;;;;;;
(Defun raikhoangcach ()
  (setq chieudaidoan (GETDIST "\nKhoang cach doan chia: "))
  (setq sol (+ (/ chieudaicuver chieudaidoan) 1))
   (setq sl (fix sol))
   (setq sl (fix sl))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun raisoluong ()
(setq slc (getreal "\nChia duong dan thanh may lan:"))
(setq chieudaidoan (/ chieudaicuver slc))
(setq sl (fix (+ 1 slc)))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun thuchienrai (/ quaykhong)

 (setq quaykhong (strcase (getstring "\nCo quay doi tuong vuong goc voi duong dan khong: Khong/<Co>")))
(Cond
((= quaykhong "K") (setq copygiua copykoquay))
((/= quaykhong "K")(setq copygiua copyquay))
) 

(setq index -1)

 (repeat sl
(setq index (1+ index))
(setq d2 (dautinh doanxuatphat (* chieudaidoan index)))
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq p2 (vlax-curve-getPointAtDist chondd d2))
(setvar "osmode"luubatdiem)
(copygiua)
 )
 (princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;
(defun copycuoiquay()
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq d5 (- (dautinh doanxuatphat (* chieudaidoan index)) 0.01))
(setq p5 (vlax-curve-getPointAtDist chondd d5))
(setq L 0)
(setq M (sslength ss))
(while (< L M)
  (setq DT (ssname ss L))
  (command ".copy" DT "" dc p2)
  (command ".rotate" "last" "" p2 p5)
  (command ".rotate" "last" "" p2 180)
  (setq L (1+ L))
)
(setvar "osmode"luubatdiem)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;
(defun COPYQUAY(/ p3)
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq d3 (+ (dautinh doanxuatphat (* chieudaidoan index)) 0.001))
(setq p3 (vlax-curve-getPointAtDist chondd d3))
(setvar "osmode"luubatdiem)
(Cond
((= p3 nil) (copycuoiquay))
((/= p3 nil) 
(setq L 0)
(setq M (sslength ss))
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(while (< L M)
  (setq DT (ssname ss L))
  (command ".copy" DT "" dc p2)
  (command ".rotate" "last" "" p2 p3)
  (setq L (1+ L))
)
(setvar "osmode"luubatdiem)
)
) 


(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;
(defun COPYKOQUAY()
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(command ".copy" ss "" dc p2 "")
(setvar "osmode"luubatdiem)
(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ác bác xem cái hình rải đối tượng trong cad 2012

AutoCAD_2012_Associative_Array.gif

Hề hề hề,

Rằng hay thì thiệt là hay,

Xem xong ngậm đắng nuốt cay mà ..... thèm.

Giá như bác gửi cả cho cái phần mềm đó thì tốt quá. chả biết nó dùng lisp hay là lại file vlx nhể....

  • 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

Nó là chức năng của CAD12 bác BÌNh ạ :)

Nghe giang hồ đồn là cad2012 đòi quả ram 2G mà máy cơ quan toàn còi. Thấy nó liên kết và chỉnh được khoảng cách luôn thấy thèm 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

Thực chất nếu bản vẽ nhẹ nhàng thì chỉ cần 1G cũng xài tốt bác ạ. E cũng thi thoảng bật lên để nghịch, rồi lại thoát ra ^^ (gặp mấy bản vẽ của các bác Quy Hoạch thì sấp mặt mà khó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

Thực chất nếu bản vẽ nhẹ nhàng thì chỉ cần 1G cũng xài tốt bác ạ. E cũng thi thoảng bật lên để nghịch, rồi lại thoát ra ^^ (gặp mấy bản vẽ của các bác Quy Hoạch thì sấp mặt mà khóc )

Những điểm mới lạ trong AutoCAD 2012

Sơ lược về những đổi mới của AutoCAD 2012:

Ngày 22/3/2011, hãng Autodesk đã cho ra mắt phiên bản AutoCAD 2012 v18.2. Đây là phiên bản được nhận xét là kết hợp Array, không gian dữ liệu.

Trước hết là về định dạng file Acad:

Định dạng file giống với định dang file AutoCAD 2010.

Giao diện người sử dụng:

Sự thay đổi đầu tiên mà các bạn thấy là sự chuyển đổi giữa các tab ribbon đã nhanh hơn rất nhiều, không còn chậm chạm như các phiên bản AutoCAD 2009, 2010, 2011. Nghĩa là các bạn để con chuột vào tab ribbon và di chuột thì các bạn thấy chuyển đối giữa các tab ribbon rất nhanh

Nội dung trong tab ribbon đã có sự thay đổi, cụ thể là đã có thêm ứng dụng mới trong công cụ Draw và Modify.

Khởi động AutoCAD 2012 nhanh hơn so với các phiên bản trước đó.

Một chức năng mới trong AutoCAD 2012 là AutoComplete Command (tự động nhận dạng câu lệnh). Nếu bạn nhập vào một lệnh PUB thì AutoCAD 2012 sẽ cho ra một loạt danh sách có lệnh bắt đầu bằng PUB. AutoCAD 2012 cũng chấp nhận ký tự đại diện, nghĩa là nếu bạn chỉ nhớ câu lệnh đó có chữ N đầu tiên và lệnh đó có 3 ký tự thì bạn chỉ cần nhập N??, ngay lập tức AutoCAD sẽ liệt kê danh sách lệnh cho bạn. Rất hữu ích đúng không các bạn .

 

Chức năng mới nữa trong AutoCAD 2012 là chức năng Explorer. Chức năng này cho phép bạn tìm kiếm về dữ liệu AutoCAD trong máy tính cũng như trên mạng. Nó cũng cho phép bạn truy cập dữ liệu từ AutoDesk tìm kiếm.

 

Các tính năng về hiệu chỉnh nóng Grips đã được giới thiệu trong AutoCAD 2011, nay được nâng cấp thêm ở AutoCAD 2012 dành cho các đối tượng như: lines, dimensions, mleaders, arcs.

 

Một sự thay đổi trong AutoCAD 2012 nữa đó là chế độ SNAP chỉ tự động bắt điểm lưới khi bạn kích chọn 1 điểm, do đó bạn có thể di con trỏ một cách tự do trên giao diện người sử dụng mà không bị nhảy theo bước nhảy đã cài đặt. Các phiên bản trước đó, khi bạn bật chế độ SNAP thì con trỏ cứ giật giật nhảy bước khi bạn di chuyển nó.

Bốn nhóm công cụ trong Groups đã được xếp cùng nhau trên 1 ribbon

 

Bạn có thể chọn và thay đổi trực tiếp UCS trên ngay giao diện người sử dụng bằng cách nhấp chọn và nó sẽ hiển thị các chức năng chỉnh sửa cho bạn

 

Bạn có thể điều chỉnh cấu hình khung nhìn, hướng nhìn, và phong cách trực quan ngay trong viewport.

Sáng tạo và sửa đổi đối tượng:

Lệnh ARRAY cũ đã được nâng cấp. Bây giờ, khi bạn bắt đầu câu lệnh nó nhắc nhở cho đối tượng array, hay kiểu array (Rectangular, Polar, new Path). Ngay sau khi bạn trả lời, Array được xây dựng trên màn hình trong chế độ xem trước. Bạn có thể kéo con trỏ đến kích thước của Array hoặc cung cấp đầu vào chi tiết tại các dòng lệnh. Khi bạn làm xong kết quả là một ARRAY mới thực tế. Bạn có thể điều chỉnh các thuộc tính của mảng trên màn hình hoặc hộp thoại thuộc tính. Các tùy chọn đường dẫn mới cũng tương tự như các lệnh MEASURE hoặc DIVIDE, ngoại trừ kết quả cũng là một ARRAY kết hợp.

 

Lệnh BLEND giúp spline tiếp tuyến được giữa hai đường cong, giống như polylines, lines, arc, và các đường spline khác.

Kích thước các menu ngữ cảnh hiện nay bao gồm một tùy chọn để loại bỏ phong cách ghi đè.

 

Mleader cải tiến:

Các FILLET và CHAMFER, lệnh này bao gồm một bản xem trước kết quả, cho phép bạn thay đổi khoảng cách bán kính FILLET hay CHAMFER trước khi bạn hoàn thành các lệnh. Điều này cũng hoạt động trên polylines, và bạn có thể FILLET đường splines

 

Raster đã được mở rộng bao gồm nhiều định dạng mới, bao gồm MrSID, ECW, và JPEG2000

Mtext sẽ nhớ sử dụng các cài đặt mới nhất thay vì luôn mặc định số 1,5 và nền màu đỏ.

Lệnh EXTEND sẽ hỗ trợ cho cả các đường Splines.

Các lệnh JOIN đã được thay đổi để bạn không cần phải chọn một đối tượng bắt đầu, chỉ cần chọn tất cả các đối tượng tham gia.

Lệnh COPY hiện nay cho phép bạn tạo ra một mảng kết hợp không tuyến tính. Không nên nhầm lẫn điều này với các lệnh thay đổi mảng ở trên. Kết quả cuối cùng ở đây chỉ đơn giản là bản sao của đối tượng gốc.

 

Hiện bây giờ là một tùy chọn để đóng băng một lớp ở tất cả các Viewports trừ một hiện tại. Điều này được tìm thấy bên trong lớp quản lý hoặc sử dụng lệnh VPLAYER.

Bây giờ bao gồm xây dựng một trong chuyển đổi hàng loạt bản vẽ, được sử dụng để lưu bản vẽ xuống nhiều tất cả các cách để định dạng R2000. Cơ bản giống như DWG TrueConvert và cùng công cụ DWG Trueview.

Overkill đã được tích hợp vào AutoCAD. Lệnh này được sử dụng để xóa các bản sao các đối tượng, và sửa lỗi hình học khác.

AutoCAD WS hỗ trợ được xây dựng để bạn có thể xuất bản vẽ của bạn lên web với một cú nhấp chuột.

Có ± 70 lệnh mới hoặc thay đổi, và ± 40 biến hệ thống mới hoặc thay đổi. Hai lệnh (BLIPMODE và DSVIEWER ) và sáu biến hệ thống đã được loại bỏ.

Sưu tầm lượm lặt

  • Vote tăng 2

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ững điểm mới lạ trong AutoCAD 2012

Sơ lược về những đổi mới của AutoCAD 2012:

Ngày 22/3/2011, hãng Autodesk đã cho ra mắt phiên bản AutoCAD 2012 v18.2. Đây là phiên bản được nhận xét là kết hợp Array, không gian dữ liệu.

Trước hết là về định dạng file Acad:

Định dạng file giống với định dang file AutoCAD 2010.

Giao diện người sử dụng:

Sự thay đổi đầu tiên mà các bạn thấy là sự chuyển đổi giữa các tab ribbon đã nhanh hơn rất nhiều, không còn chậm chạm như các phiên bản AutoCAD 2009, 2010, 2011. Nghĩa là các bạn để con chuột vào tab ribbon và di chuột thì các bạn thấy chuyển đối giữa các tab ribbon rất nhanh

Nội dung trong tab ribbon đã có sự thay đổi, cụ thể là đã có thêm ứng dụng mới trong công cụ Draw và Modify.

Khởi động AutoCAD 2012 nhanh hơn so với các phiên bản trước đó.

Một chức năng mới trong AutoCAD 2012 là AutoComplete Command (tự động nhận dạng câu lệnh). Nếu bạn nhập vào một lệnh PUB thì AutoCAD 2012 sẽ cho ra một loạt danh sách có lệnh bắt đầu bằng PUB. AutoCAD 2012 cũng chấp nhận ký tự đại diện, nghĩa là nếu bạn chỉ nhớ câu lệnh đó có chữ N đầu tiên và lệnh đó có 3 ký tự thì bạn chỉ cần nhập N??, ngay lập tức AutoCAD sẽ liệt kê danh sách lệnh cho bạn. Rất hữu ích đúng không các bạn .

 

Chức năng mới nữa trong AutoCAD 2012 là chức năng Explorer. Chức năng này cho phép bạn tìm kiếm về dữ liệu AutoCAD trong máy tính cũng như trên mạng. Nó cũng cho phép bạn truy cập dữ liệu từ AutoDesk tìm kiếm.

 

Các tính năng về hiệu chỉnh nóng Grips đã được giới thiệu trong AutoCAD 2011, nay được nâng cấp thêm ở AutoCAD 2012 dành cho các đối tượng như: lines, dimensions, mleaders, arcs.

 

Một sự thay đổi trong AutoCAD 2012 nữa đó là chế độ SNAP chỉ tự động bắt điểm lưới khi bạn kích chọn 1 điểm, do đó bạn có thể di con trỏ một cách tự do trên giao diện người sử dụng mà không bị nhảy theo bước nhảy đã cài đặt. Các phiên bản trước đó, khi bạn bật chế độ SNAP thì con trỏ cứ giật giật nhảy bước khi bạn di chuyển nó.

Bốn nhóm công cụ trong Groups đã được xếp cùng nhau trên 1 ribbon

 

Bạn có thể chọn và thay đổi trực tiếp UCS trên ngay giao diện người sử dụng bằng cách nhấp chọn và nó sẽ hiển thị các chức năng chỉnh sửa cho bạn

 

Bạn có thể điều chỉnh cấu hình khung nhìn, hướng nhìn, và phong cách trực quan ngay trong viewport.

Sáng tạo và sửa đổi đối tượng:

Lệnh ARRAY cũ đã được nâng cấp. Bây giờ, khi bạn bắt đầu câu lệnh nó nhắc nhở cho đối tượng array, hay kiểu array (Rectangular, Polar, new Path). Ngay sau khi bạn trả lời, Array được xây dựng trên màn hình trong chế độ xem trước. Bạn có thể kéo con trỏ đến kích thước của Array hoặc cung cấp đầu vào chi tiết tại các dòng lệnh. Khi bạn làm xong kết quả là một ARRAY mới thực tế. Bạn có thể điều chỉnh các thuộc tính của mảng trên màn hình hoặc hộp thoại thuộc tính. Các tùy chọn đường dẫn mới cũng tương tự như các lệnh MEASURE hoặc DIVIDE, ngoại trừ kết quả cũng là một ARRAY kết hợp.

 

Lệnh BLEND giúp spline tiếp tuyến được giữa hai đường cong, giống như polylines, lines, arc, và các đường spline khác.

Kích thước các menu ngữ cảnh hiện nay bao gồm một tùy chọn để loại bỏ phong cách ghi đè.

 

Mleader cải tiến:

Các FILLET và CHAMFER, lệnh này bao gồm một bản xem trước kết quả, cho phép bạn thay đổi khoảng cách bán kính FILLET hay CHAMFER trước khi bạn hoàn thành các lệnh. Điều này cũng hoạt động trên polylines, và bạn có thể FILLET đường splines

 

Raster đã được mở rộng bao gồm nhiều định dạng mới, bao gồm MrSID, ECW, và JPEG2000

Mtext sẽ nhớ sử dụng các cài đặt mới nhất thay vì luôn mặc định số 1,5 và nền màu đỏ.

Lệnh EXTEND sẽ hỗ trợ cho cả các đường Splines.

Các lệnh JOIN đã được thay đổi để bạn không cần phải chọn một đối tượng bắt đầu, chỉ cần chọn tất cả các đối tượng tham gia.

Lệnh COPY hiện nay cho phép bạn tạo ra một mảng kết hợp không tuyến tính. Không nên nhầm lẫn điều này với các lệnh thay đổi mảng ở trên. Kết quả cuối cùng ở đây chỉ đơn giản là bản sao của đối tượng gốc.

 

Hiện bây giờ là một tùy chọn để đóng băng một lớp ở tất cả các Viewports trừ một hiện tại. Điều này được tìm thấy bên trong lớp quản lý hoặc sử dụng lệnh VPLAYER.

Bây giờ bao gồm xây dựng một trong chuyển đổi hàng loạt bản vẽ, được sử dụng để lưu bản vẽ xuống nhiều tất cả các cách để định dạng R2000. Cơ bản giống như DWG TrueConvert và cùng công cụ DWG Trueview.

Overkill đã được tích hợp vào AutoCAD. Lệnh này được sử dụng để xóa các bản sao các đối tượng, và sửa lỗi hình học khác.

AutoCAD WS hỗ trợ được xây dựng để bạn có thể xuất bản vẽ của bạn lên web với một cú nhấp chuột.

Có ± 70 lệnh mới hoặc thay đổi, và ± 40 biến hệ thống mới hoặc thay đổi. Hai lệnh (BLIPMODE và DSVIEWER ) và sáu biến hệ thống đã được loại bỏ.

Sưu tầm lượm lặt

Hề hề hề,

Vậy là ý bác ketxu nói là của CAD2012, bác nói cad12 làm mình té xỉu vì cứ tưởng mình ngu. Theo mình nhớ thì thằng CAD12 mới chỉ có bập bõm về 3D phải đến CAD14 thì thằng cad3D nó mới oai một tí.

Hề hề hề, mình xài Cad2004 nên mọi thứ mới đều chửa cập nhật được, mong các bác thông cảm nha. Có gì ngu ngu nhờ các bác giúp đỡ chớ đừng trách kẻo tội nghiệp lắm lắm.

Hề hề 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

Theo chương trình hành động nay mình thêm phần chọn điểm bắt đầu rải và hướng rải cho lisp rải đối tượng theo đường dẩn.

*Lệnh rải cho toàn bộ đường dẩn thì vẩn như cũ.

*Lệnh rải từ điểm:

-Tên lệnh RTD.

-Chọn đối tượng cần rải như cũ.

-Chọn đường dẩn như cũ.

-Chọn điểm bắt đầu rải (nằm trên đường dẩn).

-Chọn điểm chỉ hướng rải (nằm trên đường dẩn).

-Lúc này các phần sau giống lisp cũ chỉ có điều đối tượng rải từ điểm bắt đầu do mình chọn và rải về phía mình chọn.

*Dự kiến là sau khi chọn 2 điểm sẽ hỏi các lựa chọn:

-Theo số lượng trên toàn bộ đoạn từ điểm bắt đầu rải theo hướng chỉ và đi hết đường dẩn. (cái này đã có)

-Theo khoảng cách trên toàn bộ đoạn từ điểm bắt đầu rải theo hướng chỉ và đi hết đường dẩn. (cái này đã có)

-Từ điểm bắt đầu rải theo hướng chỉ và đi hết đường dẩn hỏi số lần rải và khoảng cách rải (nhân với nhau không nhất thiết rải đến hết).

-Theo số lượng trên đoạn từ điểm bắt đầu rải đến điểm chỉ hướng.

-Theo khoảng cách trên đoạn từ điểm bắt đầu rải đến điểm chỉ hướng.

Đang nghỉ cách nào gộp vào 1 câu hỏi cho nó ngắn nên tạm thời dùng như trên đã.


(Defun c:rdt (/ ss doituong dsl dc ddd chondd chieudaicuver diemdau diemcuoi krai chieudaidoan slc sl index d2 p2 d5 p5 d3 p3 dt l m)
(vl-load-com)
(command "undo" "be")
(command "ucs" "")
(chonnhomdoituong)
(choncuver)
(hoikieurai)
(command "ucs" "p")
(command "undo" "end")
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun c:rtd (/ ss doituong dsl dc ddd chondd chieudaicuver diemdau diemcuoi krai chieudaidoan slc sl index d2 p2 d5 p5 d3 p3 dt l m)
(vl-load-com)
(command "undo" "be")
(command "ucs" "")
(chonnhomdoituong)
(choncuver)
(chondiemxuatphat)
(hoikieuraicd)
(command "ucs" "p")
(command "undo" "end")
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun chondiemxuatphat ()
(setq luubatdiem (getvar "osmode"))
(setvar "osmode" 545)
(setq diemchuan (getpoint "\nDiem bat dau rai tren duong dan:"))
(setq diemdinhhuong (getpoint diemchuan"\nHuong rai so voi diem chuan:"))
(setvar "osmode" 0)
(setq daidendiem (vlax-curve-getDistAtPoint chondd diemchuan))
(setq daidenhuong (vlax-curve-getDistAtPoint chondd diemdinhhuong))
(setvar "osmode"luubatdiem)
(Cond
((< daidendiem daidenhuong) (setq chieudaitinh (- chieudaicuver daidendiem)) (setq dautinh +))           
((> daidendiem daidenhuong) (setq chieudaitinh daidendiem) (setq dautinh -))
) 
(setq doanxuatphat daidendiem)
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun hoikieuraicd ()
 (setq kraicd (strcase (getstring "\nKieu rai theo: So luong/<Khoang cach>")))
(Cond
((= kraicd "S") (raisoluongcd))
((/= kraicd "S")(raikhoangcachcd))
) 
 (princ)
)
;;;;;;;;;;;;;;
(Defun raikhoangcachcd ()
  (setq chieudaidoan (GETDIST "\nKhoang cach doan chia: "))
  (setq sol (+ (/ chieudaitinh chieudaidoan) 1))
   (setq sl (fix sol))
   (setq sl (fix sl))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun raisoluongcd ()
(setq slc (getreal "\nChia duong dan thanh may lan:"))
(setq chieudaidoan (/ chieudaitinh slc))
(setq sl (fix (+ 1 slc)))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun chonnhomdoituong ()
 (princ "\nChon doi tuong rai:")
 (setq ss (ssget))

(cond 
     ((= ss nil) (princ "\nChua chon duoc doi tuong nao:") (chonnhomdoituong))
     ((/= ss nil) 
(setq dsl (sslength ss))
           (cond 
           ((= dsl 1) 
(setq doituong (ssname SS 0))
(setq doituong (entget doituong))
(setq KIEUDOITUONG (cdr (assoc 0 doituong)))
                  (cond 
                  ((= KIEUDOITUONG "INSERT") (setq dc (cdr (assoc 10 doituong))))
                  ((/= KIEUDOITUONG "INSERT") (chondiemchuandoituong))
                  );ketthuccondxemblock
                );kethucdsl1
           ((/= dsl 1) (chondiemchuandoituong))
           );ketthuccondnho

);ketthucsetqdsl
);ketthuccondtong  
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun chondiemchuandoituong ()
(setq dc (getpoint "\nChon diem goc: "))
(cond 
     ((= dc nil) (princ "\nChua chon duoc diem goc:") (chondiemchuandoituong))
     ((/= ss nil))) 
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun choncuver ()

(setq ddd (entsel "\nChon duong dan:"))
(while
(or
(null ddd)
(or (= "TEXT" (cdr (assoc 0 (entget (car ddd))))) (= "MTEXT" (cdr (assoc 0 (entget (car ddd))))) (= "HATCH" (cdr (assoc 0 (entget (car ddd))))) (= "INSERT" (cdr (assoc 0 (entget (car ddd))))) (= "REGION" (cdr (assoc 0 (entget (car ddd))))) (= "DIMENSION" (cdr (assoc 0 (entget (car ddd)))))
)
)
(setq ddd (entsel "\nDoi tuong khong the lam duong dan! Chon lai"))
)

(setq chondd (car ddd))
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq chieudaicuver (vlax-curve-getDistAtParam chondd (vlax-curve-getEndParam chondd)))
(setq doanxuatphat 0)
(setvar "osmode"luubatdiem)
 (princ)
)
;;;;;;;;;;;;;;;;;
(Defun hoikieurai ()
(setq dautinh +)
 (setq krai (strcase (getstring "\nKieu rai theo: So luong/<Khoang cach>")))
(Cond
((= krai "S") (raisoluong))
((/= krai "S")(raikhoangcach))
) 

 (princ)
)
;;;;;;;;;;;;;;
(Defun raikhoangcach ()
  (setq chieudaidoan (GETDIST "\nKhoang cach doan chia: "))
  (setq sol (+ (/ chieudaicuver chieudaidoan) 1))
   (setq sl (fix sol))
   (setq sl (fix sl))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun raisoluong ()
(setq slc (getreal "\nChia duong dan thanh may lan:"))
(setq chieudaidoan (/ chieudaicuver slc))
(setq sl (fix (+ 1 slc)))
(thuchienrai)
 (princ)
)
;;;;;;;;;;;;;;
(Defun thuchienrai (/ quaykhong)

 (setq quaykhong (strcase (getstring "\nCo quay doi tuong vuong goc voi duong dan khong: Khong/<Co>")))
(Cond
((= quaykhong "K") (setq copygiua copykoquay))
((/= quaykhong "K")(setq copygiua copyquay))
) 

(setq index -1)

 (repeat sl
(setq index (1+ index))
(setq d2 (dautinh doanxuatphat (* chieudaidoan index)))
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq p2 (vlax-curve-getPointAtDist chondd d2))
(setvar "osmode"luubatdiem)
(copygiua)
 )
 (princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;
(defun copycuoiquay()
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq d5 (- (dautinh doanxuatphat (* chieudaidoan index)) 0.01))
(setq p5 (vlax-curve-getPointAtDist chondd d5))
(setq L 0)
(setq M (sslength ss))
(while (< L M)
  (setq DT (ssname ss L))
  (command ".copy" DT "" dc p2)
  (command ".rotate" "last" "" p2 p5)
  (command ".rotate" "last" "" p2 180)
  (setq L (1+ L))
)
(setvar "osmode"luubatdiem)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;
(defun COPYQUAY(/ p3)
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(setq d3 (+ (dautinh doanxuatphat (* chieudaidoan index)) 0.001))
(setq p3 (vlax-curve-getPointAtDist chondd d3))
(setvar "osmode"luubatdiem)
(Cond
((= p3 nil) (copycuoiquay))
((/= p3 nil) 
(setq L 0)
(setq M (sslength ss))
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(while (< L M)
  (setq DT (ssname ss L))
  (command ".copy" DT "" dc p2)
  (command ".rotate" "last" "" p2 p3)
  (setq L (1+ L))
)
(setvar "osmode"luubatdiem)
)
) 


(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;
(defun COPYKOQUAY()
(setq luubatdiem (getvar "osmode"))
 (setvar "osmode" 0)
(command ".copy" ss "" dc p2 "")
(setvar "osmode"luubatdiem)
(princ)
)
;;;;;;;;;;;;;;

Nhờ bác Duy và các bác trên diễn đàn cải tiến lisp rải đối tượng của bác Duy giùm em với yêu cầu như sau:

Đối tượng nguồn là text, sau khi rải, text sẽ được chèn vào điểm là giao điểm của các đường thẳng or cung tròn, or polyline với đường dẫn.Các text rải sẽ tăng dần đều.Em gửi hình minh họa để nhờ các bác chỉnh giùm em.Thanks các anh chị trên diễn đàn

Untitled-18.png

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

×