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

Đổi điểm chèn sau khi đã chèn block khắp nơi

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

Hôm nay mình mới biết là khi tạo block cần phải đặt tâm của block thì khi stretch, block đó sẽ dịch chuyển theo. Nhưng mà bây giờ trong bản vẽ, cùng một block mà mình đã insert khắp nơi thì có cách nào giúp mình chuyển tâm block đó về gần với block được không? Nhân tiện cũng xin cảm ơn 2 bạn PH168XD và QP14 đã giải đáp giúp mình câu hỏi về stretch 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
Hôm nay mình mới biết là khi tạo block cần phải đặt tâm của block thì khi stretch, block đó sẽ dịch chuyển theo. Nhưng mà bây giờ trong bản vẽ, cùng một block mà mình đã insert khắp nơi thì có cách nào giúp mình chuyển tâm block đó về gần với block được không? Nhân tiện cũng xin cảm ơn 2 bạn PH168XD và QP14 đã giải đáp giúp mình câu hỏi về stretch block!!!

Cái ấy đơn giản thôi anh cứ Explode một block rồi tiến hành Block lại, Chọn đối tượng => chọn điểm chèn theo yêu cầu => Vẫn gữi nguyên tên cũ => Xong. (lưu ý ko được đặt tên khác). Một Block bị thay đổi điểm chèn , các block khác thấy thế buồn quá thương bạn cũng thay đổi theo

 

Anh hỏi ở mục câu hỏi thường gặp đúng chỗ hơ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
Cái ấy đơn giản thôi anh cứ Explode một block rồi tiến hành Block lại, Chọn đối tượng => chọn điểm chèn theo yêu cầu => Vẫn gữi nguyên tên cũ => Xong. (lưu ý ko được đặt tên khác). Một Block bị thay đổi điểm chèn , các block thấy thế buồn quá thương bạn cũng thay đổi theo

Nếu làm cách haanh thì các block này tha hồ nhảy múa, bởi khi đó thì block sẽ nhảy theo tâm block, chứ không phải tâm Block nhảy theo block nữa rồi (Mình nghĩ là ý tác giả muốn tâm BL về gần BL nhưng vị trí đặt BL không đổi) :s_big: AI có cách giải quyết vấn đề này thì cho mình học hỏi với :s_big:

  • 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ếu làm cách haanh thì các block này tha hồ nhảy múa, bởi khi đó thì block sẽ nhảy theo tâm block, chứ không phải tâm Block nhảy theo block nữa rồi (Mình nghĩ là ý tác giả muốn tâm BL về gần BL nhưng vị trí đặt BL không đổi) :s_big: AI có cách giải quyết vấn đề này thì cho mình học hỏi với :s_big:

Bạn đọc bài viết này sẽ tìm ra lời giải cho mình :

Dời điểm Insert Block

  • 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ếu làm cách haanh thì các block này tha hồ nhảy múa, bởi khi đó thì block sẽ nhảy theo tâm block, chứ không phải tâm Block nhảy theo block nữa rồi (Mình nghĩ là ý tác giả muốn tâm BL về gần BL nhưng vị trí đặt BL không đổi) :s_big: AI có cách giải quyết vấn đề này thì cho mình học hỏi với :s_big:

 

Em sơ suất không nghĩ là block nó nhảy múa lung tung lên vì mừng vui!

Đây cũng là bài học kinh nghiệm quý đáng suy ngẫm rút ra từ... CADViet để mang ra thực nghiệm trong cuộc sống!

  • 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

Cảm ơn các bạn. Mình làm được rồi nhưng cũng phải qua một số bước trung gian. Nhưng mình lại gặp phải một trường hợp là: có nhiều block khác nhau, được chèn khắp nơi trên bản vẽ mà bây giờ muốn đưa các tâm block nào thì về lại gần vị trí của block đó thì chịu.

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
Bạn đọc bài viết này sẽ tìm ra lời giải cho mình :

Dời điểm Insert Block

-Bên topic đó vấn đề cũng chưa giải quyết xong!

-Mình đang lên 1 cái giàn bài để giải quyết thử (không biết thành công hay không và bao lâu mới xong) và cần kiến thức sau bạn nào giúp mình với:

+Lấy thông tin từ 1 block và tạo block mới (tên khác) cùng nội dung chỉ khác điểm chèn. (vui lòng không dùng các hàm vl giúp mình).

-Cám ơn!

 

À mình đưa giàn bài lên coi có bạn nào hứng thú thì thử xem biết đâu nhanh hơn mình làm đấy:

-Hỏi chọn block đã tồn tại trên bản vẻ:

+Lấy thông tinvề block gồm:

++Tỉ lệ.

++Góc quay.

++Điểm chèn.

-Hỏi điểm chèn mới xo với block vừa chọn.

+Tính khoảng cách giữa điểm chèn cũ và mới. (cộng trừ nhân chia với góc và tỉ lệ chèn của block để ra khaỏng cách khi block là x=1, y=1)

-Tạo block mới với tên cũ + thêm cái gì đó tùy mình.

-Đọc tất cả bản vẽ tìm block cũ lấy thông tin, xóa nó đi và chèn block mới vào.

  • 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
Hôm nay mình mới biết là khi tạo block cần phải đặt tâm của block thì khi stretch, block đó sẽ dịch chuyển theo. Nhưng mà bây giờ trong bản vẽ, cùng một block mà mình đã insert khắp nơi thì có cách nào giúp mình chuyển tâm block đó về gần với block được không? Nhân tiện cũng xin cảm ơn 2 bạn PH168XD và QP14 đã giải đáp giúp mình câu hỏi về stretch block!!!

MÌnh nghĩ có một cách này có thể dùng tạm thời:

 

Trước hết tạo 1 block giống như block của bạn(Đặt tên khác nhé) nhưng tâm thì đưa về điểm cần đặt, Sau đó dùng lệnh match prop block trong bộ ACV của diễn đàn để thay đổi cho những Block còn lại.

 

Cách này chỉ dùng được cho những block giống nhau mà thôi. :s_big: còn nếu bạn muốn tốt hơn chắc phải chờ dự án của bác Duy ra đời :s_big:

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
-Bên topic đó vấn đề cũng chưa giải quyết xong!

-Mình đang lên 1 cái giàn bài để giải quyết thử (không biết thành công hay không và bao lâu mới xong) và cần kiến thức sau bạn nào giúp mình với:

+Lấy thông tin từ 1 block và tạo block mới (tên khác) cùng nội dung chỉ khác điểm chèn. (vui lòng không dùng các hàm vl giúp mình).

-Cám ơn!

 

À mình đưa giàn bài lên coi có bạn nào hứng thú thì thử xem biết đâu nhanh hơn mình làm đấy:

-Hỏi chọn block đã tồn tại trên bản vẻ:

+Lấy thông tinvề block gồm:

++Tỉ lệ.

++Góc quay.

++Điểm chèn.

-Hỏi điểm chèn mới xo với block vừa chọn.

+Tính khoảng cách giữa điểm chèn cũ và mới. (cộng trừ nhân chia với góc và tỉ lệ chèn của block để ra khaỏng cách khi block là x=1, y=1)

-Tạo block mới với tên cũ + thêm cái gì đó tùy mình.

-Đọc tất cả bản vẽ tìm block cũ lấy thông tin, xóa nó đi và chèn block mới vào.

Đây là đoạn Code mà Tue_NV xây dựng dựa trên dàn ý của Anh Duy782006

(defun c:DB(/ n i str snn mau tencu diemcu diemmoi Trx Try Trz ss sn ent 
TLX TLY TLZ tam gocquay pointX pointY pointZ pointmoi)

(setq snn (car(entsel "\n Chon Block can doi diem chen :")))

(setq tenmoi (getstring "\n Nhap ten block moi :"))
(while (tblsearch "block" tenmoi)
(princ "\n Ten Block da co :")
(setq tenmoi (getstring "\n Nhap lai ten block moi :"))
)
(setq mau (entget snn))

(setq tencu (cdr(assoc 2 mau)))
(setq diemcu (cdr(assoc 10 mau)))
(setq diemmoi (getpoint "\n Chon diem chen moi cho Block nay :"))
(setq Trx (- (car diemmoi) (car diemcu)))
(setq Try (- (cadr diemmoi) (cadr diemcu)))
(setq Trz (- (caddr diemmoi) (caddr diemcu)))

(setq TLXc (cdr(assoc 41 mau)))
(setq TLYc (cdr(assoc 42 mau)))
(setq TLZc (cdr(assoc 43 mau)))

(setq gocquayc (/ (* (cdr(assoc 50 mau)) 180) pi))

(Command "Block" tenmoi diemmoi snn "")
(Command "Insert" tenmoi diemmoi TLXc TLYc gocquayc)

(setq ss (ssget "X" (list( cons 0 "INSERT") (cons 2 tencu))))

(setq n (sslength ss) i 0)

(while (
(setq sn (ssname ss i))
(setq ent (entget sn))
(setq TLX (cdr(assoc 41 ent)))
(setq TLY (cdr(assoc 42 ent)))
(setq TLZ (cdr(assoc 43 ent)))
(setq tam (cdr(assoc 10 ent)))
(setq gocquay (/ (* (cdr(assoc 50 ent)) 180) pi))

(setq pointX (+ (car tam) Trx))
(setq pointY (+ (cadr tam) Try))
(setq pointZ (+ (caddr tam) Trz))
(setq pointmoi (list pointX pointY pointZ))

(Command "Block" tenmoi "y" pointmoi sn "")
(Command "Insert" tenmoi pointmoi TLX TLY gocquay)
(setq i (1+ i))
)
(princ)
)

 

@ anh Duy782006 :

Cứ mỗi lần tạo block mới (tên khác) cùng nội dung chỉ khác điểm chèn. thì mình lại phải đặt lại cho nó 1 cái tên mới. Vậy thì nhiều tên lắm. Đây là điều mà Code chưa được hoàn thiện lắm.

Mọi người góp ý thêm để Tue_NV hoàn thiện Code

 

@Ban quản trị : Xin Ban quản trị dời bài viết này vào mục topic thích hợp. Cứ như vầy thì khó tìm lắm.

 

@ldrt2004 : Tue_NV góp ý với bạn : nên post bài vào đúng chủ đề

  • 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ình đã test thử thì thấy có mấy vấn đề sau:

 

1/ khi chèn tâm block mới thì các block nhảy loạn xạ. (yêu cầu của đề bài là muôn tâm block thay đổi nhưng vị trí block không đổi)

2/ Nó đưa các đối tượng trong block về layer hiện hành (Việc này đôi khi không tiện với những block trước đó có nhiều layer)

3/ Nếu bản vẽ có quá nhiều block thì nó chạy rất lâu (Cái này có lẽ phải chấp nhận :s_big: )

 

 

Mình có mấy ý như trên bác xem lại nhé. :s_big:

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

Cứ mỗi lần tạo block mới (tên khác) cùng nội dung chỉ khác điểm chèn. thì mình lại phải đặt lại cho nó 1 cái tên mới. Vậy thì nhiều tên lắm. Đây là điều mà Code chưa được hoàn thiện lắm.

Mọi người góp ý thêm để Tue_NV hoàn thiện Code

 

@Ban quản trị : Xin Ban quản trị dời bài viết này vào mục topic thích hợp. Cứ như vầy thì khó tìm lắm.

 

@ldrt2004 : Tue_NV góp ý với bạn : nên post bài vào đúng chủ đề

Tue đừng hỏi tên làm gì cứ mặc định tên cũ + thêm cái gì đó cho khỏe. Mình không nghỉ được cách khác tue cứ nghỉ xem. Cũng chưa test thử lisp của tue nửa bận 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
Mình đã test thử thì thấy có mấy vấn đề sau:

 

1/ khi chèn tâm block mới thì các block nhảy loạn xạ. (yêu cầu của đề bài là muôn tâm block thay đổi nhưng vị trí block không đổi)

2/ Nó đưa các đối tượng trong block về layer hiện hành (Việc này đôi khi không tiện với những block trước đó có nhiều layer)

3/ Nếu bản vẽ có quá nhiều block thì nó chạy rất lâu (Cái này có lẽ phải chấp nhận :s_big: )

Mình có mấy ý như trên bác xem lại nhé. :s_big:

1-Để giải quyết cái này tue cần thêm 1 đoạn move block trên cơ sở tính toán điểm đặt cũ và mới thên góc quay và tỉ lệ cái này cần lấy ngay từ bước đầu và tính toán ra thông số chuẩn sau đó áp dụng cho từng block với từng hệ số.

2-Không xó block và ínẻt lại mà chỉnh sửa thông tin thay hết tên block cũ bằng tên block mới

*Hai ý trên mình nghỉ giải quyết như vậy là xong

3-Ừ

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 đã test thử thì thấy có mấy vấn đề sau:

 

1/ khi chèn tâm block mới thì các block nhảy loạn xạ. (yêu cầu của đề bài là muôn tâm block thay đổi nhưng vị trí block không đổi)

2/ Nó đưa các đối tượng trong block về layer hiện hành (Việc này đôi khi không tiện với những block trước đó có nhiều layer)

Mình có mấy ý như trên bác xem lại nhé. :s_big:

Ý 1 : Code của Tue_NV không bị lỗi này.

 

Ý 2 : Tue_NV đã chỉnh lại theo ý của bạn xuantran

 

Các bạn thử test lại xem. Có vấn đề gì thì Tue_NV sẽ hoàn thiện code này :

 

(defun c:DB(/ n i tenmoi snn mau tencu diemcu diemmoi Trx Try Trz ss sn ent 
TLXc TLYc TLZc gocquayc TLX TLY TLZ tam gocquay pointX pointY pointZ pointmoi lay)
(command "undo" "be")
(setq lay (getvar "clayer"))
(setq snn (car(entsel "\n Chon Block can doi diem chen :")))

(setq tenmoi (getstring "\n Nhap ten block moi :"))
(while (tblsearch "block" tenmoi)
(princ "\n Ten Block da co :")
(setq tenmoi (getstring "\n Nhap lai ten block moi :"))
)
(setq mau (entget snn))
(Command "clayer" (cdr(assoc 8 mau)))
(setq tencu (cdr(assoc 2 mau)))
(setq diemcu (cdr(assoc 10 mau)))
(setq diemmoi (getpoint "\n Chon diem chen moi cho Block nay :"))
(setq Trx (- (car diemmoi) (car diemcu)))
(setq Try (- (cadr diemmoi) (cadr diemcu)))
(setq Trz (- (caddr diemmoi) (caddr diemcu)))

(setq TLXc (cdr(assoc 41 mau)))
(setq TLYc (cdr(assoc 42 mau)))
(setq TLZc (cdr(assoc 43 mau)))

(setq gocquayc (/ (* (cdr(assoc 50 mau)) 180) pi))

(Command "Block" tenmoi diemmoi snn "")
(Command "Insert" tenmoi diemmoi TLXc TLYc gocquayc)

(setq ss (ssget "X" (list( cons 0 "INSERT") (cons 2 tencu))))

(setq n (sslength ss) i 0)

(while (
(setq sn (ssname ss i))
(setq ent (entget sn))
(setq TLX (cdr(assoc 41 ent)))
(setq TLY (cdr(assoc 42 ent)))
(setq TLZ (cdr(assoc 43 ent)))
(setq tam (cdr(assoc 10 ent)))
(setq gocquay (/ (* (cdr(assoc 50 ent)) 180) pi))

(setq pointX (+ (car tam) Trx))
(setq pointY (+ (cadr tam) Try))
(setq pointZ (+ (caddr tam) Trz))
(setq pointmoi (list pointX pointY pointZ))

(Command "Block" tenmoi "y" pointmoi sn "")
(Command "Insert" tenmoi pointmoi TLX TLY gocquay)
(setq i (1+ i))
)
(setvar "clayer" lay)
(command "undo" "end")
(princ)
)

:s_big:

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
Ý 1 : Code của Tue_NV không bị lỗi này.

 

Các bạn thử test lại xem. Có vấn đề gì thì Tue_NV sẽ hoàn thiện code này :

Vấn đề nằm ở chổ khi các Block này bị quay những góc khác nhau thì lisp không còn đúng nữa bác ạ. Trường hợp các Block không bị thay đổi góc quay thì nó tót rồi. :s_big:

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
Vấn đề nằm ở chổ khi các Block này bị quay những góc khác nhau thì lisp không còn đúng nữa bác ạ. Trường hợp các Block không bị thay đổi góc quay thì nó tót rồi. :s_big:

Quả thật là Tue_NV chưa test trường hợp góc quay của Block khác 0. Tue_NV đã chỉnh Code lại. Bạn chạy thử nhé :

(defun c:DB(/ lay snn tenmoi mau tencu diemcu diemmoi Trx Try Trz TLXc TLYc TLZc
gocquayc ssg j nn entt ss n i sn ent TLX TLY TLZ tam gocquay pointX pointY pointZ pointmoi)
(command "undo" "be")
(setq lay (getvar "clayer"))
(setq snn (car(entsel "\n Chon Block can doi diem chen :")))

(setq tenmoi (getstring "\n Nhap ten block moi :"))
(while (tblsearch "block" tenmoi)
(princ "\n Ten Block da co :")
(setq tenmoi (getstring "\n Nhap lai ten block moi :"))
)
(setq mau (entget snn))
(Command "clayer" (cdr(assoc 8 mau)))
(setq tencu (cdr(assoc 2 mau)))
(setq diemcu (cdr(assoc 10 mau)))
(setq diemmoi (getpoint "\n Chon diem chen moi cho Block nay :"))
(setq Trx (- (car diemmoi) (car diemcu)))
(setq Try (- (cadr diemmoi) (cadr diemcu)))
(setq Trz (- (caddr diemmoi) (caddr diemcu)))

(setq TLXc (cdr(assoc 41 mau)))
(setq TLYc (cdr(assoc 42 mau)))
(setq TLZc (cdr(assoc 43 mau)))

(setq gocquayc (/ (* (cdr(assoc 50 mau)) 180) pi))

(Command "Block" tenmoi diemmoi snn "")
(Command "Insert" tenmoi diemmoi TLXc TLYc 0)

(setq ssg (ssget "X" (list( cons 0 "INSERT") (cons 2 tencu))) j 0 nn (sslength ssg))

(while ((setq entt (entget(ssname ssg 0)))
(setq entt (subst (cons 50 0) (assoc 50 entt) entt))
(entmod entt)
(setq j (1+ j))
)

(setq ss (ssget "X" (list( cons 0 "INSERT") (cons 2 tencu))))
(setq n (sslength ss) i 0)

(while (
(setq sn (ssname ss i))
(setq ent (entget sn))
(setq TLX (cdr(assoc 41 ent)))
(setq TLY (cdr(assoc 42 ent)))
(setq TLZ (cdr(assoc 43 ent)))
(setq tam (cdr(assoc 10 ent)))
(setq gocquay (/ (* (cdr(assoc 50 ent)) 180) pi))

(setq pointX (+ (car tam) Trx))
(setq pointY (+ (cadr tam) Try))
(setq pointZ (+ (caddr tam) Trz))
(setq pointmoi (list pointX pointY pointZ))

(Command "Block" tenmoi "y" pointmoi sn "")
(Command "Insert" tenmoi pointmoi TLX TLY 0)
(setq i (1+ i))
)
(setvar "clayer" lay)
(command "undo" "end")
(princ)
)

Các bạn hãy chạy thử và góp ý thêm để Tue_NV hoàn thiện code :s_big:

  • 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

Nó vẫn bị lỗi đấy Bác Tue à (Các Block bị xoay sau khi đổi tâm BL thì nó lại xoay lại như BL gốc -> Block sẽ bị thay đổi vị trí ). Bác đi làm sớm thế. :s_big:

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ói thì bao giờ cũng dể hơn làm nhưng mình cũng nhiều chuyện chút:

-Lấy góc quay của block được chọn = gocquaychon

-Lấy góc tạo bởi điểm chèn mới và điểm chèn cũ tạo với trục x = gocquaytam

-Góc quay chẩn: gocquaychuan= gocquaychon - gocquaytam

-Dùng hàm polar tạo điểm đến diemden từ khoảng cách và góc quay

-Thay đổi block cũ bằng block mới và move tới điểm đến

  • 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ó vẫn bị lỗi đấy Bác Tue à (Các Block bị xoay sau khi đổi tâm BL thì nó lại xoay lại như BL gốc -> Block sẽ bị thay đổi vị trí ). Bác đi làm sớm thế. :s_big:

Bạn đã thử test kỹ lại chưa? Tue_NV đã test kỹ lại rồi. Các block gốc có góc xoay khác 0 sẽ không bị xoay nữa và không bị thay đổi vị trí khi ta Chọn điểm chèn mới cho Block này.

 

Bạn có thể nói rõ ý trên của bạn được không?

 

@ Anh Duy : Anh có thể nói rõ dùm em 2 ý này được không?

 

-Góc quay chẩn: gocquaychuan= gocquaychon - gocquaytam

-Dùng hàm polar tạo điểm đến diemden từ khoảng cách góc quay

-Thay đổi block cũ bằng block mới và move tới điểm đế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
Bạn đã thử test kỹ lại chưa? Tue_NV đã test kỹ lại rồi. Các block gốc có góc xoay khác 0 sẽ không bị xoay nữa và không bị thay đổi vị trí khi ta Chọn điểm chèn mới cho Block này.

 

Bạn có thể nói rõ ý trên của bạn được không?

Đây là hình ảnh minh hoạ khi em test lisp của bác, Hy vọng có thể giúp bác hoàn thiện nó. :s_big:

 

Block.bmp

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
Bạn đã thử test kỹ lại chưa? Tue_NV đã test kỹ lại rồi. Các block gốc có góc xoay khác 0 sẽ không bị xoay nữa và không bị thay đổi vị trí khi ta Chọn điểm chèn mới cho Block này.

 

Bạn có thể nói rõ ý trên của bạn được không?

 

@ Anh Duy : Anh có thể nói rõ dùm em 2 ý này được không?

 

-Góc quay chẩn: gocquaychuan= gocquaychon - gocquaytam

-Dùng hàm polar tạo điểm đến diemden từ khoảng cách góc quay

-Thay đổi block cũ bằng block mới và move tới điểm đến

Mình diển đạt rất tệ nhưng cũng cố coi sao nếu khó hiểu quá thì mình xin cái lisp của bạn rồi hôm nào test và viết theo ý mình xem.

doiblock.jpg

Giả sử block chọn ban đầu có góc quay trong đó:

N: điểm chèn cũ của block.

M: điểm chèn mới của block.

A: góc quay của block.

B: góc giữa mn và trục x.

L: khoảng cách giữa n và m.

Đối với bolck có qúc quay khác A điểm M xác định bằng điểm N khoàng cách L góc B.

Góc B bằng góc A + C, nếu a thay đổi B thay đổi theo do đó mình cần có giá trị C để tính.

Ở trường hợp bước đầu C=B-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

Cứ để bạn Tue viết mà ngồi ngoài nói hoài trông có vẻ thọc gậy bánh xe quá nên mình mạn phép sửa cái lisp thành như sau:

-Tên lệnh: DBL.

-Chọn block.

-Chọn điểm chèn mới.

*Đúng với block quay mọi góc độ nhưng chưa không đúng khi block bị scale (Có cách nếu tỉ lệ giửa trục x và trục y là bằng nhau). Mình chưa đưa phần tỉ lệ vào vì bị vướng như trên không nghỉ ra cách. Nhờ các bạn test giúp nếu đạt yêu cầu và chấp nhận áp dụng cho tỉ lệ điều giữa 2 phương thì mình bổ sung 1 đoạn.

 

http://www.cadviet.com/upfiles/doiblockduy.lsp

  • 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
*Đúng với block quay mọi góc độ nhưng chưa không đúng khi block bị scale

http://www.cadviet.com/upfiles/doiblockduy.lsp

Em đã xem thử và thấy đúng như bác nói,

 

(Có cách nếu tỉ lệ giửa trục x và trục y là bằng nhau). Nhờ các bạn test giúp nếu đạt yêu cầu và chấp nhận áp dụng cho tỉ lệ đều giữa 2 phương thì mình bổ sung 1 đoạn.

 

http://www.cadviet.com/upfiles/doiblockduy.lsp

Phần này thì em không rõ lắm và cũng chẳng thể có cao kiến gì :s_big:

  • 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
Em đã xem thử và thấy đúng như bác nói,

Phần này thì em không rõ lắm và cũng chẳng thể có cao kiến gì :s_big:

Phát hiện thêm 1 lổi là lisp sẽ sai với trường hợp block bị mirror => bài toán quá rắt rối => từ bỏ :s_big:

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ứ để bạn Tue viết mà ngồi ngoài nói hoài trông có vẻ thọc gậy bánh xe quá nên mình mạn phép sửa cái lisp thành như sau:

-Tên lệnh: DBL.

-Chọn block.

-Chọn điểm chèn mới.

*Đúng với block quay mọi góc độ nhưng chưa không đúng khi block bị scale (Có cách nếu tỉ lệ giửa trục x và trục y là bằng nhau). Mình chưa đưa phần tỉ lệ vào vì bị vướng như trên không nghỉ ra cách. Nhờ các bạn test giúp nếu đạt yêu cầu và chấp nhận áp dụng cho tỉ lệ điều giữa 2 phương thì mình bổ sung 1 đoạn.

 

http://www.cadviet.com/upfiles/doiblockduy.lsp

 

Phát hiện thêm 1 lổi là lisp sẽ sai với trường hợp block bị mirror => bài toán quá rắt rối => từ bỏ

Anh Duy : Anh đừng nói thế. Tue_NV buồn lắm. Tue_NV không bao giờ nghĩ thế đâu, anh đừng nói như thế. Thời gian này công việc của em quá bận nên chưa tập trung viết cái này được. Tue_NV sẽ cố hết sức mình để hoàn thiện đoạn Code này. Cũng mong mọi người có ý kiến để mình hoàn thiện Code

 

Rất cảm ơn anh đã nhiệt tình với Tue_NV và với diễn đàn trong thời gian qua.

Tue_NV học tập ở anh và biết ơn anh rất nhiều :s_big:

  • 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ói vậy chứ mình cũng để dành và coi vấn đề này là mục tiêu giải quyết (trong thời gian thong thả kìa chứ dạo này :s_big: ).

Để giải quyết vấn được này đầu tiên cần làm được cái ý sau thì mới tiếp tục làm gì thì làm được.

*Từ 1 block có góc quay bất kỳ, tỉ lệ x và y khác nhau. Hỏi chọn bolck cần chỉnh, hỏi chọn điểm chèn mới. Tính toán làm sao tạo cho được block mới có điểm chèn đúng chổ mình chỉ hồi nảy. Tue xem cách mình làm với phần chưa tính tỉ lệ sẽ hiểu cái mình nói mấy hôm nay.

*Lưu ý ngay cả khi giải quyết thành công hết các vấn đề thì cái block bị mirror vẩn bó tay.

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

×