Bee
-
Số lượng nội dung
553 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
37
Bài đăng được đăng bởi Bee
-
-
18 giờ trước, Nguyễn Hà Huy đã nói:Cho em hỏi cách đổi dim DIMANGULAR từ độ thành số hoặc viết giúp em lisp gán kết quả của DIMARC vào text của DIMANGULAR để em dim bản vẽ kèm theo bên dưới ạ. Cảm ơn mọi người đã quan tâm!
4 giờ trước, tannguyen291 đã nói:Nhìn cái DIMARC cứ xấu xấu k đẹp bằng DIMANGULAR thật.
LISP đổi dimarc thành dimangular và face giá trị bằng chiều dài cong.
(defun c:RAL (/ ss i lst modelSpace txt obj dimsty layer ) (setq ss (ssget '((0 . "ARC_DIMENSION"))) doc (vla-get-ActiveDocument (vlax-get-acad-object)) modelSpace (vla-get-ModelSpace doc) ) (repeat (setq i (sslength ss)) (setq i (1- i) lst (entget (ssname ss i)) dimsty (tblobjname "DIMSTYLE" (cdr (assoc 3 lst))) layer (cdr (assoc 8 lst)) ) (setvar "CLAYER" layer) (vla-put-activedimstyle doc (vlax-ename->vla-object dimsty)) (setq txt (rtos (cdr (assoc 42 lst)) 2 (getvar "DIMDEC")) lst (list (cdr (assoc 15 lst)) (cdr (assoc 13 lst)) (cdr (assoc 14 lst)) (cdr (assoc 10 lst))) lst (cons modelSpace (mapcar 'vlax-3d-point lst)) obj (entget (vlax-vla-object->ename (apply 'vla-adddim3pointangular lst))) obj (subst (cons 1 txt) (assoc 1 obj) obj) ) (entmod obj) (entdel (ssname ss i)) ) (princ) )
Gì mà cực lisp làm gì. Trong setting có đặt mà. DIMSTYLE/ Symbols and Arrows/ Arc length symbol/ NONE
^_^
- 1
-
Vào lúc 7/3/2023 tại 08:58, KhuongPMDC đã nói:Mình tạo tài khoản để cảm ơn những suy nghĩ của bạn.
Có gì đâu bác.
Em thấy mọi chuyện đều có cách giải quyết hợp lý.
Chẳng qua họ chưa nghĩ thấu đáo nên muốn trao đổi cho thông suy nghĩ.
Ko đủ chi phí mua đứt thì có thể thuê theo ngày, tháng, năm hoặc theo số lần để chi phí thấp hơn. Vẫn dùng được hợp lý mà chi phí cũng hợp lý. Chẳng qua họ ko đặt vấn đề thẳng thắn chỉ muốn "ăn không" của người khác nên cứ phải nói thẳng thôi.
-
Vào lúc 16/1/2023 tại 08:06, tannguyen291 đã nói:entmake thì ngon hơn command nhưng thiếu font thì cũng k làm gì được.
Ok. Vậy chủ thớt chắc phải làm vài vòng check có font không rồi mới chạy command được.
-
-
5 giờ trước, anh327 đã nói:dạ e làm đồ án tốt nghiệp ạ
Đồ án thì chịu khó nghiên cứu Project đi. Sau đi làm có cái mà dùng.
GG nhiều mà
-
Vào lúc 26/1/2022 tại 17:11, anh327 đã nói:bác nào cho em xin lisp vẽ biểu đồ nhân lực với ạ
Cứ project mà chơi thôi. Lisp làm gì . Project miễn phí lại pro.
-
Vào lúc 9/10/2021 tại 14:54, Doan Van Ha đã nói:Thanks bác Hạ nhá.
-
Vào lúc 6/10/2021 tại 22:43, Doan Van Ha đã nói:He he, em không biết viết.
Bác Hạ cho em xin lisp này đê. ^_^
-
Block động
trong Sử dụng AutoCAD
Chủ thớt thử xem đúng ý chưa ?
https://www.mediafire.com/file/swu8ctv3unlnqqe/test_ve_nhanh_1.dwg/file
^_^
-
55 phút trước, tavantoan12 đã nói:Đã hiểu.
Chủ thớt chỉ cần thay dòng là chuyển tọa độ center Circle chẵn bên WCS sang UCS rồi vẽ mleader theo điểm này là xong.
(command "mleader" "h" p1 pause 0 (strcat "T" (rtos n 2 0)))
bằng
(command "mleader" "h" (trans p1 0 1) pause 0 (strcat "T" (rtos n 2 0)))
- 1
-
1 giờ trước, tavantoan12 đã nói:May quá bác bắt đầu hiểu ý em rồi, cám ơn bác đã kiên nhẫn.
Với câu hỏi của bác thì: Do tính chất công việc em buộc phải làm tròn tọa độ ở wcs , làm tròn của em là từ số thứ 4 sau dấu phẩy sẽ đưa nó về 0 chính về thế mới có dòng (setq p1 (list (atof (rtos (car p) 2 3)) (atof (rtos (cadr p) 2 3)) 0)) này đó bác, không phải làm tròn kiểu luprec đâu ( cái này chỉ về mặt hiển thị thôi chứ bản chất nó không làm tròn)
Theo video của bác, nếu bác đưa về wcs , để luprec 7 thì tọa độ của bác sẽ không có dạng xx,xxx0000 (đây là điều em muốn)
Mình chỉnh 1 chút chủ thớt test nhé.
(defun c:dt (/ p p1 center n clayer osmode) (setvar "cmdecho" 0) (setq clayer (getvar "clayer") osmode (getvar "osmode") ) (setvar "ORTHOMODE" 1) ;;; (command "ucs" "w") (command "clayer" "8 ???") (command "cmleaderstyle" "1") (prompt "\n Ch?n v? trí di?m T ") (setq n 0) (while (setq p (getpoint)) (setq n (1+ n)) (setq p1 (list (atof (rtos (car p) 2 3)) (atof (rtos (cadr p) 2 3)) 0)) (setvar "osmode" 0) (command "circle" p1 0.05) (command "line" (polar p1 0 0.05) (polar p1 pi 0.05) "") (command "rotate" "l" "" p1 "c" 90 "") ;(command "ucs" "p") (command "mleader" "h" p1 pause 0 (strcat "T" (rtos n 2 0))) (setvar "osmode" osmode) ) ;;; (command "ucs" "p") (command "clayer" clayer) (princ) )
- 1
-
2 giờ trước, ducminhvu đã nói:mình làm như vậy nhưng không bắt được điểm bạn ơi
Shift+chuột phải là basic mà.
-
3 giờ trước, tavantoan12 đã nói:Mong bác xem video này sẽ hiểu
Muốn MLead theo ucs thì quay về wcs làm gì khi dùng lệnh (command "ucs" "w") ?
Nói chung là nhìn clip vẫn chưa hiểu lắm. Tọa độ làm tròn 3 sau phẩy thì dùng unit chỉnh.
Mình cũng làm clip xem đúng chưa nhé.
-
35 phút trước, ducminhvu đã nói:Chui vào vport, gõ lệnh zoom window, bắt end point 2 điểm chéo nhau rectang màu đỏ là sẽ zoom đúng rectang đỏ. ^_^
-
8 phút trước, tavantoan12 đã nói:Để ra Mlea màu đỏ thì mình post trên rồi bỏ ortho đi là nó tự động thành T1 đỏ theo UCS.
https://uphinh.org/image/9JFgQ2
- 1
-
8 phút trước, tavantoan12 đã nói:Bác Bee xem điểm T1 em đang tọa sẽ rõ: điểm đó sau khi đưa về UCS world thì nó đang được làm tròn 3 số sau dấu phẩy, nhưng sau khí ucs nó sẽ ko đc làm làm ( đó làm điều em muốn)
Bài toán cần giải là làm cho cái Mleader ngang ra sau khi ucs ý
Không hiểu lắm ý 1 là sau 3 dấu phẩy.
Ý 2 là Mleader ngang thì chỉ cần bật ortho là ngang mà:
- 1
-
59 phút trước, tavantoan12 đã nói:Chào các bác, em có tự tạo được 1 lisp theo nhưng vẫn còn 1 điểm chưa ưng ý nghĩ mãi không ra. Nhờ các cao thủ giúp đỡ ạ
- Bản vẽ của em được trình bày theo đường ucs trong file dwg em đính kèm.
- Em muốn tạo 1 leader và vòng tròn tại các point màu vàng ( ví trí điểm đặt của leader và tâm vòng trong là tọa độ sau khi làm tròn lấy 3 số sau dấu phẩy và ở ucs world)
***** Vấn đề của em là sau sau khi tạo leader thì nó lại tạo ở tọa độ world nên nó bị nghiêng, em muốn nó được tạo theo đường ucs của mình.
Bên dưới là lisp của em
(defun c:DT (/ p p1 center n clayer osmode)
(setvar "cmdecho" 0)
(setq clayer (getvar "clayer")
osmode (getvar "osmode")
)
(command "ucs" "w")
(command "clayer" "8 平面図")
(command "cmleaderstyle" "引き出し線1")
(prompt "\n Chọn vị trí điểm T ")
(setq n 0)
(while
(setq p (getpoint))
(setq n (1+ n))
(setq p1 (list (atof (rtos (car p) 2 3)) (atof (rtos (cadr p) 2 3)) 0))
(setvar "osmode" 0)
(command "circle" p1 0.05)
(command "line" (polar p1 0 0.05) (polar p1 pi 0.05) "")
(command "rotate" "l" "" p1 "c" 90 "")
;(command "ucs" "p")
(command "mleader" "h" p1 pause 0 (strcat "T" (rtos n 2 0)))
(setvar "osmode" osmode)
)
(command "ucs" "p")
(command "clayer" clayer)
(princ)
)
Không biết đúng ý chủ thớt ko nhỉ. Nếu đúng thì khi thao tác vẫn ở trong ucs thì thao tác bình thường với chế độ ortho là off và bỏ dòng (command "ucs" "w") là đc mà nhỉ ! ^_^
- 1
-
3 giờ trước, emhoccad đã nói:E làm phiền bác lần cuối, mong bác trợ giúp
Vẫn là xử lý bock đó giờ em muốn thay đổi thêm phần chiều dài các đoạn có màu xanh đó.
Có 2 điểm là giao nhau và điểm tự do,
bên nào tự do thì kéo dài hoặc ngắn điểm đó để tổng chiều dài cả đoạn là 150mm.
Nếu chỉ còn 1 block thì chỉnh tay sẽ nhanh hơn viết lisp. Nếu muốn tổng quát hơn thì gửi bản vẽ cụ thể vì có rất nhiều trường hợp khác xảy ra. Viết xong block này lại phát sinh cái khác thì nó vô cùng lắm. Sẽ phải làm vài cái vòng lặp 1 line màu 4 với các đối tượng còn lại line màu xanh 3 chứ không còn đơn giản như thay màu nữa đâu chủ thớt nhé. Nếu muốn nhiều hơn nữa thì có thể inbox mình.
-
26 phút trước, emhoccad đã nói:Có duy nhất cái Block này viền ngoài màu Green nó có layer "Outline" ko đổi sang được Layer màu trắng bác ah.
Bác giúp e sửa lisp cứ màu xanh là chuyển hết sang layer "0" nhé
Đổi về Layer 0 thì nó lại theo màu layer 4.
(defun c:test (/ ss e blk doc) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (if (setq ss (ssget ":L" '((0 . "INSERT")))) (repeat (setq i (sslength ss)) (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i))))) (setq blk (vla-item (vla-get-blocks doc) (vla-get-effectivename e))) (vlax-for x blk (cond ((= (vlax-get x 'layer) "2") (vla-put-layer x "4") ) ((= (vlax-get x 'layer) "3") (vla-put-layer x "7") ) ((= (vlax-get x 'Color) 3) (vla-put-color x 256) (vla-put-layer x "0") ) ) ) ) ) (vla-regen doc acallviewports) (princ) )
-
7 giờ trước, emhoccad đã nói:E đang có rất nhiều Bloc cần đổi màu đối tượng bên trong nó.
cần lisp đổi các màu như sau:
- màu xanh --> trắng
- màu vàng--> màu xanh nước biển
Sau khi đổi xong Block (Cad ko cho đổi tên giống nhau trong cùng bản vẽ) vẫn giữ được tên như cũ, ảnh minh họa và file bản vẽ tham khảo
E cảm ơn các bác ah.
Hàng về chủ thớt test nhé. ^_^
(defun c:test (/ ss e blk doc) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (if (setq ss (ssget ":L" '((0 . "INSERT")))) (repeat (setq i (sslength ss)) (setq e (vlax-ename->vla-object (ssname ss (setq i (1- i))))) (setq blk (vla-item (vla-get-blocks doc) (vla-get-effectivename e))) (vlax-for x blk (cond ((= (vlax-get x 'layer) "2") (vla-put-layer x "4") ) ((= (vlax-get x 'layer) "3") (vla-put-layer x "7") ) ) ) ) ) (vla-regen doc acallviewports) (princ) )
- 1
-
Vào lúc 17/7/2021 tại 01:32, huyenle đã nói:Anh ơi nếu đùng được cả hai phương để coppy cả bảng thì chi phí thế nào ạ
Done lisp nhé Chiến.
Close nhé/
^_^
Bee
- 1
-
Vào lúc 28/6/2021 tại 00:57, Huyminer đã nói:Chào mọi người!
Hiện giờ mình đang viết 1 đoạn mã VBA phục vụ công việc.
Mình gặp vấn đề sắp xếp thứ tự các điểm ngẫu nhiên
có hình minh họa phía dưới
Mình đang sắp xếp bằng phương pháp x+y và xếp từ lớn tới nhỏ nhưng không được như ý lắm
Mọi người có thể giúp mình sắp xếp, đánh số các điểm theo tứ tự từ trên xuống dưới, phải qua trái được không?
Mình xếp như kia đoạn đầu đoạn cuối, nhưng khúc giữa lại bị lỗi
Xin cảm ơn!
Chủ thớt có thể thử cách xoay UCS, trans point sang UCS, sort theo UCS.
-
8 giờ trước, Đức Dũng đã nói:Bác ơi nếu gửi lên bật trên máy bác thì lại không sao, nhưng nếu bật máy em lại bị, e thử sang máy khác rồi, chắc bị lỗi phông nhưng không hiểu sửa kiểu gì ah.
Em gửi bản vẽ đính kèm luôn bác xem giúp nhé
Font time new roman voi arian ma lỗi là sao nhỉ ?
-
2 giờ trước, Doan Van Ha đã nói:Cho bạn cái này, của tác giả trong lisp. Tên lệnh Taborder.
Bác Hạ dạo này vướng Covid nên hơi khó ở chút xíu. Toàn vào cmt dạng này. Hí hí. ^_^
Nhiều nhóc mới lớn còn chưa biết gì sao biết đc nên đối với họ cứ cho qua đi bác Hạ.
Ngứa mắt gãi hết sao đc. ^_^
- 1
- 1
Cho em hỏi cách đổi dim DIMANGULAR từ độ thành số hoặc viết giúp em lisp gán kết quả DIMARC vào DIMANGULAR
trong AutoLisp
Đã đăng · Trả lời báo cáo
Thay text dim thì ko còn update đc, edit dim là tối kỵ trong vẽ bản vẽ. Một khi khối lượng bản vẽ tăng lên và scale bản vẽ dim vẫn y nguyên thì rất khó kiểm soát hồ sơ. Nói chung là chỉ đẹp mà để lại hậu họa khôn lường.
^_^