Chuyển đến nội dung
Diễn đàn CADViet

faker1907

Thành viên
  • Số lượng nội dung

    45
  • Đã tham gia

  • Lần ghé thăm cuối

  • Ngày trúng

    2

Bài đăng được đăng bởi faker1907


  1. 20 giờ trước, VMV đã nói:

    Chào anh chị và các bạn.

    Tôi gặp vấn đề khi sử dụng anotative cho dim, text, multileader để trình bày bản vẽ trong Model, nhưng khi trình bày bằng các khung nhìn viewport bên Layout thì những khung nhìn đó lại ko hiển thị nội dung. Tôi phải kích đúp vào rồi dùng lệnh REGEN mới hiển thị lên. Như vậy trong bản vẽ có rất nhiều khung nhìn thì e rằng mất thời gian để kích đúp và regen nó.

    Anh chị cho tôi xin giải pháp. Trân trọng cảm ơn

    regenall thì đữo phải click vào từng ô


  2. 11 giờ trước, ketxu đã nói:

    Quick code gửi bạn 
     

    
    (defun c:rtr(/ _ml ol *error*)
    	(defun *error*(m)(and oL (setvar 'clayer oL)))
    	(defun _ml (c / name) ; c => 0, < 257. 257 = ins	
    	(setq name (itoa c))
    	(cond 
    		((tblobjname "layer" name) name)
    		((entmake (list '(0 . "LAYER")
    			'(100 . "AcDbSymbolTableRecord")
    			'(100 . "AcDbLayerTableRecord")
    			(cons 70 0)
    			(cons 2 name)  ; layername                         
    			(cons 62 c)    ; color number                         
    			)
    		))
    	)
    	name
    )
    	(setq oL (getvar 'clayer))
    	(or *RTR_Color* (setq *RTR_Color* 1))
    	(setq *RTR_Color* (cond ((getint (strcat "\nLayer Number <" (itoa *RTR_Color*) ">")))(*RTR_Color*)))
    	(if (not (< 0 *RTR_Color* 257))(setq *RTR_Color* 1))
    	(setvar 'clayer (_ml *RTR_Color*))
    	(command ".rectangle")
    	(while (> (getvar 'cmdactive) 0)(command pause))
    	(*error* nil)
    )

     

    E cảm ơn bác ạ!


  3. Em chào các bác. 

    Em xin nhờ các bác viết giúp e 1 lisp cad với nội dung như sau:

    - Nhập lệnh: RTR

    - Yêu cầu nhập tên layer (chỉ là số, ví dụ: 18)

    - Nếu layer đó tồn tại rồi thì chuyển bước tiếp theo

    -Tự động tạo layer có tên là 18 và màu cũng là 18 luôn

    -Vẽ rectang

    - Ghi nhớ layer đó cho lần nhập lệnh tiếp theo.

    Em xin cảm ơn các bác ạ

    • Vote giảm 1

  4. 5 giờ trước, HUY2K đã nói:

     

    Thank anh, tiimage.thumb.png.40408747439090def0d2b5c972d94011.pngện anh làm cái gán đai rồi thì anh thêm luôn chức năng chia số lượng đai đi ạ, tức đai d8a150 thì lấy dim chia 150 + 1 gán luôn vào trước giá trị đai luôn. Mà lisp ap vô cad đời cao nó lag tầm 20 giây mới load xong anh ạ

    Cái autorebar kia là bác mua ạ?


  5. 2 giờ trước, NTHAHT đã nói:

    Update.

    image.png.3ca9343df5c9b195307a7f50ee5a3111.png

    - Muốn gán số lượng thì tick vào chỗ số lượng (số lượng tính toán và gán cứng, có nghĩa là khi co kéo dim, số lượng không thay đổi).

    - Ô trắng bên cạnh danh sách giá trị làm tròn, có thể nhập giá trị nếu không có trong danh sách.

    - Dùng không lag là ổn rồi... hehehe...

    sao nó lại ra kết quả như này các bác nhỉ?

    1.png


  6. 1 giờ} trướ}c, NTHAHT đã nói:

    1. Biến hệ thống LISPSYS sau khi thay đổi giá trị cần phải khởi động lại Cad mới có hiệu lực.

    2. Có lựa chọn gối hay nhịp lý do (không chỉ là chia dim) là để làm tròn, liên quan đến cắt thép:

    - Tại gối: sẽ làm tròn 2 dim 2 bên (còn lại cho vào dim giữa).

    - Tại nhịp: Sẽ làm tròn dim giữa, kích thước còn lại chia đều cho dim 2 bên.

    Nhưng e vẫn mong bác đặt thành lệnh tắt L3.4.5.6 để thao tác nhanh hơn ạ. Cảm ơn bác!

    • Vote giảm 1

  7. 1 giờ} trướ}c, NTHAHT đã nói:

    1. Biến hệ thống LISPSYS sau khi thay đổi giá trị cần phải khởi động lại Cad mới có hiệu lực.

    2. Có lựa chọn gối hay nhịp lý do (không chỉ là chia dim) là để làm tròn, liên quan đến cắt thép:

    - Tại gối: sẽ làm tròn 2 dim 2 bên (còn lại cho vào dim giữa).

    - Tại nhịp: Sẽ làm tròn dim giữa, kích thước còn lại chia đều cho dim 2 bên.

    Dạ. Cảm ơn bác đã khai sáng ạ!


  8. 14 giờ trước, faker1907 đã nói:

    đặt về 0 là không dùng được lisp luôn ấy ạ. thay vì hiện bảng thông báo để lựa chọn, bác có thể đặt thành lênh tắt L3, L4, L5, L6 để chia 3 4 5 6 tương ứng k ạ? vì cái lựa chọn kia vừa mất thời gian mà lại dim trên/dưới thì mục đích cuối cũng vẫn là chia dim ạ?

     

    Rất mong bro @NTHAHT gúp đỡ ạ. Thanks!!!

    • Vote giảm 1

  9. 9 giờ trước, NTHAHT đã nói:

    Cad đời cao đặt LISPSYS = 0 là hết lỗi font. Thông báo kiểu hộp thoại chỉ lần load đầu tiên, về sau chỉ ở dòng command.

    đặt về 0 là không dùng được lisp luôn ấy ạ. thay vì hiện bảng thông báo để lựa chọn, bác có thể đặt thành lênh tắt L3, L4, L5, L6 để chia 3 4 5 6 tương ứng k ạ? vì cái lựa chọn kia vừa mất thời gian mà lại dim trên/dưới thì mục đích cuối cũng vẫn là chia dim ạ?

     

    • Vote giảm 1

  10. Chào các bác. em có sưu tầm được lisp co đều 2 đầu dim. E muốn nhờ các bác sửa giúp e để nó có thể lưu giá trị đã nhập trước đó ạ.

    Em cảm ơn các bác. Code lisp:

     

    (defun c:DDS ()
      (vl-load-com)
      (setq dimt (getreal "\nEnter Dim shrink: "))
      (prompt "\nSelect dim: ")
      (setq ssdim (ssget '((0 . "DIMENSION"))))
      (ssgetfirst)
      (foreach dim (vl-remove-if 'listp (mapcar 'cadr (ssnamex ssdim)))
        (setq dimo (vlax-ename->vla-object dim))
        (setq Ld (vlax-get-property dimo 'Measurement))
        (setq data (entget dim))
        (if (< dimt (/ Ld 2))
          (progn
            (setq p1 (cdr (assoc 13 data)))
            (setq p2 (cdr (assoc 14 data)))
            (setq ang (angle p1 p2))
            (setq p11 (polar p1 ang dimt))
            (setq p22 (polar p2 ang (- dimt)))
            (setq data (entmod (subst (cons 13 p11) (assoc 13 data) data)))
            (entmod (subst (cons 14 p22) (assoc 14 data) data))
          ))
      );foreach
      (princ "limfx 0905525145")
    );end

×