quocmanh04tt
-
Số lượng nội dung
1123 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
153
Bài đăng được đăng bởi quocmanh04tt
-
-
nhờ sửa lisp
trong AutoLisp
Sao bác DVH không dùng: (strcat "Thaydoi "(rtos (getvar "CDATE") 2 0)) nhỉ???
-
1
-
-
Bạn thử xem sao:
(defun c:layon ()
(vlax-for each (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
(vla-put-layeron each :vlax-true))
(princ))
(defun c:layoff (/ ss i)
(if (setq ss (ssget))
(repeat (setq i (sslength ss))
(vla-put-layeron (vlax-ename->vla-object
(tblobjname "LAYER" (vla-get-layer (vlax-ename->vla-object (ssname ss (setq i (1- i)))))))
:vlax-false)))
(princ)) -
Block&Field
trong Sử dụng AutoCAD
Không phải vậy. Ý tui là: Đánh cốt vào những chỗ không thuộc mức sàn (FL là sàn phải ko ạ?)??? Như vậy chữ FL bị thừa, phải sửa.
-
Block&Field
trong Sử dụng AutoCAD
Tui có ý kiến như sau:
1. Nếu đánh cốt vào vị trí không thuộc FL?
2. Nếu trong Field có hàm if thì đơn giản, tui đã từng ngâm cứu nhưng ko được, đành phải dùng lisp. Không biết có cách nào khác không??? Phiền các bác!
-
-
Không biết có đúng ý bạn không?
(vla-put-layer (vlax-ename->vla-object (entlast)) (getvar "cLayer"))
-
1
-
-
Là thế nào? Chỉ 1 đối tượng???
-
Có cái này bạn dùng tạm:
(defun c:cpl (/ ss pt1 pt2 i sn lst l)
(if (and (setq ss (ssget "_:L"))
(setq pt1 (getpoint "\nSpecify base point: "))
(setq pt2 (acet-ss-drag-move ss pt1 "\nSpecify second point: "))
(repeat (setq i (sslength ss))
(setq sn (ssname ss (setq i (1- i))))
(setq lst (cons (vla-copy (vlax-ename->vla-object sn)) lst))
)
) (progn (foreach ent lst (vla-move ent (vlax-3d-point pt1) (vlax-3d-point pt2)))
(foreach obj lst (vla-put-layer obj (getvar "cLayer")))
)
)
(princ)
)
-
1
-
-
anh cho tui hỏi chút sao khi tui gõ dòng lệnh này (command "-copytolayer" ) thì cad 2005 báo nill vậy? hướng xử lý ntn? xin cảm ơn. Hình như cad2005 không có lệnh -copytolayer. ???
-
Đoán mò nhé!
1. Kiểm tra lại Driver của Card màn hình khi cài win.
2. 3Dconfig trong CAD.
-
D1, D2 là đường kính của 2 đường tròn màu trắng.
-
Tặng các bác LISP đánh cốt cao độ khác.
Sử dụng:
+ Chọn tỷ lệ đo (mặc định là 1)
Ví dụ:
Sau khi chọn cao trình +-0.00
Điểm tiếp theo cách 1 khoảng +1000 => kết quả +1.00 (chiều âm ngược lại).
* Nếu tỷ lệ đo = 2: Thì kết quả sẽ là: +0.50.
+ Khi di chuyển ký hiệu cao trình +-0.00 (Theo chiều Y) thì tất cả các cao trình khác sẽ thay đổi giá trị.
+ Khi di chuyển cao trình bất kỳ thì tự nó sẽ thay đổi giá trị.
+ Copy 1 cao trình (khác +-0.00) sang vị trí mới thì giá trị tự thay đổi.
+ Mỗi lần gọi lệnh thì có 1 cao trình mốc +-0.00
Trong Lisp dùng Field nên muốn thấy sự thay đổi phải dùng lệnh: REGEN.
LệnhL CD1 hoặc CD2-
1
-
-
Bạn thử dùng lệnh list và chọn thằng 4000 rồi F2 lên mà xem???
-
1
-
-
Cái Dim 4000 bị Override với giá trị DIMLFAC = 0.25 (Hay Dim scale linear 0.25)
-
1
-
-
\U+0110\U+01AF\U+1EDCNG K\U+00CDNH = ĐƯỜNG KÍNH.
CHI\U+1EC0U D\U+00C0I = CHIỀU DÀI.
KH\U+1ED0I L\U+01AF\U+1EE2NG = KHỐI LƯỢNG.
-
1 lần nữa cám ơn sự nhiệt tình của bác phamthanhbinh . LISP chạy rất tốt.
-
Tuyệt vời...! Cám ơn bác phamthanhbinh đã nhắc nhở và cám ơn bác nhiều vì LISP.
Nhân đây, nhờ bác thêm việc nữa:
+ Sắp xếp thứ tự các loại cửa. Ví dụ: Đ1 ; Đ2; Đ3...; S1; S2; S3... theo thứ tự từ trên xuống (trong bảng thống kê).
+ Có cảnh báo khi nhỡ có nhầm khi cùng ký hiệu cửa nhưng quy cách khác nhau. Ví dụ như cùng S1 nhưng có cái thì 2 cánh, cái thì 3 cánh...
(Cảnh báo bằng thông báo hoặc đổi màu của ký hiệu...)
Một lần nữa xin cám ơn bác!
-
@Bác Tue_NV trong LISP em xử thế này liệu có ổn không?
(setq Kn (/ chieudai 11700))
(if (= Kn 0)
(setq sn 0)
(progn (setq n (fix Kn))
(setq m (/ n Kn))
(cond ((< m 1) (setq sn (* n 30)))
((= m 1) (setq sn (* (- n 1) 60))))))
(setq L_noi (* sn duongkinh)
-
Vấn đề nằm ở chỗ này...
Trường hợp 1: Nếu cần 1 thanh có chiều dài là: 23.400
+ Nối đối đầu: Thì cần thêm 1 thanh có chiều dài 60D (vì mỗi 30D được nối với 1 thanh).
+ Nối chồng (Kiểu bắt tay): Gồm 2 thanh 11.700, như vậy chiều dài còn thiếu 30D,
=>thêm 1 đoạn nữa => nếu nối chồng tiếp thì cần 1 thanh có chiều dài 30D+30D=60D
Trường hợp 2: Nếu cần 1 thanh có chiều dài là: 20.000
+ Nối đối đầu: Giống như trên
+ Nối chồng: 11.700+8.300+30D=20.000+30D (chỉ cần thêm 30D).
Các bác nghĩ sao???
-
Theo đà này thì bác pawuta sẽ có thêm vướng mắc.
1. Chieudai/11700 = a (số nguyên hay không???).
Khi: 1 < a <= 2 luôn có 1 đoạn nối
Khi: a > 2
+ n < a <= (n+1) |=> đều có n-1 đoạn nối.
2. Khi đường kính thép là 8 hay 6 ???
...
-
Chào các bác và ACE trên DD, em xin được ké Topic này.
Em cũng có vấn đề với thống kê ATT BLOCK nhờ các bác trợ giúp <Xin cám ơn các bác trước!!!>.
Em đã tìm kiếm trên DD nhưng chưa có lisp nào phù hợp với nhu cầu của em, hoặc là chưa tìm ra... mong các bác thông cảm.
Cụ thể là:
+ Trên bản vẽ của em có 2 loại Att Block.
+ Mỗi Att Block có 2 Tag, 1 Tag là ký hiệu cửa (KYHIEU), 1 Tag là quy cách cửa (QUYCACH).
+ Trong Tag QUYCACH có ghi: 2S-1200-K250 hoặc 4D-1800-K150.
* Trong đó:
- Số đầu tiên là số cánh cửa (2 hay 4)
- Thứ 2 là (S or D) là (S) - cửa sổ, (D) - Cửa đi.
- Tiếp theo: 1200 or 1800 là chiều rộng cửa.
- Cuối cùng: 250 or 150 là 1 chiều của tiết diện khuôn cửa.
+ Block và bảng thống kê trong bản vẽ kèm theo.
Một lần nữa xin cám ơn các bác và ACE trước...!
[Nhờ giúp đỡ] Lisp đếm block BLKQTY
trong AutoLisp
Đã đăng · Trả lời báo cáo
Theo tui bác làm như này: Bác lấy Lisp của GIABACH ở trên
1. Tìm dòng: (setq blk_name (vla-get-name (vlax-Ename->Vla-Object ent)))
2. Cho con trỏ ở cuối dòng (Enter) rồi chèn cum này vào: