


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
-
-
3 giờ trước, Binh Luu đã nói:
Em chào các bậc tiền bối ạ,Hiện tại e đang cần các bác giúp e một lisp cad như sau ạ: (để rõ ràng mời các bác xem file pdf e có đính kèm bên dưới)
Đầu vào:
- Các hình đa giác kín hình dạng và kích thước khác nhau được vẽ bằng lệnh pline
Đầu ra:
- Xuất ra bảng thống kê bao gồm các cột: hình dạng đa giác, kích thước các cạnh, số lượng hình giống nhau, diện tích và chiều dài (xuất ra thông tin của đa giác đó)Em là dân ngoại đạo nên không biết lisp này có dễ viết hay không nữa. Do nhu cầu công việc nên hiện tại đang cần. Không biết có bác nào giúp được e. E xin hậu tạ ạ
Cuối cùng e chúc các bác nhiều sức khỏe và diễn đàn ngày càng lớn mạnh hơn nữa!
Lisp này chắc phải mất phí thì mới có đc rồi. :D
-
1
-
-
Phá Block
trong Sử dụng AutoCAD
45 phút trước, Phúc Nhi đã nói:Không thể phá. Mong các tiền bối chỉ giúp
Hàng về, :D2. CHI TIET KY THUAT.dwg
-
31 phút trước, monavamonava đã nói:1.extrude 2 pline kín này lên.
2. Vẽ 2 pline chiếu đứng rồi extrude tiếp dài dài tí cũng đc
3. SUBTRACT lấy khối to trừ đi khối nhỏ là xong.
-
1 giờ} trướ}c, monavamonava đã nói:Chào các bác. Em có hình tường cánh cống (phần giới hạn màu đỏ) như file. Nhờ các bác dựng cho em hình ở dạng không gian. Xin cảm ơn!
Vẽ khối xong Subtruc là được thôi mà. Nghĩ đi là ra. :D
-
Vào lúc 21/9/2020 tại 10:08, tienhuy93 đã nói:Cảm ơn bác nhé, Tiện bác cho em hỏi là có lisp từ 3DPolyline sang Spline mà vẫn giữ nguyên cao độ không ạ
Có hết :D
-
Vào lúc 3/9/2020 tại 15:42, tienhuy93 đã nói:Nhờ các bác cho em xin lisp chuyển từ SPLINE thành 3DPolyline với ạ . Em cảm ơn
Hỏi a GG là ra tương đối nhiều. Đây là 1 ví dụ :D
;;CADALYST 12/03 AutoLISP Solutions SPLINE-TO-PLINE.LSP ;;(c) 2003 Tony Hotchkiss (defun spline-to-pline (/ i) (vl-load-com) (setq *thisdrawing* (vla-get-activedocument (vlax-get-acad-object) ) ;_ end of vla-get-activedocument *modelspace* (vla-get-ModelSpace *thisdrawing*) ) ;_ end of setq (setq spline-list (get-spline)) (setq i (- 1)) (if spline-list (progn (setq msg "\nNumber of segments <100>: ") (initget 6) (setq num (getint msg)) (if (or (= num 100) (= num nil)) (setq num 100) ) ;_ end of if (repeat (length spline-list) (setq splobj (nth (setq i (1+ i)) spline-list)) (convert-spline splobj num) ) ;_ end of repeat ) ;_ end of progn ) ;_ end of if ) ;_ end of spline-to-pline (defun get-spline (/ spl-list obj spline no-ent i) (setq spl-list nil obj nil spline "AcDbSpline" selsets (vla-get-selectionsets *thisdrawing*) ss1 (vlax-make-variant "ss1") ) ;_ end of setq (if (= (vla-get-count selsets) 0) (setq ssobj (vla-add selsets ss1)) ) ;_ end of if (vla-clear ssobj) (setq no-ent 1) (while no-ent (prompt "\nSelect splines: ") (vla-Selectonscreen ssobj) (if (> (vla-get-count ssobj) 0) (progn (setq no-ent nil) (setq i (- 1)) (repeat (vla-get-count ssobj) (setq obj (vla-item ssobj (vlax-make-variant (setq i (1+ i))) ) ;_ end of vla-item ) ;_ end of setq (cond ((= (vlax-get-property obj "ObjectName") spline) (setq spl-list (append spl-list (list obj)) ) ;_ end of setq ) ) ;_ end-of cond ) ;_ end of repeat ) ;_ end of progn (prompt "\nNo entities selected, try again.") ) ;_ end of if (if (and (= nil no-ent) (= nil spl-list)) (progn (setq no-ent 1) (prompt "\nNo splines selected.") (quit) ) ;_ end of progn ) ;_ end of if ) ;_ end of while (vla-delete (vla-item selsets 0)) spl-list ) ;_ end of get-spline (defun convert-spline (splobj n / i) (setq point-list nil 2Dpoint-list nil z-list nil spl-lyr (vlax-get-property splobj 'Layer) startSpline (vlax-curve-getStartParam splobj) endSpline (vlax-curve-getEndParam splobj) i (- 1) ) ;_ end of setq (repeat (+ n 1) (setq i (1+ i)) (setq p (vlax-curve-getPointAtParam splobj (* i (/ (- endspline startspline) n) ) ;_ end of * ) ;_ end of vlax-curve-getPointAtParam ) ;_ end of setq (setq 2Dp (list (car p) (cadr p)) 2Dpoint-list (append 2Dpoint-list 2Dp) point-list (append point-list p) z (caddr p) z-list (append z-list (list z)) ) ;_ end of setq ) ;_ end of repeat (setq summ (apply '+ z-list)) (setq arraySpace (vlax-make-safearray vlax-vbdouble ; element type (cons 0 (- (length point-list) 1) ) ; array dimension ) ;_ end of vlax-make-safearray ) ;_ end of setq (setq vert-array (vlax-safearray-fill arraySpace point-list)) (vlax-make-variant vert-array) (if (and (= :vlax-true (vlax-get-property splobj 'IsPLanar)) (= summ 0.0) ) ;_ end of and (setq plobj (add-polyline 2Dpoint-list vla-AddLightweightPolyline ) ;_ end of add-polyline ) ;_ end of setq (setq plobj (add-polyline point-list vla-Add3DPoly ) ;_ end of add-polyline ) ;_ end of setq ) ;_ end of if (vlax-put-property plobj 'Layer spl-lyr) (vla-delete splobj) (vlax-release-object splobj) ) ;_ end of convert-spline (defun add-polyline (pt-list poly-func) (setq arraySpace (vlax-make-safearray vlax-vbdouble (cons 0 (- (length pt-list) 1) ) ; array dimension ) ;_ end of vlax-make-safearray ) ;_ end of setq (setq vertex-array (vlax-safearray-fill arraySpace pt-list) ) ;_ end of setq (vlax-make-variant vertex-array) (setq plobj (poly-func *modelspace* vertex-array ) ;_ end of poly-func ) ;_ end of setq ) ;_ end of add-polyline (defun c:s2p () (spline-to-pline) (princ) ) ;_ end of c:s2p (prompt "SPLINE-TO-PLINE by Tony Hotchkiss. Enter S2P to start" ) ;_ end of prompt
-
2
-
-
59 phút trước, lesang đã nói:các bác cho em hỏi 1 . h em muốn phá vỡ text sang nét vẽ để chuyển sang sử dụng máy cnc mà em có tham khảo trên diễn đàn sử dụng lệnh TXTEXP đê phá vỡ nhưng em ko dùng đc lệnh đó. k biết có phải dùng lisp ko ạ
Nếu ko dùng được thì bạn cài thêm express.
Hoặc cách khác là print sang PDF rồi import ngược lại CAD thì sẽ là hatch, sau đó tạo lại đường bao hatch là đc.
-
1 giờ trước, Doan Van Ha đã nói:Dòng lệnh rename bằng vlax-put như thế nào, cho xem để góp ý thêm, vì khoản Vietnamese này trong lisp còn nhiều thứ đau đầu lắm.
Về căn bản là em thấy nó đọc đc giá trị bao nhiêu thì xử luôn không cho ra command thì sẽ không bị khác giá trị.
Đây là ví dụ em xử nó :D
(setq n 0) (vlax-for x (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))) (if (vl-string-search "DIM" (strcase (vla-get-name x))) (progn (setq new_name (strcat "dim_temp" (rtos n 2 0))) (vlax-put x 'name new_name) (setq layers (cons new_name layers)) (setq n (1+ n)) ) ;progn ) ;if ) ;vlax-for
-
3 phút trước, Doan Van Ha đã nói:Tốt nhất là nên suy nghĩ trước khi hỏi. Chúc mừng.
Dạ vâng. Sẽ phải động não. Căn bản việc ngập đầu nhiều lúc nó bị lú lẫn nên tính hỏi cho nhanh.
Cám ơn bác nhiệt tình góp ý. :D
-
2 giờ trước, Doan Van Ha đã nói:Cách là convert "\U+0110" thành (chr 208)
Em làm cách khác đơn giản và nhanh gọn hơn roài. Rename nó bằng vlax-put xong mới Laymrg. Hihi, nhanh và đơn giản hơn.
-
51 phút trước, Doan Van Ha đã nói:Cách là convert "\U+0110" thành (chr 208)
Heiz vẫn là unicode sang ascii. Bác có code convert cho e xin luôn, máy trên vp đang ko lưu bộ code, ngồi search gg thì cũng mất time.
-
1 phút trước, Doan Van Ha đã nói:Do chữ "Đ". Nếu "Đ" copy từ trong tên layer thì strlen = 1 nhưng "Đ" viết vào command thì strlen = 7.
Khắc phục: copy name từ layer paste vào command thì OK.
Em đang làm cái lisp merge layer mà nhiều thế copy paste bao giờ xong được.? Có cách nào khác không bác Hạ ?
-
1 phút trước, Doan Van Ha đã nói:"Truy cập bị từ chối". Sao Bee không rút gọn BV lại, down không được.
:D
Em để nguyên để bác hình dung độ bá đạo của bản vẽ. Đã bật share, lúc up ko để ý ạ.
-
2 giờ trước, Doan Van Ha đã nói:Thử gởi bản vẽ đó lên xem sao
Dạ có ngay ạ. Bản vẽ nhìn thôi rồi lượm ơi. Hik
Do chỉ cho up file <1.58Mb nên đành để link gg. Bác Hạ xem tải và chỉ em xử nó. Nhìn hệ thống layer mà lạnh người.
https://drive.google.com/file/d/1cD3x0Vb1H-fQa-floskWrfCT6iEkHiTQ/view?usp=sharing
-
Pro nào chỉ mình nhập Space vào dòng command, mình nhập toàn lỗi là sao ?
Thanks.
Command: -LAYMRG
Select object on layer to merge or [Name]: n
Enter layer name or [?]: tieu canh CÐT dieu chinh$0$IDEA - Dim
Invalid Layer name. -
-
10 giờ trước, h123ngoisao đã nói:Vậy bạn sửa giúp mình và thêm lựa chọn file ".dxf" vào lisp nhé.
Cám ơn bạn.
Nếu free : Để sort đúng thì bạn chỉnh từ 1-9 thêm 0 vào trước.
Nếu không muốn cách trên thì inbox mình chút phí cafe ngồi viết code cho bạn.
Thêm file dxf thì thay đoạn sau: "dwg;dxf" thay cho "dwg"
^_^
-
20 giờ trước, h123ngoisao đã nói:Lisp sẽ xếp theo thứ tự 1,10,11,..19,2,20,... Có thể khắc phục không nhỉ?
Có thể ^_^
-
1
-
-
Vào lúc 8/2/2020 tại 15:52, Auhtumn đã nói:Hi, moi người xem block trong file cad của em ạ
Mỗi lần em sửa ở bản vẽ A rồi Redefine về bản vẽ B thì các đối tượng nó bị nhân lên, làm bản vẽ nặng hơn. Mọi người giúp em với ạ, em cám ơn !
https://drive.google.com/file/d/1gi-MXNHYvf2H3joTkEk4CtqspDLJMjtr/view?usp=sharing
Remove hết lisp autoload.
Mở bản vẽ mới thử dùng lệnh,
File mở máy mình vẫn bình thường ko bị lỗi đó.
-
5 giờ trước, h123ngoisao đã nói:Trường hợp unit inch: khoảng cách 50 > khung sẽ không lỗi.
Trường hợp unit mm: 50 nhỏ hơn khung > sẽ lỗi.
Do vậy bạn tăng khoảng cách 50 thành lớn hơn khung thành 500 thử xem.
^_^
PS: mà sao sort ko theo thứ tự nhỉ. :D
-
1
-
-
Có thể dùng lệnh Laytrans thử xem ^_^
-
1
-
-
9 giờ trước, lepro135 đã nói:xin chào anh/chị trên diễn đàn. cho e hỏi có cách nào để xoay nhiều đối tượng trong cad mà tâm quay lại chính là tâm của từng đối tượng không. em đang vẽ quy hoạch cần quay nhiều text. mà quay từng text thì đuối quá. mong mọi người chỉ giúp. em xin cảm ơn!
Dùng lệnh "torient" nhé
^_^
-
1
-
-
2 giờ trước, letuan0601 đã nói:Cảm ơn @Bee Tiện cho mình hỏi. Mình có 1 bảng thống kê bên Autocad có cách nào link qua bên excel để khi thay đổi bên cad là bên excel tự động thay đổi theo không?
Có phần export table sang excel nhưng ko tự động update. Muốn auto thì bạn mua tool nhé.
-
1
-
-
3 giờ trước, letuan0601 đã nói:Thử dùng dim tắt hết các line đi ! Đơn giản hơn field.
vòng lặp
trong AutoLisp
Đã đăng · Trả lời báo cáo
Chưa hiểu được rõ ý đồ chủ thớt. Up code lên được không ?