vietduc147258
-
Số lượng nội dung
342 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
37
Bài đăng được đăng bởi vietduc147258
-
-
33 phút trước, vcdichoi đã nói:Vậy Bác cho em hỏi cách xử lý sao vậy bác?
Cách 1: Vào Text Style có text bị lỗi đổi lại fonts
Cách 2: Đổi tên Text Style trước khi copy qua.
Cách 3: Quản lý Text Style rõ ràng, không dùng đại tên, Text Style nào thì fonts chữ đó
-
2 Bản đó cùng tên Text Style nhưng fonts trong text Style lại khác nhau. Nhiều người lười thì toàn để Text Style là Standard rồi đổi fonts bên trong. Thành ra copy các bản vẽ khác thì khả năng lỗi lại càng cao
-
9 giờ trước, nguyenhong3868 đã nói:Chào bạn !
Bạn có thể chỉnh sửa đoạn Lisp trên theo thứ tự :
- Nhập lệnh DXF
- Chọn đối tượng cần lấy bằng cách quét chuột
- Xuất hiện đường dẫn lưu trữ File DXF
- Nhập tên File
- Chọn Save
Kết thúc
Rất mong được bạn giúp đỡ. Xin được cảm ơn bạn trước nhé !
Cũng thử Gemini và có code này, bạn test lại thử:
(defun c:DXF (/ ss path) (princ "\nChọn các đối tượng muốn xuất sang DXF: ") ;; 1. Quét chọn đối tượng (setq ss (ssget)) (if ss (progn ;; 2. Hiện hộp thoại chọn nơi lưu và đặt tên (setq path (getfiled "Lưu File DXF" "" "dxf" 1)) (if path (progn ;; 3. Sử dụng lệnh DXFOUT với tùy chọn Objects (O) ;; Lệnh này sẽ yêu cầu chọn đối tượng, điểm nền không quan trọng (command ".DXFOUT" path "O" ss "" "16") ;; Số "16" ở trên là độ chính xác thập phân, bạn có thể thay đổi. (princ (strcat "\nĐã lưu thành công tại: " path)) ) (princ "\nBạn đã hủy chọn nơi lưu.") ) ) (princ "\nKhông có đối tượng nào được chọn.") ) (princ) ) (princ "\nGõ lệnh DXF để bắt đầu.") (princ) -
2 giờ trước, khimatro đã nói:Mình tạo lệnh theo dòng trên của bạn thì được , nhưng thêm phần linetype vào thì lại bị lỗi layer tạo ra không có màu không có độ dày, không có linetype
Mắc 2 lỗi :
1- ký tự @ như bạn trên nói
2- thừ một lần Enter ""
Bạn thử: (command "-layer" "m" "BETONG" "c" "2" "" "l" "CENTER" "" "lw" "1" "" "")
-
1
-
-
Viết giúp lisp cad
trong AutoLisp
Đúng là chưa thấy vấn đề nào làm khó được bác Cuongtk2.
@dangtheanh262 bác chịu khó học hỏi nhưng hơi bị lười hỏi Google rồi đó. Thay vì hỏi làm sao để load dll với load vào bị lỗi thì phải làm sao thì tự mình hỏi GG luôn cho nhanh. unblock dll lần đầu tiên nghe bác Cường nói mới biết cái này. Nhưng hỏi GG cái ra liền.
mở C:\Program Files\Autodesk\<Product version>\acad.exe.config
thêm cái dưới này vào
<runtime> <loadFromRemoteSources enabled="true" /> </runtime>
-
1
-
-
Viết giúp lisp cad
trong AutoLisp
Offset vào rồi Wipeout che đi cho đơn giản. Có nhược điểm là không hỗ trợ dạng cung tròn thôi
-
Vào lúc 9/10/2025 tại 14:43, vietduc147258 đã nói:Có sưu tầm được lisp vẽ mặt cắt ống bằng SPL nên sửa lại cho bạn dùng thử coi.
Kết thúc lệnh thì không thành 1 polyline được nha (do khả năng có hạn nên chỉ làm được tới đó thôi)
Sửa lại chút cho kết thúc lệnh thành Polyline rồi nhé @Xuân Lộc
(defun c:ot(/ pt1 pt2 pt3 goc kcach bk osm dt1 dt2) (setq osm (getvar "osmode")) (setq pt1 (getpoint "diem dau : ")) (setq pt2 (getpoint "diem cuoi : " pt1)) (setvar "osmode" 0) (setq goc (angle pt1 pt2)) (setq kcach (distance pt1 pt2)) (setq bk (* kcach 0.3)) (setq pt3 (polar pt1 goc (/ kcach 2))) (command ".pline" pt1 "a" "r" bk pt3 pt2 "") (setq dt1(entlast)) (command ".pline" pt3 "a" "r" bk pt1 "") (setq dt2(entlast)) (command ".join" dt1 dt2 "") (setvar "osmode" osm) (princ) ) -
1 giờ} trướ}c, Tuan1012 đã nói:
Quả thực bây giờ mới thấy lỗi này. Cái này là thử trên các file khác cũng vậy. Sau khi tìm trên diễn đàn Autocad thì có câu trả lời. Chấp nhận sống chung với nó thôi. Chứ Find , replace không giải quyết được. xin phép Tag tên @Duong Nhat Duy vào đây xem có giúp được bạn không
"I talked with Autodesk Support and they confirmed the following behavior:
Using Find/Replace with static block definitions in comparison to dynamic blocks.
- static block --> change also in block definition
- dynamic block --> no change in block definition"ps//
riêng cái này ""Vấn đề là khi mình cần thay đổi gì trong block đó thì sau khi lưu lại nó sẽ trả về text cũ trước khi sửa""
thấy không đúng nha. Mở Block ra sửa thì lưu bình thường mà
-
Sẵn thì làm thêm cho lệnh vẽ Breck Line luôn.
(defun c:brl(/ pt1 pt4 pt3 pt5 pt2 pt6 pt3 goc kcach osm)
(setq osm (getvar "osmode"))
(setq pt1 (getpoint "Diem dau : "))
(setq pt2 (getpoint "Diem cuoi : " pt1))
(command "osnap" "none")
(setq goc (angle pt1 pt2))
(setq kcach (distance pt1 pt2))
(setq pt3 (polar pt1 goc (* kcach 0.4)))
(setq x (polar pt1 goc (* kcach 0.45)))
(setq pt4 (polar x (+ (/ PI 2) goc) (* kcach 0.15)))
(setq y (polar pt1 goc (* kcach 0.55)))
(setq pt5 (polar y (+ (/ PI 2) goc) (* kcach -0.15)))
(setq pt6 (polar pt1 goc (* kcach 0.6)))
(command ".PLINE" pt1 pt3 pt4 pt5 pt6 pt2"")
(setvar "osmode" osm)
(princ)
)Những lisp dạng này thỉnh thoảng sẽ phát sinh lỗi không hoạt động + thoát lệnh giữa chừng bị lỗi bắt điểm
-
Có sưu tầm được lisp vẽ mặt cắt ống bằng SPL nên sửa lại cho bạn dùng thử coi.
Kết thúc lệnh thì không thành 1 polyline được nha (do khả năng có hạn nên chỉ làm được tới đó thôi)
(defun c:ot(/ pt1 pt2 pt3 goc kcach bk osm)
(setq osm (getvar "osmode"))
(setq pt1 (getpoint "Diem dau : "))
(setq pt2 (getpoint "Diem cuoi : " pt1))
(command "osnap" "none")
(setq goc (angle pt1 pt2))
(setq kcach (distance pt1 pt2))
(setq bk (* kcach 0.3))
(setq pt3 (polar pt1 goc (/ kcach 2)))
(command ".PLINE" pt1 "A" "R" bk pt3 pt2 "")
(command ".PLINE" pt3 "A" "R" bk pt2 "")
(setvar "osmode" osm)
(princ)
) -
1 giờ trước, Tuan1012 đã nói:https://drive.google.com/file/d/1t1lFhgkImkHcPXawBIUlgxSn2vEQt1AM/view?usp=drive_link
Em không upload file lên được, link file đây ạthứ 1: Up file mà không share
Thứ 2: Thấy nội dung bạn viết rối quá
"gặp block động thì chỉ sửa được hiển thị bên ngoài, còn khi vào trong block vẫn là text cũ"
"Vấn đề là khi mình cần thay đổi gì trong block đó thì sau khi lưu lại nó sẽ trả về text cũ trước khi sửa""Text em là text thường bác"
Thứ 3: đã thử sửa trong Block và lưu lại rồi ATTSYNC chưa?
-
Câu 1: Không lẽ bạn vẽ dùng mỗi lệnh Line à? Có ai đó giúp bạn lệnh 1, 2, 3 đó để vẽ Line sau đó bạn lại nhờ tiếp c1, c2, c3 để vẽ đường tròn, sp1, sp2, sp3 để vẽ Spline....
Theo tôi chuyển Layer không tốn công lắm đâu. Nếu cần đổi nhanh thì có đoạn lisp trong diễn đàn mình dùng thử xem
(defun c:0 () (vl-cmdf "clayer" "0" ))
Sửa màu đỏ là tên lệnh, màu xanh là tên Layer. Tôi chỉ click chột đổi thôi chứ không dùng lisp này, nhưng chắc là nó sẽ hoạt động tốt
-
14 giờ trước, Tuan1012 đã nói:"chỉ thay thế được hiển thị bên ngoài, khi vào chỉnh sửa block thì vẫn là nội dung text cũ"
Lúc trước đọc không kỹ câu hỏi của bạn rồi.
Mục đích sửa bên trong để làm gì? mình hiển thị bên ngoài là được rồi mà.
Nếu là ATT thì muốn sửa phải sửa trong Block, find , replace chỉ thay đổi nội dung để hiển thị bên ngoài thôi. Nhưng sửa trong Block thì lúc đầu tạo ATT để làm gì?. Nếu thực sự muốn sửa thì cứ vào Block editor rồi sửa thôi. Xong ATTSYNC để cập nhật lại.
-
Trong hộp thoại Find có Options đó. Bạn xổ nó ra xem có thiếu dấu tick vào mục nào không
-
Vào lúc 7/10/2025 tại 10:43, Xuân Lộc đã nói:xài block thì nó ko căn được tim đối tượng được ạ. Nếu dùng lisp chọn điểm đầu, điểm cuối thì nó sẽ căn giữa luôn và đỡ phải đi tìm block copy past ạ
Xài Block căn tim đối tượng bình thường mà. Chỉ có điều phải tìm block, copy paste thôi.
Tạo block với điểm chèn nằm ở đầu đoạn thẳng, sao cho khi chèn vào là trùng với Point 1. Nắm đầu điểm còn lại xoay + Scale vào point 2 là xong.
Nếu không tạo Block dynamic thì dùng lệnh AL.
Theo tôi bạn tạo Block dynamic rồi dùng lệnh chèn block trong diễn đàn để chèn vào Point 1, còn pick điểm 2 phải thủ công rồi
-
Đảo lệnh space
trong AutoLisp
Hình như Autocad có lệnh Compare để so sánh 2 bản vẽ đó.
Tôi thì hay dùng cách phá 1 Block ra rồi đổi toàn bộ sang màu xanh, sau đó đặt chồng lên để so sánh. Re một cái là chỗ nào khác nhận ra luôn. Zoom, pan tới lui rồi move hoặc chọn lại 1 cái xoá đi thôi. Nếu đang Block thì việc chọn đối tượng càng dễ. Nếu không block thì Select rồi chọn "p" để chọn lại đối tượng trước đó thôi
-
Tương lai có thể AI phát triển, Cad sẽ hiểu mình muốn làm cái gì mà tự làm cho mính á. Lúc đó có lẽ sẽ thất nghiệp hết rồi.
Hiện tại thì chỉ có cách quản lý Block, Layer, Group kết hợp với chọn đối tượng (cách quét chuột, fi, fast slect...). Code hỗ trợ thì có code về lọc đối tượng có thể tìm trong diễn đàn.
-
Thử
(defun c:rt ()(c:torient))
-
1
-
-
21 giờ trước, vandongtdw đã nói:Các Bác cho e hỏi có lệnh hoặc lisp nào xoá khoảng trắng thừa khi chọn tất cả Mtext không (ảnh như hình đính kèm)
Thử cái này xem
(defun c:00 (/ ss i sn) (setq ss (ssget "_:L" '((0 . "MTEXT")))) (setq L 0) (setq i (sslength ss)) (repeat (setq a i) (setpropertyvalue (ssname ss (setq a (1- a))) "ColumnType" 0) ) (while (< L i) (setq ssx (entget (ssname ss L))) (setq ssx (subst (cons 46 0) (assoc 46 ssx) ssx)) (setq ssx (subst (cons 41 0) (assoc 41 ssx) ssx)) (entmod ssx) (setq L (+ L 1)) ) (princ)) -
Nói như vậy là fake dim rồi. Không thích fake dim nên không giúp được rồi. Nhờ chat GPT đi
-
1 giờ} trướ}c, khang2020 đã nói:Bản vẽ em hay làm có nhiều dim lẻ quá, chỉnh lại từng cái mất nhiều thời gian nên em xin phép nhờ mọi người trên diễn đàn giúp em viếp 1 lisp làm tròn dim với ạ. Yêu cầu của em như sau :
+ Dim có số cuối 0,5: giữ nguyên
+ Dim có số cuối 1,2: làm tròn xuống về 0
+ Dim có số cuối 3,4: làm tròn lên về 5
+ Dim có số cuối 6,7: làm tròn xuống về 5
+ Dim có số cuối 8,9: làm tròn lên về 0 (chục tiếp theo)
Em cảm ơn mọi người rất nhiều.Dimension Style
Tìm Round off trong Primary Unit , nhập vào 5
-
-
2 giờ trước, Nguyễn Hà Huy đã nói:
chuyển kiểu gõ là telex đơn giản là đượcHay quá Bác
-
Có tool nào in bản vẽ và đặt tên file pdf theo sheetset không các bác
trong AutoLisp
Đã đăng · Trả lời báo cáo
Thử lệnh Publish xem sao