-
Số lượng nội dung
1.353 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
113
Bài đăng được đăng bởi Danh Cong
-
-
@ngokiet : Bạn có thể tham khảo code tôi viết sắp xếp Text : :))
(defun c:SXT ( / #HUONG_XEP_TEXT #TEXT_ALIGHT DXF DXF10_Y DXF11_X DXF11_Y OBJECT PT DXF10_ DXF10_X OBJECT-SELECT)
(setq #HUONG_XEP_TEXT "Ver")
(initget "Ver Hor")
(setq #HUONG_XEP_TEXT (cond ((getkword (strcat "\nText Align : [Ver/Hor] <" #HUONG_XEP_TEXT ">"))) (#HUONG_XEP_TEXT)))(setq #TEXT_ALIGHT "L")
(initget "L C R A M F TL TC TR ML MC MR BL BC BR")
(setq #TEXT_ALIGHT (cond ((getkword (strcat "\nJustify Text : [L/C/R/A/M/F/TL/TC/TR/ML/MC/MR/BL/BC/BR] <" #TEXT_ALIGHT ">"))) (#TEXT_ALIGHT)))
(setq object (acet-ss-to-list (ssget '((0 . "*TEXT"))))
object-select (ACET-LIST-TO-SS object)
pt (getpoint "\nPick Point"))(cond ((= #TEXT_ALIGHT "L") (command "JUSTIFYTEXT" object-select "" "Left"))
((= #TEXT_ALIGHT "C") (command "JUSTIFYTEXT" object-select "" "Center"))
((= #TEXT_ALIGHT "R") (command "JUSTIFYTEXT" object-select "" "Right"))
((= #TEXT_ALIGHT "A") (command "JUSTIFYTEXT" object-select "" "Aligned"))
((= #TEXT_ALIGHT "M") (command "JUSTIFYTEXT" object-select "" "Middle"))
((= #TEXT_ALIGHT "F") (command "JUSTIFYTEXT" object-select "" "Fit"))
((= #TEXT_ALIGHT "TL") (command "JUSTIFYTEXT" object-select "" "TL"))
((= #TEXT_ALIGHT "TC") (command "JUSTIFYTEXT" object-select "" "TC"))
((= #TEXT_ALIGHT "TR") (command "JUSTIFYTEXT" object-select "" "TR"))
((= #TEXT_ALIGHT "ML") (command "JUSTIFYTEXT" object-select "" "ML"))
((= #TEXT_ALIGHT "MC") (command "JUSTIFYTEXT" object-select "" "MC"))
((= #TEXT_ALIGHT "MR") (command "JUSTIFYTEXT" object-select "" "MR"))
((= #TEXT_ALIGHT "BL") (command "JUSTIFYTEXT" object-select "" "BL"))
((= #TEXT_ALIGHT "BC") (command "JUSTIFYTEXT" object-select "" "BC"))
((= #TEXT_ALIGHT "BR") (command "JUSTIFYTEXT" object-select "" "BR"))
)
(cond ((and (= #HUONG_XEP_TEXT "Ver") (= #TEXT_ALIGHT "L"))
(foreach ss object
(progn
(setq dxf (entget ss)
dxf10_y (caddr (assoc 10 dxf)))
(setq dxf (subst (cons 10 (list (car pt) dxf10_y )) (assoc 10 dxf) dxf))
(entmod dxf)
); end progn
); end foreach
)
((= #HUONG_XEP_TEXT "Ver")
(foreach ss object
(progn
(setq dxf (entget ss)
dxf11_y (caddr (assoc 11 dxf)))
(setq dxf (subst (cons 11 (list (car pt) dxf11_y )) (assoc 11 dxf) dxf))
(entmod dxf)
); end progn
); end foreach
)((and (= #HUONG_XEP_TEXT "Hor")(= #TEXT_ALIGHT "L"))
(foreach ss object
(progn
(setq dxf (entget ss)
dxf10_x (cadr (assoc 10 dxf)))
(setq dxf (subst (cons 10 (list dxf10_x (cadr pt) )) (assoc 10 dxf) dxf))
(entmod dxf)
); end progn
); end foreach
)
((= #HUONG_XEP_TEXT "Hor")
(foreach ss object
(progn
(setq dxf (entget ss)
dxf11_x (cadr (assoc 11 dxf)))
(setq dxf (subst (cons 11 (list dxf11_x (cadr pt) )) (assoc 11 dxf) dxf))
(entmod dxf)
); end progn
); end foreach
)
); end cond
(princ))
-
1
-
-
:)))
24 phút trước, ngokiet đã nói:Còn bác @Danh Cong mình không hiểu vla-put-alignment thì trả về T/nil thì entmod cái gì?
+ Đúng là không cần phải Entmod gì trong trường hợp này @@.
-
Em nên gửi bản vẽ lên, bắt bệnh qua avata thế này thì lúc trúng, lúc trượt, khó nói lắm :)))
-
1
-
-
1 giờ} trướ}c, anhGeodesy đã nói:Nhờ các Bác hỗ trợ, em muốn đổi Justify từng Text. em dùng Entmod mà ko như mong muốn.
(defun AT:Justify ( / Justify) (setq Justify (cond (Justify) ("Left"))) (initget "Leff Right TOPLeft TOPRight BOTTOMLeft BOTTOMCenter BOTTOMRight") (setq Justify (cond ((getkword (strcat "\Ch\U+1ECDn T\U+1EF7 l\U+1EC7 b\U+1EA3n v\U+1EBD: [Leff/Right/TOPLeft/TOPRight/BOTTOMLeft/BOTTOMCenter/BOTTOMRight]<" Justify ">"))) (Justify))) ) (defun c:00 ( / e1 en) (setq e1 (car(entsel "Ch\U+1ECDn Text c\U+1EA7n \U+0111\U+1ED5i Justify: "))) (setq en (entget e1)) (setq Justify (AT:Justify)) ;(princ Justify) (if(eq Justify "Leff")(entmod (subst (list (cons 72 0)(cons 73 0)) (list (assoc 72 en)(assoc 73 en)) en))) ;;; (if(eq Justify "Center") (progn (entmod (subst (cons 72 1) (assoc 72 en) en)) ;; (entmod (subst (cons 73 0) (assoc 73 en) en)) ) ) (if(eq Justify "Right") (entmod (subst (list (cons 72 2)(cons 73 0)) (list(assoc 72 en)(assoc 72 en)) en))) ;;; (if(eq Justify "Aligned") (entmod (subst (list (cons 72 3)(cons 73 0)) (list (assoc 72 en)(assoc 73 en)) en))) ;; (if(eq Justify "Middle") (entmod (subst (list (cons 72 4)(cons 73 0)) (list (assoc 72 en)(assoc 73 en)) en))) ;; (if(eq Justify "Fit") (entmod (subst (list (cons 72 5)(cons 73 0)) (list (assoc 72 en)(assoc 73 en)) en))) (if(eq Justify "TOPLeft") (entmod (subst (list (cons 72 0)(cons 73 3)) (list (assoc 72 en)(assoc 73 en)) en))) ;;; (if(eq Justify "TOPCenter") (entmod (subst (list (cons 72 1)(cons 73 3)) (list (assoc 72 en)(assoc 73 en)) en))) (if(eq Justify "TOPRight") (entmod (subst (list (cons 72 2)(cons 73 3)) (list (assoc 72 en)(assoc 73 en)) en))) ;;; (if(eq Justify "MIDDLELeft") (entmod (subst (list (cons 72 0)(cons 73 2)) (list (assoc 72 en)(assoc 73 en)) en))) ;; (if(eq Justify "MIDDLECenter") (entmod (subst (list (cons 72 1)(cons 73 2)) (list (assoc 72 en)(assoc 73 en)) en))) ;; (if(eq Justify "MIDDLERight") (entmod (subst (list (cons 72 2)(cons 73 2)) (list (assoc 72 en)(assoc 73 en)) en))) (if(eq Justify "BOTTOMLeft") (entmod (subst (list (cons 72 0)(cons 73 1)) (list (assoc 72 en)(assoc 73 en)) en))) (if(eq Justify "BOTTOMCenter") (entmod (subst (list (cons 72 1)(cons 73 1)) (list (assoc 72 en)(assoc 73 en)) en))) (if(eq Justify "BOTTOMRight") (entmod (subst (list (cons 72 2)(cons 73 0)) (list (assoc 72 en)(assoc 73 en)) en))) )
+ Lỗi ở (subst (list (cons 72 2)(cons 73 3)) (list (assoc 72 en)(assoc 73 en)) en) ?? Vì hàm Subst chỉ thay thế cho 1 phần tử chứ ko phải list nhiều phần tử.
+ Mà ở mục này bạn nên áp dụng Vlax cho đơn giản : Ví dụ:
(if(eq Justify "TOPLeft") (entmod (vla-put-alignment (vlax-ename->vla-object e1) 6)))
-
1
-
-
Góc xin lisp
trong AutoLisp
:))
"Kích thước tự động các Block" của bạn ở đây là gì?
-
10 giờ trước, dinhle727 đã nói:Nó có sắp xếp đấy bạn . Tuy nhiên nó ko sắp xếp theo kiểu Excel, mà nó sắp xếp theo kiểu đối tượng được tạo trước, tạo sau trong Cad.
Vậy nên đây ko dc coi là lỗi, thôi thì mình dùng phần mềm nào thì chấp nhận cách chơi của phần mềm đấy thôi :))))
-
Cad đời cũ từ từ 2014 trở về trước thì có, còn từ 2015 trở đi thì ko em nhé . Do nhà phát hành thấy chữ thập trong ô vuông nhỏ ko cần thiết nên bỏ nó đi.
Hiện tại a cũng chưa tìm thấy cách thay đổi nó :)))
-
31 phút trước, phạmnampt đã nói:@conghoabạn giỏi hơn tôi nhưng chưa chắc đã bằng người khác đâu. Tôi mới học nên chưa hiểu hình này vẽ như nào nhờ mọi người giúp đỡ để tôi biết cách làm, tôi không biết bạn không vẽ được hay như nào nhưng tôn trọng người khác tý bạn à. vậy nhé !
+ Tôi chưa thấy người ta nói câu nào là không tôn trọng bạn.
-
1
-
1
-
-
+ Chắc gì kiểu font thằng "Xà Néo" trong bảng hộp thoại của bạn và chữ "Xà Néo" trong bản vẽ kia đã cùng kiểu Font ^^. Không cùng kiểu font khi gõ chữ tiếng Việt thì chịu nhé :)))
Nói đến đây chắc bạn cũng suy luận ra giải pháp :)))))
-
1
-
-
5 giờ trước, nhiethuyeta5 đã nói:Chào Anh Chị.
Em đang gặp rắc rối bản vẽ cad của em tập hợp từ nhiều nơi nên font chứ VNI, arial ... Nhưng bên em muốn chuyển về chuyển duy nhất là Arial, anh chị pro giúp em với.
Khó khắn là text trong file cad của e ở rất nhiều nơi trên bản vẽ nên việc chuyển bằng Ctrl Shift F6 rất lâu, anh chị có cách nào thực hiện anh không.
Cảm Ơn nhiều.
+ Không phải a làm video này, nên em liên hệ với tác giả nhé. ( Mật khẩu : Em biết qua a Danh Công ^^ )
-
25 phút trước, sonhv đã nói:Bạn có thể tham khảo. Nhưng mất phí nhé :))
-
3 phút trước, hoan3666 đã nói:cảm ơn 2 bác nhưng máy ở công ty em, bị ẩn hết thanh công cụ cái thanh mà có cái dòng đấy cũng bị ẩn luôn, giờ muốn lôi cái thanh đấy ra không biết phải dùng lệnh gì hay vào đâu để lôi ra
Nếu ko có vấn đề gì về phiên bản cad thì em thử cài bản Cad khác xem sao. Nhiều khi lỗi trong Cad ko biết được nguyên nhân, nên cài bản cad khác cũng là 1 ý kiến chấp nhận được.
-
1. Lisp liên quan gì đến file bản vẽ nên bạn ko cần đăng lên, bởi đăng lên cũng không ai làm gì .
2. Nguyên nhân "Mất lệnh" có hàng tá nguyên nhân: 1 Số ví dụ:
a. Lisp bị lỗi ---> Cad không load được lệnh ---> Không dùng được lisp. ( Ví dụ lisp không được đặt tên tiếng việt, đường dẫn có chứa tiếng việt... )
b. Lisp bị lỗi ---> Cad load được nhưng không dùng được. ( Lỗi từ trong code lisp)
c. Lỗi do virut... ( acad.fas , acaddoc.lsp ngăn cản việc load lisp).
---> Tùy vào từng trường hợp mà người dùng sẽ biết cách sử lý. Dĩ nhiên, muốn xử lý cũng cần có kinh nghiệm.
-
Câu hỏi chán thật. Bạn nên trang bị kiến thức cơ bản về Cad trước khi đặt những câu hỏi như thế này :)
Lười thì Cài lại Cad, chăm chỉ thì Search GG.
-
Help Cad: ThisDrawing.ActiveTextStyle.GetFont typeFace, Bold, Italic, charSet, PitchandFamily
Tại cháu đọc chẳng thấy Name nó ở đâu. :)))
-
7 phút trước, Doan Van Ha đã nói:Hoặc:
(defun C:HA() (vla-GetFont (vlax-ename->vla-object (tblobjname "style" "MyStyle")) 'n 'b 'i 'c 'p) (alert n))
Bác Hạ cho cháu hỏi :::
Tự dưng có biến "n" nhảy xổ vào (alert n) ---> Biến này chui từ đâu lên vậy bác @@
-
17 phút trước, NTHAHT đã nói:Tìm: vla-GetFont
^^ Cám ơn bác. Câu số 2 đã tìm được lời giải đáp.
Còn câu số 1 nữa.
-
+ Em chào các bác.
Em đang gặp khó ở vấn đề xác định Text Style như sau, mong các bác cho ý kiến:
Trong bảng Text Style em có 2 font name :
1. Font Name : "Arial CE" ---> Đặt Name Text Style là "Arial_CE"
2. Font Name : "Arial CYR " ---> Đặt Name Text Style là "Arial_CYR"
----> Sau đó em kiểm tra DXF của 2 Text Style này bằng hàm TBLSEARCH thì kết quả thu được mã 3 DXF đều là (3 . "arial.ttf").
Vậy câu hỏi của em là:
+ Nếu mã 3 DXF trùng nhau, thì Cad phân biệt 2 font này kiểu gì?
+ Giả sử có 1 bản vẽ mà có Font Name = "Arial CE" , nhưng bị đặt Name Text Style = abc..xyz ----> Em muốn lấy tên "Arial CE" thì em phải làm thế nào ạ.
Mong các bác giúp đỡ :)))))
-
27 phút trước, vcdichoi đã nói:Em sử dụng lệnh LI trong cad 2020
Khi chọn đối tượng và dùng lệnh LI thì hiện lên bảng như hình dưới
Các anh/chị giúp em cách khắc phục lỗi đó ạ!
em cảm ơn!
+ Bạn này học ở đâu được cái món đổi màu nền Command trong Cad = Black đây mà. Nghịch dại chưa, lúc lỗi rồi lại lôi lên để hỏi.
+ Từ khóa để tìm thì vào "OPtion >> Display >> Color >> Commandline".
Ko sửa được nữa thì bạn nên cài lại Cad vài lần cho nhớ, lần sau đừng nghịch dại.
-
1
-
-
15 phút trước, Quốc Hữu đã nói:Chào các bậc cao nhân tiền bối trong Diễn đàn Autocad,
Em tên là Quốc Hữu, hôm nay vào diễn đàn thấy các A/e trong diễn đàn chao đổi các lênh thấy hay quá em bon chen vào xem có hiểu biết được cái gì không, em năm nay 40 mua bánh chưng rồi mà chưa biết vẽ Autocad mà thấy Autocad rất phù hợp mới cv của em ngày nay.
- Thực ra trước đây em có học AutoCad 200 nhưng lâu qua không sài quên hết, hôm nay thấy các A/e nói lệnh (PL) tọa nét đậm và lệnh vuông góc mới đường thẳng gì đấy cái này e chưa biết luôn, vậy cũng đang mầy mò tự học mong các A/e trong diễn đàn có gì gỉ giúp, hihihih.
Thanks And you
Mời bác lên Youtube gõ từ khóa : "Học Auto Cad của Hưng Del" gì gì đó. Video dạy cũng khá ổn , bác lên đấy học cho vững kiến thức cơ bản đã... KHi có kiến thức cơ bản rồi, bác
muốn đào sâu thêm thì lên diễn đàn này trao đổi.
-
33 phút trước, hasonhai đã nói:Cám ơn bạn.
Tôi đã đặt lolerance lại nhưng vẫn không được.
Tôi phát hiện ra bản vẽ này các đối tượng là bản copy của 1 bản khác. rồi các bản đè chồng lên nhau. chắc là vậy nên overkill không có tác dụng phải không bạn. các object text không có tác dụng khi sử dụng overkill
Không biết có cách nào không bạn
+ Nói không quá. Chứ không biết ông nào gửi cho bạn bản vẽ này !
Nếu vẽ 1 HCN bao trọn toàn bộ bản vẽ thì nó sẽ là : (900 triệu * 1 tỷ 300 ) đơn vị. Chiều cao 1 chữ lên đến 7 triệu đơn vị.
----> Muốn Overkill được thằng này. Phải đặt hệ số Tolerace = 1 triệu mới xử lý ổn thỏa.
-
1 giờ} trướ}c, hasonhai đã nói:Xin chào các bạn!
Tôi có 1 bản vẽ mà các object bị trùng lên nhau. Tôi đã thử sử dụng lệnh overkill nhưng không được
Mong các bạn chỉ giáo giúp tôi
+ Bạn hãy tìm hiểu Tolerace là gì.
+ Chữa lỗi: Đặt Tolerace = 1000 rồi thử lại . ( Mỗi bản vẽ có con số này khác nhau , tùy theo nhu cầu người dùng )
-
Bạn nên đăng ký 1 khóa học tiếng Việt đi. Chính tả sai nhiều quá ^^
-
9 giờ trước, cuongtdh đã nói:Xin lỗi các bác.
Ở máy em mở ra chỉ được như thế này. Em ko thể đọc được.
Các bác tìm giúp em do nguyên nhân đâu hay do thiếu font gì,
em cảm ơn.
+ Nói thắng. Bạn khá lười trong việc đọc và tìm kiếm kiến thức!
List tính tổng text chọn và hiện lên bảng để ctrl +C là copy vào excel
trong AutoLisp
Đã đăng · Trả lời báo cáo
Em có thể liên hệ với bác này : Lisp mất 1 ít chi phí :)))