tannguyen291
-
Số lượng nội dung
449 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
43
Bài đăng được đăng bởi tannguyen291
-
-
NHỜ VIẾT LISP
trong AutoLisp
Bạn dùng thử cái này nhé. viết nhanh chất lượng thấp nhưng hiệu quả khá tốt.
B1 thứ nhất chọn các đường dọc
B2 chọn các đường ngang
Lệnh FA và chỉ dùng với line thôi nhé. bạn x hết các đường pline ra.
(defun c:FA (/ ss1 ss2 ent p1 p2 lstxl lstpt1 lstpt2)
(setq
ss1 (acet-ss-to-list (ssget '((0 . "LINE"))))
ss2 (acet-ss-to-list (ssget '((0 . "LINE"))))
)
(foreach item ss1
(setq
ent (entget item)
p1 (cdr (assoc 10 ent))
p2 (cdr (assoc 11 ent))
lstpt1 (append lstpt1 (list p1 p2))
)
(vl-cmdf "XLINE" p1 p2 "")
(setq lstxl (cons (entlast) lstxl))
)
(foreach item ss2
(setq
ent (entget item)
lstpt2 (cons (cdr (assoc 10 ent)) lstpt2)
lstpt2 (cons (cdr (assoc 11 ent)) lstpt2)
)
)
(apply 'vl-cmdf (append '("extend") lstxl '("") lstpt2 '("")))
(mapcar 'entdel lstxl)
(apply 'vl-cmdf (append '("extend") ss2 '("") lstpt1 '("")))
(princ)
)
-
Thế thì bạn có thể vẽ thêm điểm từ điểm đầu và cuối của pline đó thành 1 pline kín bao vòng quanh tập hợp điểm cần tính toán. Sau đó sử dụng phương pháp inside_p cũng là 1 cách hay.
-
Bạn có thể sử dụng Clockwise_p của Leemac đánh giá 3 điểm theo chiều kim đồng hồ hoặc ngược lại.
Mình cũng rất hay dùng.
http://www.lee-mac.com/clockwisep.html
Còn pline của bạn như thế nào? Nhiều đoạn gãy khúc hay không. khi ucs bị xoay thì tính toán như thế nào???
rất nhiều vấn đề.
-
18 giờ trước, Hoanghung97 đã nói:(action_tile "cancel" (vl-prin1-to-string '(progn Cac_Cau_Lenh_Viet_Nhu_Binh_Thuong)))
Bây giờ mình mới biết có cách dùng hay như này. :)) đỡ đi bao nhiêu "\n" "\"" ...
Rất hay!
-
Thôi chấp nhận thay đổi đi bác. Cad 2007 là phù hợp với bác nhưng Cad đời mới cũng có rất nhiều ưu điểm. :D
-
Để trả lời cái câu hỏi một cách máy móc thì
với dấu sổ ngắn: ' bác không thể biến flag thành 2 được.
Cần dùng (vl-princ-to-string (read (strcat "(done_dialog " (itoa flag) ")"))) <=== cái này vô nghĩa chả hiểu để làm gì
Tuy nhiên bác đang viết dialog thì nên làm như bác Hạ bên trên là chuẩn nhất.
- 1
-
NHỜ VIẾT LIPS
trong AutoLisp
18 phút trước, naturooo đã nói:Mình thử thì sau khi TXTEXP nếu không REG trước khi BO thì nó sẽ không bo được vùng kính phía trong. REG trước rồi mới BO thì mới được chứ nhỉ.
mình explode ra line thì bo được như vậy :))
- 1
-
NHỜ VIẾT LIPS
trong AutoLisp
38 phút trước, naturooo đã nói:Thì như hướng dẫn các bước của bạn Huy ở trên thì thiếu bước REG mà
Cái GIF kia là mình dùng lệnh BO không phải dùng REG.
Vẫn chạy tốt. tuy nhiên lệnh REG tối ưu hơn. cả bài văn dài cũng chiến hết.
-
NHỜ VIẾT LIPS
trong AutoLisp
52 phút trước, naturooo đã nói:Làm như này thì chỉ bo được viền ngoài, viền trong như chữ A đâu bo được.
lại bảo là không nhanh đi @hien123@
-
NHỜ VIẾT LIPS
trong AutoLisp
Nếu dùng lisp thì sẽ chuyên nghiệp hơn nhưng mình hướng dẫn bạn dùng lệnh có sẵn luôn đi.
B1: Dùng txtexp để chuyển text thành dạng polyline. (lệnh này rất hay làm sai toạ độ và tỷ lệ của text cần Align lại, kích thước text cũng cần lớn khoảng trên 200 để nét polyline mượt hơn)
B2: Dùng lệnh REG để đổi toàn bộ đối tượng về dạng region
B3: Lệnh Union để nối các mảnh region liền lại với nhau
B4: Lệnh Explode để phá các region về dạng line. (2 lần explode)
Done!
- 2
-
NHỜ VIẾT LIPS
trong AutoLisp
1 giờ trước, hien123@ đã nói: CÁCH CỦA BẠN QUÁ THỦ CÔNG, NẾU 1 VÀI CHỮ THÌ NGỒI BO, CÒN NÀY CẢ 1 ĐOẠN VĂN THÌ BO SAO NỔI Ạ.
----.> MỤC ĐÍCH CỦA VIỆC NÀY LÀ ĐỂ CHUYỂN QUA MÁY TIỆN ĐỂ KHẮC CHỮ.
Vậy thì đừng có nhờ. Dùng bản trả phí đi nhé. hướng dẫn có 3 cái kích chuột còn gân cổ lên. ca này tôi chịu.
-
NHỜ VIẾT LIPS
trong AutoLisp
chu choa mạ ơi. bạn vẽ cái rectang trùm ra bên ngoài rồi dùng lệnh BO kích vào 1 điểm là xong. xoá những cái cũ đi.
-
NHỜ VIẾT LIPS
trong AutoLisp
-
Cái này do may rủi. kk bạn phải dùng nhiều nó mới hiện ra. haha
-
bạn tìm cái này nhé.
Ngoài ra vào cad: chuyển variable lispsys thành 1. sẽ có chức năng debug rất hay nữa.thay thế cho vlide luôn.
- 1
-
thế là lỗi win thôi chứ liên quan gì đến cad đời cao. mình vẫn alt tab bình thường mà.
-
Vào lúc 13/1/2023 tại 17:17, Bee đã nói:Có thể dùng hàm entmake cũng là 1 PA.
entmake thì ngon hơn command nhưng thiếu font thì cũng k làm gì được.
-
Thật là vãi chấy người ta cần tạo font text khác nhau. bác đổi hết về time, arial thì không cần dùng lisp nữa cho nhanh. :))
-
Mình đoán không sai.
Như vậy là máy của bạn thiếu font rồi.
coppy bộ font bên máy kia qua máy này là xong.
-
Ở máy tính không chạy được lisp bạn nên chụp lại bảng F2 cho mọi người xem. chứ hỏi như này thì chịu.
Có thể chưa cài font.
-
Bạn mới học thì thử tải visual studio code về dùng thay cho vlide của cad. ở đó có đề xuất câu lệnh. dùng đỡ tốn thời gian hơn đấy.
mình cũng từ đây biết được rất nhiều lệnh hay ít được sử dụng.
có hướng dẫn cụ thể luôn
-
Hình như bạn đang học Autolisp thì phải. Có rất nhiều cách để xoá đối tượng.
Xoá bằng command: (command "erase" ename "")
Xoá bằng lisp: (entdel ename)
Xoá bằng activex: (vla-delete obj)
với 1 danh sách như trên thì có thể dùng foreach hoặc mapcar
Mình sẽ dùng (mapcar 'vla-delete lst_edge)
-
12 phút trước, gia_bach đã nói:(vlax-invoke arcobj 'AddDimArc cpt sp ep p3)
sai của bạn ở đây nè.
bạn dùng lệnh như thế này nhé
(vla-AddDimArc modelspace ArcCenter FirstEndPoint SecondEndPoint ArcPoint)
-
Mình cũng k rõ bạn muốn nghiên cứu về phần gì
Theo mình nghĩ ActiveX của autolisp chính là các tập lệnh thuộc (VL-LOAD-COM)
MÌnh hay tìm hiểu trên www.afralisp.net hoặc ở đây cũng được
http://docs.autodesk.com/ACD/2011/CHS/filesALR/WSfacf1429558a55de1a7524c1004e616f8b-5913.htm
- 1
Lisp chọn đối tượng text rồi đánh số tăng dần
trong AutoLisp
Đã đăng · Trả lời báo cáo
Có 1 lisp của bác @duong Nhat Duy sẽ giúp được bạn trong vấn đề này
Cách dùng thì giống như việc đánh toạ độ đỉnh pline bạn cần vẽ thêm 1 cái pline theo hướng mà muốn tăng dần.
https://www.cadviet.com/forum/index.php?app=forums&module=forums&controller=topic&id=173558&tab=comments#comment-431059