-
Số lượng nội dung
905 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
29
Bài đăng được đăng bởi Thaistreetz
-
-
(defun MakeInsert (Blkname inspoint scale ang list_att layer color xdata / lst obj i en x ) (setq i -1 en (cdr (last (tblsearch "block" Blkname))) obj (entget en)) (if (= (cdr(assoc 0 obj)) "ATTDEF") (setq lst (list (list (cdr(assoc 10 obj))(cdr(assoc 11 obj))(cdr(assoc 50 obj))(cdr(assoc 8 obj))(cdr(assoc 70 obj))(cdr(assoc 62 obj)) (cdr(assoc 40 obj))(assoc 7 obj)(assoc 71 obj)(assoc 72 obj)(assoc 2 obj))))) (while (setq en (entnext en)) (if (= (cdr(assoc 0 (setq obj(entget en)))) "ATTDEF") (setq lst (cons (list (cdr(assoc 10 obj))(cdr(assoc 11 obj))(cdr(assoc 50 obj))(cdr(assoc 8 obj))(cdr(assoc 70 obj))(cdr(assoc 62 obj)) (cdr(assoc 40 obj))(assoc 7 obj)(assoc 71 obj)(assoc 72 obj)(assoc 2 obj))lst)))) (entmakex(list '(0 . "INSERT")'(100 . "AcDbEntity") (cons 8 (if Layer Layer (getvar "Clayer"))) (cons 62 (if Color Color 256)) '(100 . "AcDbBlockReference")'(66 . 1) (cons 2 Blkname) (cons 10 (trans inspoint 1 0)) (cons 41 scale)(cons 42 scale)(cons 43 scale) (cons 50 Ang) (cons -3 (if xdata (list xdata) nil)))) (if lst (foreach LL (reverse lst) (entmake(list '(0 . "ATTRIB")'(100 . "AcDbEntity")(cons 8 (cadddr LL))(cons 60 (nth 4 LL)) (if (nth 5 LL) (cons 62 (nth 5 LL)) '(62 . 256))'(100 . "AcDbText") (cons 10(mapcar'+(trans inspoint 1 0)(mapcar'(lambda(x)(* scale x))(polar'(0 0 0)(+(angle'(0 0 0)(car LL))ang)(distance'(0 0 0)(car LL)))))) (cons 40 (* scale (nth 6 LL))) (cons 1 (nth (setq i (1+ i))list_att)) (cons 50 (+ ang (caddr LL))) '(41 . 1.0)(nth 7 LL)(nth 8 LL)(nth 9 LL) (if (= 0(cdr (nth 8 LL))(cdr(nth 9 LL)))(cons 11(list 0 0 0)) (cons 11(mapcar'+(trans inspoint 1 0)(mapcar'(lambda(x)(* scale x))(polar'(0 0 0)(+(angle'(0 0 0)(cadr LL))ang)(distance'(0 0 0)(cadr LL))))))) '(100 . "AcDbAttribute")'(280 . 0)(last LL)'(70 . 0)'(280 . 1))))) (cdr (assoc 330 (entget (entmakex (list '(0 . "SEQEND") (cons 8 (if Layer Layer (getvar "Clayer")))))))))
Tại sao bạn không post trực tiếp vào topic của nó mà fải lập topic riêng?
-
1
-
-
Lệnh AlignSpace của expresstool
- trong viewport bạn gõ lênh. pick 2 điểm để chọn hướng
- Lệnh tự nhảy ra khỏi viewport và yêu cầu bạn pick tiếp 2 điểm để chọn hướng xoay.
- Y để zoomscale viewport theo tỷ lệ 2 lần pick, N để bỏ qua việc zoomscale (giống lệnh align)
-
Nọi ngọng, việt cũng ngọng được nữa sao hã trời! "chỉnh sửa" chứ không phải "chỉnh sữa".
Topic đầu tiên bị các sếp quăng vô thùng rác mà không nhận ra sao hả bạn?
-
Ký tự " là 1 ký tự được bảo vệ trong ngôn ngữ lisp. nó có chức năng đánh dấu điểm đầu và điểm cuối của 1 chuỗi. bởi vậy để đưa ký tự này vào chuỗi thì bạn phải dùng 1 ký tự \ đi kèm với nó để định nghĩa nó là chuỗi.
dòng code bạn cần viết là (write-line "abc\"" f)
-
1
-
-
Mình hầu hết các chương trình san nền đều sử dụng phương pháp tạo lưới tam giác như mọi người đang làm, 1 trường hợp duy nhất mình thấy hình như sử dụng 1 phương pháp khác nguyên lý giống bạn thanhduan2407 nêu trên là Scape của Nataca (có post trong diễn đàn). Hắn sử dụng tia quét gì gì đó khá là hay và nhanh
-
Giả dụ giờ em muốn tìm một file nằm ở một ổ đĩa bất kì thì sao, có cách nào ko các anh.
Bạn cần nói rõ hơn chút nữa. 1 hay là 2? vì chúng khác nhau nhiều lắm.
1. Bạn muốn thực hiện việc tìm kiếm với cơ chế giống hệt chức năng search của window? Nghĩa là chỉ cần cung cấp đường dẫn của 1 thư mục, hoặc 1 ổ đĩa hoặc chính My Computer rồi chương trình tự tìm kiếm trong tất các thư mục con của nó và trả về toàn bộ kết quả thỏa mãn điều kiên tìm kiếm được tìm thấy.
2. Bạn chỉ tìm trong 1 thư mục được chỉ định xem có tồn tại tập tin bạn muốn tìm hay không. có thì trả về đường dẫn đầy đủ của file, không thấy thì trả về nil
-
họ còn bỏ tiền mua va tình nguyện share có yêu cầu gì đâuBó tay với ông tướng này. Vậy ông bỏ 200k mua của người ta rồi share cho anh em đi. Hay quen với việc ngửa tay đi xin rồi, không quen với việc chia sẻ cho người khác.
Ông đi nhờ vả mà cứ như bố đời! có 1 điều tôi thấy ông giống mấy đứa hay đi xin ngoài đường là không bao giờ biết nói lời cảm ơn khi nhận được sự giúp đỡ của người khác. Sáng nay ông nhờ tôi sửa lisp, xong xuôi ông lượn con mẹ thằng lươn, đêk thấy 1 lời cảm ơn nào. vào mấy topic ông lập cũng ko thấy. Đọc chỉ thấy nóng cả mắt.
-
Hố hố. Mình có mấy cái tiện ích xử lý text còn ngon bằng ... 100 lần mấy thứ trong đó cơ bạn ơi, nhưng mà mình cũng đêk share đấy. Đưa mình 20 củ đây mình share cho.
Mình keo vãi cđ' bạn nhể :lol:
-
Giỏi xế! cái gì cũng biết. Chuẩn luôn roài. nét dư sony luôn ketxu ạ :D
-
Có cách nào để lấy ra được danh sách của toàn bộ biến toàn cục có giá trị khác nil tồn tại trong bản vẽ không nhỉ?
-
1
-
-
oh, hồi sáng mình copy nhầm. đã sửa lại rồi đó. lần sau bạn nên sử dụng chức năng tìm kiếm của diễn đàn
-
Tìm nguyên nhân thì hơi ngại. Cái này mình viết rồi, bạn có thể tham khảo hoặc bê về dùng luôn. hàm make insert
http://www.cadviet.com/forum/index.php?showtopic=52258&view=findpost&p=164947
-
Ok, em chưa thử. chỉ nhìn cách thức để nêu các trường hợp có thể sảy ra. như vậy trường hợp 1 có thể loại bỏ. còn trường hợp 2 bác tính sao?
-
Đây bạn :
(ssget '((0 . "INSERT") (2 . "`**")))
Hoặc dùng lệnh filter -> chọn Block có tên là `**
Câu trả lời này chưa hoàn toàn chính xác. có 2 trường hợp sảy ra việc chọn sai
1. Người dùng đặt tên block thường có dấu * là ký tự đầu tiên. khi đó lệnh trên sẽ chọn cả block thường này.
2. Nếu dynamic block ở dạng nguyên bản, chưa thay đổi các thuộc tính động. khi đó tên của nó vẫn ở dạng bình thường. lệnh trên không chọn được.
Lee mac nó có mấy hàm lấy thông tin động của Dynamic block, bạn có thể thể sử dụng các hàm này để check. nếu thông tin trả về nil có nghĩa là đó là block thường.
-
1
-
-
Bàn về vấn đề này không biết bao nhiêu lần rồi. mới hôm trước cũng có ông lập 1 topic tương tự. hnay lại đến lượt bạn.
-
Có topic bàn về vấn đề này rồi mà bạn. sao không search trước khi lập topic
-
Bác nào viết được em xin hậu tạ,một vụ Cafe và hướng dẫn các bác một trong những phần mềm sau tùy các bác chọn không tính phí: 3Dmax+vray,ZbrushR4,PhotoshopCS6,Lumion 3D,Twinmotion,Sketchup,Revit architect,Du toan(G8,Delta.Escon),Maya,Vue r10,...Mình se hướng dẫn phần cơ bản thui nhé...Hehe...
Trả bèo vậy bạn?
Có 1 sự khập khiễng quá đáng khi bạn đánh giá giá trị lao động và tri thức của bạn bỏ vào bản vẽ so với giá trị lao động và tri thức của người khác bỏ ra để viết công cụ trên cho bạn. Hay là giờ Cafe tăng giá chăng?
-
Với text và hatch thì bác Duy đưa ra cách làm không hợp lý dẫn đến nhu cầu trên cũng không hợp lý.
Em chưa hoàn thiện công cụ này vì ít khi dùng nó, khi nào dùng thì thủ công tý cũng được nên không có code để post cho bác. Nhưng em có ý kiến như này:
Ở trên em thấy bác thực hiện việc "chia ô với độ lớn tùy ý". có nghĩa là với đối tượng dạng mảng bác tô màu cho nó "với mật độ dày đặc" các điểm ảnh hoặc vector. Như vậy là thừa. ta chỉ cần tô với con số "vừa đủ". Với bất kỳ đối tượng dạng mảng nào ta đều có thể tính toán được con số vừa đủ này bằng bao nhiêu. Điều này dễ dàng cho người lập trình đồng thời cũng giúp cho máy tính không phải vẽ thêm các vector vô nghĩa.
Cụ thể: trong cái hình avatar của em khi đưa vào hộp thoại em để khoảng cách giữa các vector là 1 pixel (đơn vị graphic image của hộp thoại) và như vậy em chỉ cần tô màu cái hình đó bằng các line cách nhau đúng 1 đơn vị bản vẽ. (cái nền phía sau hộp thoại trong ảnh đó bác)
Với text và hatch là đối tượng cad thì việc tô màu này đơn giản hơn so cái avt (bitmap) của em nhiều. bác chỉ cần tô bằng nét hatch các đường song song với khoảng cách các đường là 1 đơn vị bản vẽ. khi đó việc độc màu và tọa độ của vector quá đơn giản với bác rồi.
Edit: em quên. với text thì để tô màu, bác dùng lệnh TXTEXP của express tool sẽ lấy được biên để tô.
-
2
-
-
Còn ý kiến gì được nữa đây trời! Sản phẩm của bạn như vậy là hoàn hảo quá rồi, hơn đứt thằng 40 Euro kia :D
Mình cũng vừa nghĩ ra phương pháp cho phép chọn các bản vẽ cần đồng bộ với lisp của mình chứ không 1 phát chơi tất nữa. Chưa kịp thử thì bạn đã kết hợp thành công rồi, phục quá thể!
PS: Sau khi hoàn thiện vài hạn chế so với code trước, giờ thì lisp của mình cũng hơn đứt thằng 40 Euro nữa. hê hê!
-
không phải bạn ạ. biến pickfirst mình thiết lập = 1 rồi. các lệnh khác vẫn select đối tượng trước bình thường, chỉ có lệnh Ctrl+C là bị vậy. Các bản cad khác cài trong máy mình không bị hiện tượng này.
-
vậy thì bác nên hỏi. "pan" và "m2p" khác nhau ở điểm gì ngoài chức năng của nó. sẽ ra câu trả lời ngay thôi
-
tiện đây cho mình hỏi ghé:
Trong các bản cad trước 2013, khi sử dụng lênh Ctrl+C ta có thể select đối tượng trước hoặc sau khi gõ lệnh. không hiểu vì sao cad2013 thì không cho phép select đối tượng trước khi gõ lệnh nữa. rất bất tiện. Liệu có thể sửa được sự bất tiện này không? và sửa như thế nào?
-
Ketxu nói đúng suy nghĩ của mình luôn!
@NTD. hix. mới sáng ra, đầu óc còn tỉnh táo mà vào đọc 2 topic bạn lập thấy lú luôn. Trình bày ngắn gọn, đủ ý để hiểu thôi, đừng lan man như vậy. nếu khó diễn đạt câu chữ thì bạn có thể minh họa bằng hình ảnh hoặc file bản vẽ.
-
Oh, Send luôn vào email rồi nhé.
Còn nói về công cụ so sánh này thì em lại nghĩ thêm một ý: nếu thêm được tính năng syncview theo đối tượng hoặc chi tiết nữa thì hay (sẽ hữu ích khi kiểm tra đồng thời Bình đồ - trắc dọc - trắc ngang của 1 cọc trong thiết kế đường). Các bác thử xem saoCái này thì lôi project của tớ ra đi. trong đó lệnh HN bao gồm luôn chức năng duyệt Trắc dọc - Trắc ngang - Bình đồ đồng thời rồi đó thôi. hướng dẫn sử dụng tớ viết kèm luôn trong mail ấy.
-
2
-
[Thư Viện] Tập hợp một số hàm entmake object
trong AutoLisp
Đã đăng · Trả lời báo cáo
Help Developer đôi khi cũng viết sai.!?
Cập nhật sửa lỗi hàm MakeInsert