-
Số lượng nội dung
1387 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
117
Bài đăng được đăng bởi Danh Cong
-
-
Có nhiều mẫu tương tự từng xuất hiện trên diễn đàn, cớ gì cứ phải thêm thắt 1 ít để rồi phải làm Lisp mới?
Phải biết tận dụng bạn ạ. :) Tìm trên diễn đàn nữa đi. Nhiều lắm.
-
NHỜ MẤY ANH Ạ
trong Sử dụng AutoCAD
Chắc là thừa chữ "Học" @@. Thành ra "Ham hỏi" mất rồi.
+ Tóm lại: Bạn cần "Ham" tìm kiếm bằng tính năng Cadviet Search nhiều hơn. Chủ đề này đã có trả lời rồi.
-
CadViet Search đi. Trên diễn đàn thiếu gì? Mục tiêu chỉ là lọc được Text, Mtext. Xoay là vấn đề đơn giản, không cần xét đến.
-
Một bài toán khó nhằn:
Em thử trình bày ý tưởng của mình. Các bác tham khảo rồi cho nhận xét nhé !!!
Phương pháp giải: Xét trong đoạn chạy của từng ô vuông:
+ B1: Xét 1 ô vuông, với điểm chạy là điểm góc trái, bên dưới của ô vuông. Hướng chạy là ngược chiều kim đồng hồ.
+ B2: Xuất phát từ "1", Tìm điểm giao của ô vuông với "Hình Gốc".
+ B3: Khi phát hiện ra điểm giao: Lần đầu tại vị trí "3". Tại vị trí này phải kiểm tra vài thứ để xác định hướng chạy tiếp theo như sau: Coi hướng chạy của Polyline ở vùng này là ngược chiều kim đồng hồ:
+ TH1: Tại điểm giao: Nếu chạy theo Polyline , điểm tiếp theo nằm ngoài hình vuông hoặc "ngược" chiều với chiều chạy Polyline, : ---> Loại , Sau đó hướng chạy để vẽ bodary lại theo Hình vuông.
+ TH2: Tại điểm giao : Nếu chạy theo Polyline, điểm tiếp theo nằm trong hình vuông và "cùng" chiều với chiều chạy Polyline: ---> Ok , Sau đó hướng chạy để vẽ bodary theo Polyline:
Giải quyết tại vị trí 3: Hướng chạy theo Polyline sẽ ra vị trí "10", là cùng chiều kim đồng hồ ( Tức là ngược hướng với hướng chạy của Polyline). Cho nên bị loại, ta tiếp tục chạy sang vị trí số 4.
+ Giải quyết tại vị trí 5: Hướng chạy theo Polyline ra vị trí số 6. Cùng chiều với Polyline, OK. ---> Chạy theo Polyline theo ra số 6: , rồi sang số 7
Tuy nhiên: Đề phòng trong đoạn : 5-7 Có thêm 1 vùng Hatch nào nữa: Thì lại phải kiểm tra xem đoạn 5-7 Có giao với Polyline hay không. ( Tức là trong ô vuông, số vùng hach có thể nhiều hơn 1)
B4: Tiếp tục chạy: nếu điểm giao cuối cùng trùng với điểm đầu "số 3 " thì kết thúc.
-
1
-
-
1 giờ} trướ}c, tuhungbkdn đã nói:2. Vấn đề này thì mình cũng biết không ảnh hưởng kết quả bản vẽ nhưng nó lại ảnh hưởng tới vấn đề bắt điểm vì có các chi tiết nhỏ cần zoom để kiểm tra cho chính xác thì rất khó và đã dùng lệnh Regen vẫn không thay đổi gì cả, nếu do lỗi hiễn thị màn hình thì có thể khắc phục bằng cách cài đặt màn hình gì đó không nhỉ
Hãy đưa bản vẽ đấy lên để mọi người xem. Thầy bói đoán mò thì biết đúng sai thế nào.
-
Vào lúc 11/8/2018 tại 17:59, thanhdatx2bk đã nói:VD: Quét chọn 2 dimension có kích thước là 1000 và 3000, khi dùng lisp của bác sẽ cho ra kết quả là : Gia tri trung binh = 2000.00
Giờ em muốn thay đổi cách hiển thị kết quả thành: (1000+3000)/2=2000.Code lại:
(defun c:GTTB ( / DXF GIATRI I LISTNAME N NAME OBJ PT STRINGNAME SUM TEXT)
(setq obj (ssget '((0 . "DIMENSION")))
n (sslength obj)
Sum 0.0
i 1
Listname '()
Stringname "")
(repeat (sslength obj)
(progn
(setq name (ssname obj 0)
dxf (entget name))
(if (= (cdr (assoc 1 dxf)) "") (setq giatri (cdr (assoc 42 dxf)))
(setq giatri (atof (cdr (assoc 1 dxf)))))
(setq Sum (+ Sum Giatri)
Listname (append Listname (list (rtos Giatri 2 0))))
(ssdel name obj)
);end progn
);end repeat
;(princ (strcat "(" Stringname ")/" (rtos n 2 0) (rtos (/ Sum n) 2 2)))
(setq Stringname (strcat Stringname (nth 0 Listname)))
(repeat (- n 1)
(setq Stringname (strcat Stringname "+" (nth i Listname))
i (+ i 1)))
(princ Stringname)
(setq Text (entget (car (entsel "\nChon Text Mau")))
pt (getpoint "\nChon Diem Chen Text"))
(Entmake
(list
(cons 0 "Text")
(cons 1 (strcat "(" Stringname ")/" (rtos n 2 0) "=" (rtos (/ Sum n) 2 0)))
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(assoc 8 Text)
(assoc 7 Text)
(cons 10 pt)
(cons 11 pt)
(assoc 40 Text)
(assoc 50 Text)
(assoc 71 Text)
(assoc 72 Text)
(cons 73 0)
))
(princ)) -
Chưa cụ thể. Bạn phải đưa cái hình ảnh trên trắc ngang bạn pick cái gì, excel thì ra cái gì. Vậy mới mong có người giúp.
-
4 giờ trước, Doan Van Ha đã nói:Chú hẳn giỏi hơn các thủ khoa ở Hòa Bình, Lạng Sơn, Hà Gian.
Đúng vậy luôn!
Tưởng bác phải phải rõ vấn đề này chứ nhỉ. Có lần em hỏi bài về Hatch khác nhau trong khi cùng Scale luôn. Chắc bác ko để ý. Hê hê. :)
-
Cad chưa có cái này @@. Làm tay thôi. Hoặc cùng lắm thì Edit sửa số, còn để nó tự động cập nhật chiều dài khi thay đổi kích thước thì chịu ( có nhưng bị hạn chế nhiều điều )
-
1
-
-
15 giờ trước, thanhdatx2bk đã nói:Bác Đỗ Đức Tiệp xem lại giúp em với, sao em nhấn lênh tbd , quét chọn 2 dimmension , nó hiện lên các lệnh chọn điểm text, chiều cao text, góc text, sau đó đến enter tex, lúc này mình nhập bao nhiêu là nó ra kết quả đó luôn, ko phải ra trung bình cộng 2 dim em vừa chọn
Góp vui:
(defun c:test ( / DXF GIATRI N NAME OBJ PT SUM TEXT)
(setq obj (ssget '((0 . "DIMENSION")))
n (sslength obj)
Sum 0.0)
(repeat (sslength obj)
(progn
(setq name (ssname obj 0)
dxf (entget name))
(if (= (cdr (assoc 1 dxf)) "") (setq giatri (cdr (assoc 42 dxf)))
(setq giatri (atof (cdr (assoc 1 dxf)))))
(setq Sum (+ Sum Giatri))
(ssdel name obj)
);end progn
);end repeat
(princ (strcat "\nGia Tri Trung Binh = " (rtos (/ Sum n) 2 2)))
(setq Text (entget (car (entsel "\nChon Text Mau")))
pt (getpoint "\nChon Diem Chen Text"))
(Entmake
(list
(cons 0 "Text")
(cons 1 (strcat "Gia Tri Trung Binh = " (rtos (/ Sum n) 2 2)))
(cons 100 "AcDbEntity")
(cons 100 "AcDbText")
(assoc 8 Text)
(assoc 7 Text)
(cons 10 pt)
(cons 11 pt)
(assoc 40 Text)
(assoc 50 Text)
(assoc 71 Text)
(assoc 72 Text)
(cons 73 0)
))
(princ))-
1
-
-
1 giờ} trướ}c, doductiep đã nói:Nên có thêm trường hợp Dim bị sửa số. Và có thêm trường hợp chọn mẫu Text để ghi sẽ tốt hơn.
-
Muốn hiển thị Wipeout: Wipeout -> gõ F -> gõ ON
-
2
-
-
50 phút trước, vangialoc đã nói:(setq BBB(SSGET "all" (list(cons 0 "INSERT") (assoc 8 (entget entm))))
Bỏ chữ "all" thử xem thế nào?
-
1
-
-
+ Tức là thay vì thao tác : "Chuột phải ---> Mid betwin 2 point --> Pick 2 điểm", thành "Pick 2 điểm"?
Nếu đúng thì đọc thêm bài này: https://www.cadviet.com/forum/topic/171866-hướng-dẫnkhắc-phục-lỗi-ấn-nhầm-f1-khi-esc-và-đặt-phím-tắt-cho-mid-between-two-point/
Còn lisp thì xin khước, tuy viết dễ, nhưng không nhất thiết giết gà phải dùng dao mổ voi.
-
2
-
-
Có thể ứng dụng được XREF?
-
Gần giống bài này. bạn thử xem thế nào. https://www.cadviet.com/forum/topic/171866-hướng-dẫnkhắc-phục-lỗi-ấn-nhầm-f1-khi-esc-và-đặt-phím-tắt-cho-mid-between-two-point/
-
+ Mất nút nhấn Close Block thì ta dùng lệnh : "BCLOSE" để đóng block.
+ Bản vẽ bạn gửi có hiện không gian vẽ Model + Layout, vậy nên đây không phải là ở chỉnh sửa block. Bản vẽ cũng trống, chẳng có gì ngoài 1 cái khung tên bên layout.
-
+ Đối tượng cao độ của bạn là ACAD_PROXY. Đối tượng này thường dùng cho các phần mềm chuyên biệt Topo của bạn, lisp không ăn thua đối với đối tượng này.
Vậy nên bạn chỉ có thể sử dụng lệnh có trên phần mềm để pick cao độ.
Tóm lại là không làm cách khác được.
-
Mấy bác test nguyên xi trên lisp bác QuocManh hay là thế nào vậy? Sao em test thì kết quả nó lũ lượt giống nhau, không thấy khác gì?
Line_min = 1.000 Line_max =10.000 Circle_min=6.283 Circle_max=62.832 (Ứng với (* tot 1))
-
20 phút trước, kienxd04 đã nói:Có thể bị trên cad 2016 bản 64 bit chăng?
Người cần giúp có lẽ cỏ xanh 3 tấc , hoặc có khi chuyển nghề chăn bò rồi. Bác gọi dậy làm chi :((( 9 năm... ^^
-
18 phút trước, quocmanh04tt đã nói:Tráng sĩ nói không sai! Cad đời trước chỉ cần "Nhất dương chỉ" : (command "lengthen" e_name "") là có thể tiêu CMNR.
Nhưng truyền nhân các đời sau của nó, do khổ luyện nhiều hơn nên nội lực thâm hậu hơn, do đó phải dùng đến "Liên hoàn cước": (command "lengthen" e_name "" "" "")
KKK...!
À, bác nhắc thế em mới nhớ. :))) Đúng là Cad đời sau ( Ví dụ như em từng xài cad 2015 ) có tình trạng này.
Nên em không xài "Lengthen" nữa mà chuyển vô (vla-get-Length (vlax-ename->vla-object e_name))
Câu trước hiểu nhầm ý bác DinhvanTrang điều này :) Sr bác.
Chủ thớt thay thử dòng lệnh theo bác QuocManh coi thế nào. !
-
1
-
-
13 phút trước, dinhvantrang đã nói:Trong Lisp trên của bạn đó có dùng lệnh "LENGTHEN" để tính chiều dài.
Nhưng sau khi dùng lệnh đó xong thì nó yêu có một số yêu cầu khác nữa, mà không lặp qua đối tượng tiếp theo.
Bác @Danh Cong coi thử lệnh đó xem.
(ssdel e_name ss)
Câu lệnh này nó xóa đối tượng SS_0 khỏi tập đối tượng E_name rồi bác @dinhvantrangạ.
Sau đó thì vòng lặp lại tiếp tục với đối tượng SS_0*. Tuy nhiên thì số 0 này không còn là số 0 như trước nữa, nó sẽ là đối tượng tiếp theo trong E_name.
( Nói chung là các bác lập trình trước có nhiều dòng code hay lắm ^^. Mình nhiều khi chỉ đọc để hiểu cũng thấy toát mồ hôi :)))
-
55 phút trước, dtdat đã nói:Xin lỗi mình bổ sung lại đây
Bạn có thể nhấn F2 rồi chụp nguyên cái màn hình cad của bạn khi chọn đối tượng thứ 2 lên để mọi người xem. Quay được video thì càng tốt.
Với các máy khác thì sao, với phiên bản cad khác có suất hiện lỗi này không? Tôi kiểm tra trên Cad 2012 không thấy lỗi.
-
11 phút trước, dtdat đã nói:không có bác nào sửa lại giúp nhỉ?
Lisp trên có dùng được với các bản cad khác không, có dùng được với các máy khác không? Bạn thử chưa?
Bảo là lỗi thì có ai biết bạn bị cái gì không? Lỗi là lỗi gì, nó như thế nào.
Tóm lại : "Chỉ đưa thẻ căn cước thì đừng mong bắt được bệnh!"
-
1
-
Lỗi không xóa được text style
trong Sử dụng AutoCAD
Đã đăng · Trả lời báo cáo
Nhiều khi con voi nó lại lọt qua lỗ kim... @@.
Kiểm tra tất cả - bằng mắt thì tất yếu sảy ra sự sai sót.
Để diệt giun hiệu quả, hãy uống "Fukaka" để trừ giun đũa, giun tóc, giun móc, giun kim... Còn để truy tìm 1 đối tượng ABC có tính chất XYZ nào đó trong cad, đầu tiên hãy nghĩ đến "FI" -"FILTER"