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

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

hi! tui là thành viên mới, thấy topic ày hay nên góp vào một bài toán sau: vẽ hcn, kích thước 60 và 40 phải là số chẵn tuyệt đối.

http://www.cadviet.com/upfiles/dovui_1.dwg.

, nhanh tay.

phisan

 

Đầu tiên cữ hình chữ nhật (HCN) 60x40.

Vẽ đường tròn cũng tâm với HCN cắt 4 cạnh HCN.

Nối giao điểm và xóa các nét tạm.

Hết!

  • 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
Đầu tiên cữ hình chữ nhật (HCN) 60x40.

Vẽ đường tròn cũng tâm với HCN cắt 4 cạnh HCN.

Nối giao điểm và xóa các nét tạm.

Hết!

Bạn ơi, bài toán này vô số nghiệm bạ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
;;;CADALYST 01/07 Tip 2169: XMINSERT.lsp Explode Minsert © 2007 Jeffery P. Sanders

;;;--- XMINSERT - Replace a minsert entity with individual blocks arrayed.
;;;
;;;
;;;
;;;--- This program will delete the XMINSERT entity after an array is created.
;;; It will restore the attribute values contained inside the minsert.
(defun C:XMINSERT()
;;;--- Function to change an attributes value

(defun repAttVal(en tagName newVal)

;;;--- Get the DXF group codes of the entity
(setq enlist(entget en))

;;;--- Get the name of the block
(setq blkName(cdr(assoc 2 enlist)))

;;;--- Check to see if the block's attribute flag is there
(if(cdr(assoc 66 enlist))
(progn

;;;--- Get the entity name
(setq en(entnext en))

;;;--- Get the entity dxf group codes
(setq enlist(entget en))

;;;--- Get the type of block
(setq blkType (cdr(assoc 0 enlist)))

;;;--- If group 66 then there are attributes nested inside this block
(setq group66(cdr(assoc 66 enlist)))

;;;--- Loop while the type is an attribute or a nested attribute exist
(while(or (= blkType "ATTRIB")(= group66 1))

;;;--- Get the block type 
(setq blkType (cdr(assoc 0 enlist)))

;;;--- Get the block name 
(setq entName (cdr(assoc 2 enlist)))

;;;--- Check to see if this is the first attribute
(if(= blkType "ATTRIB")
(progn

;;;--- Get the attribute tag
(setq attTag(cdr(assoc 2 enlist)))

;;;--- Get the value of the attribute
(setq attVal(cdr(assoc 1 enlist))) 

;;;--- If this tag matches our search tag name
(if(= (strcase tagName)(strcase attTag))
(progn

;;;--- Replace the attribute's value
(setq enlist(subst (cons 1 newVal)(assoc 1 enlist)enlist))
(entmod enlist)
(entupd en)
)
)
)
)
;;;--- Get the next sub-entity or nested entity as you will
(setq en(entnext en))

;;;--- Get the dxf group codes of the next sub-entity
(setq enlist(entget en))

;;;--- Get the block type of the next sub-entity
(setq blkType (cdr(assoc 0 enlist)))

;;;--- See if the dxf group code 66 exist. if so, there are more nested attributes
(setq group66(cdr(assoc 66 enlist)))

)
)
)
)
;;;--- Function to return a list of tags and values from attributes in a block

(defun getAttData(en / attList attVal enlist blkType group66)

(setq attList(list))

;;;--- Get the DXF group codes of the entity
(setq enlist(entget en))

;;;--- Check to see if the block's attribute flag is there
(if(cdr(assoc 66 enlist))
(progn

;;;--- Get the entity name
(setq en(entnext en))

;;;--- Get the entity dxf group codes
(setq enlist(entget en))

;;;--- Get the type of block
(setq blkType (cdr(assoc 0 enlist)))

;;;--- If group 66 then there are attributes nested inside this block
(setq group66(cdr(assoc 66 enlist)))

;;;--- Loop while the type is an attribute or a nested attribute exist
(while(or (= blkType "ATTRIB")(= group66 1))

;;;--- Get the block type 
(setq blkType (cdr(assoc 0 enlist)))

;;;--- Check to see if this is an attribute
(if(= blkType "ATTRIB")
(progn

;;;--- If this matches your tag name
(setq attTag(cdr(assoc 2 enlist)))

;;;--- Get the value of the attribute
(setq attVal(cdr(assoc 1 enlist))) 

(setq attList(append attList (list (list attTag attVal))))
)
)

;;;--- Get the next sub-entity or nested entity as you will
(setq en(entnext en))

;;;--- Get the dxf group codes of the next sub-entity
(setq enlist(entget en))

;;;--- Get the block type of the next sub-entity
(setq blkType (cdr(assoc 0 enlist)))

;;;--- See if the dxf group code 66 exist. if so, there are more nested attributes
(setq group66(cdr(assoc 66 enlist)))

)
)
)
attList
)
;;;--- Main application

(setvar "cmdecho" 0)

;;;--- If the user selects an object
(if(setq ent(entsel "\nSelect MINSERT: "))
(progn

;;;--- If it is an object selected and not an point
(if(setq en(car ent))
(progn

;;;--- Make a copy of the entity name
(setq origEn en)

;;;--- Get the entities dxf group codes
(setq enlist(entget en))

;;;--- Get the data from the minsert
(setq blkName(cdr(assoc 2 enlist)))
(setq layName(cdr(assoc 8 enlist)))
(setq insPt(cdr(assoc 10 enlist)))
(setq cols(cdr(assoc 70 enlist)))
(setq rows(cdr(assoc 71 enlist)))
(setq colWidth(cdr(assoc 44 enlist)))
(setq rowWidth(cdr(assoc 45 enlist)))
(setq xScale(cdr(assoc 41 enlist)))
(setq yScale(cdr(assoc 42 enlist)))
(setq rAngle(cdr(assoc 50 enlist)))

;;;--- If group code 66 exist [ attributes follow flag ]
(if(assoc 66 enlist)

;;;--- Get the group code 66
(setq group66(cdr(assoc 66 enlist)))
)

;;;--- If it equals 1 then attributes follow..so
(if(= group66 1)
(progn

;;;--- Turn off attribute request during insertion
(setq oldAttReq(getvar "attreq"))
(setvar "attreq" 0)

;;;--- Get the attribute tags and values
(setq attList(getAttData en))
)
)

;;;--- Insert the new block
(command "-insert" blkName insPt xScale yScale (angtos rAngle))

;;;--- If it had attributes ...
(if(= group66 1)

;;;--- Reset the attribute request
(setvar "attreq" oldAttReq)
) 

;;;--- Get the last entity created...
(if(setq en(entlast))
(progn

;;;--- Get the group codes
(setq enlist(entget en))

;;;--- Get the name of the block
(setq blkName2(cdr(assoc 2 enlist)))

;;;--- If this is the block I just created... 
(if(= blkName blkName2)
(progn

;;;--- If it has an attributes flag code...
(if(assoc 66 enlist)
(progn

;;;--- And attributes follow [code 66 = 1] 
(if(= (cdr(assoc 66 enlist)) 1)
(progn

;;;--- Replace the attribute values 
(foreach a attList
(repAttVal en (car a) (cadr a))
)
)
)
)
) 

;;;--- Delete the minsert entity
(entdel origEn)

;;;--- Array the new block to represent the minsert entity
(command "-array" en "" "R" rows cols rowWidth colWidth)

;;;--- Inform the user
(setq str(itoa (* rows cols)))
(alert (strcat "Deleted MINSERT and added (" str ") blocks."))
)
)
)
)
)
)
)
)
(princ)
)

ôi.... cái này hay quá.... file này có thể bị khoá rồi.... các đồng chí làm lại việc rã đồi tượng cái này giùm mình xem....

http://www.cadviet.com/upfiles/Drawing1_39.dwg

cố lên...

pó tay...

hehhe :cheers:

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ài viết tham khảo

 

Không explore được block!, mặc dù đã dùng X và XP?!!

http://www.cadviet.com/forum/index.php?sho...Block+dóng+bang

không explore đối tượng block, khi đã bị modify

http://www.cadviet.com/forum/index.php?sho...Block+dóng+bang

Block ko thể explode đuợc!! Giải quyết thế nào đây???, Mặc dù đã cố gắng, nhưng vẫn pó tay

http://www.cadviet.com/forum/index.php?sho...Block+dóng+bang

  • 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
Bài viết tham khảo

file này là mình độ chế lại của pác nguyenhoanh đó. bạn xem thử có cách nào rã nó ra không. mình độ xong cũng không rã ra được nữa. hay là máy mình có vấ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
Chào bác ph168xd,

Hì hì, lâu quá mới gặp bác. Nhưng mà chửa hiểu ý bác ạ. Có phải bác muốn vẽ hai cái hình vuông mà có cả mầu đặc trong đó không ạ???

 

Đúng vậy. Vẽ hình trên chỉ bằng 1 lệnh duy nhất...

Bác nào giải đc hôm nào off em bái làm sư phụ.hhee

(Vâng, chào Bác Bình... dạo này em đi công tác xa, nên ít lên diễn đàn đc

Nhớ rượu off quá ròi.....chuẩn bị off thui các bác ơ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
Bạn ơi, bài toán này vô số nghiệm bạn ạ,

 

 

Chính xác, chí ít phải có thêm 1 dữ liệu nữa nếu không bài toán sẽ có vô số nghiệm...

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
Ko ai giải đc bải này sao

 

Hình như muốn vẽ hình này chỉ bằng một lệnh thì dùng lệnh Solid. Tuy nhiên, mình thử vẽ mãi vẫn chưa ổn, gặp khó khăn trong việc xác định điểm. Mình đang nghiên cứu tiếp.

  • 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ình như muốn vẽ hình này chỉ bằng một lệnh thì dùng lệnh Solid. Tuy nhiên, mình thử vẽ mãi vẫn chưa ổn, gặp khó khăn trong việc xác định điểm. Mình đang nghiên cứu tiếp.

Hình gì bạn ơi? mình mở ra ko thấy cái gì là sao?

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ậy. Vẽ hình trên chỉ bằng 1 lệnh duy nhất...

Bác nào giải đc hôm nào off em bái làm sư phụ.hhee

(Vâng, chào Bác Bình... dạo này em đi công tác xa, nên ít lên diễn đàn đc

Nhớ rượu off quá ròi.....chuẩn bị off thui các bác ơi

Hì hì, trước mắt mình thấy có hai cách.

1/- Dùng lệnh insert, nghĩa là tạo trước một block nằm đâu đó rồi insert một phát. Xong

2/- Dùng lisp. Tạo một lisp với đầy đủ yêu cầu như hình vẽ. Mở cad, appload lisp. gõ lệnh . Xong.

Ai có cách hay hơn thì biểu diễ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ác Bác vẽ đc hình sau chỉ bằng 1 lệnhduy nhất

http://www.cadviet.com/upfiles/Sanh_chinh2_Model_copy.jpg

 

Với bài này thì em làm như thế này:

 

http://www.4shared.com/file/100744568/fa335823/solid.html

 

Không hiểu sao không upload trực tiếp bằng trang cadviet được.

Không biết có đúng ý bác không?

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ới bài này thì em làm như thế này:

 

http://www.4shared.com/file/100744568/fa335823/solid.html

 

Không hiểu sao không upload trực tiếp bằng trang cadviet được.

Không biết có đúng ý bác không?

 

Bạn rất giỏi, nhưng rất tiếc đó không phải lời giải

vả lại làm theo cách của bạn thì biết điểm B ở đâu mà pick???

 

Lời giải vô cùng dễ

Mời các Bác tiếp tụ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
Bạn rất giỏi, nhưng rất tiếc đó không phải lời giải

vả lại làm theo cách của bạn thì biết điểm B ở đâu mà pick???

 

Lời giải vô cùng dễ

Mời các Bác tiếp tục

 

Quả thật em rất tò mò về câu trả lời của câu hỏi này. Em sẽ suy nghĩ thêm vậy. Nhưng em nghĩ là: sau khi vẽ xong 3 hình tam giác phía dưới rồi thì điểm B sẽ tự xuất hiện. Mà nếu không có điểm B để pick thì cũng có thể tiếp tục dùng toạ độ cực tương đối để vẽ.

Tuy nhiên, chắc lời giải thật sự sẽ không phải vẽ phức tạp như vậy.

  • 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
Quả thật em rất tò mò về câu trả lời của câu hỏi này. Em sẽ suy nghĩ thêm vậy. Nhưng em nghĩ là: sau khi vẽ xong 3 hình tam giác phía dưới rồi thì điểm B sẽ tự xuất hiện. Mà nếu không có điểm B để pick thì cũng có thể tiếp tục dùng toạ độ cực tương đối để vẽ.

Tuy nhiên, chắc lời giải thật sự sẽ không phải vẽ phức tạp như vậy.

Hai ba cố lên! Hai ba cố lên! Hai ba cố lên!

 

Hai ba cố lên! Hai ba cố lên!

 

Hai ba cố lên!

 

 

trích dẫn GP14: "Chẳng thấy hình đâu cả, up file lên đi ph168xd"

 

 

Úp file lên coi như đã có 99% lời giải trong ứ!

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
Trời đất, mọi ng đều dow về đc mà. Mình up lại nè

http://www.cadviet.com/upfiles/Sanh_chinh2_Model_copy_1.jpg

Sao hình của bạn không down về được nhỉ. Click vào thì nó hiẹn lên hình này nè :

anh_1.jpg

Có lẽ bạn nên nén file của bạn dưới dạng zip hoặc rar về upload lên đây xem sao.

Chào bạ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

Background của cad nhà em ngẫu nhiên đặt là màu trắng, em insert cái ảnh của bác vào, kết quả là được hình giống như yêu cầu của đề bài, mất đúng 1 lệnh :cheers: .Em đùa đấy, em vẫn chưa tìm ra được đáp á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
Sao hình của bạn không down về được nhỉ. Click vào thì nó hiẹn lên hình này nè :

anh_1.jpg

Có lẽ bạn nên nén file của bạn dưới dạng zip hoặc rar về upload lên đây xem sao.

Chào bạn

bạn click chuột phải vào đường link này, chọn save tages as -> chọn lệnh nhậu, xong

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
Sao hình của bạn không down về được nhỉ. Click vào thì nó hiẹn lên hình này nè :

Có lẽ bạn nên nén file của bạn dưới dạng zip hoặc rar về upload lên đây xem sao.

Chào bạn

Trời ơi anh 'Tue_NV' ơi! Dễ thế mà anh cũng ko mở được à???

DDoovui11223.jpg

 

Bài của Anh em còn REPLY được chứ riêng bài của GP14 REPLY nhưng không gửi được thế có lạ ko nhẩy???

ÚP FILE lên đã có 99.99999999% LỜI GIẢI giải rồi anh ạ!

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
chỉ bằng một lệnh hay một lần sử dụng 1 lệnh suy nhất???

 

Chỉ bằng 1 lệnh thôi anh ạ!!! hê hê hê Còn anh có thể sử dụng lệnh đó nhiều lần cũng được. dúng như uống hết một nồi nước canh phải húp nhiều lần mới hết...He he he....

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


×