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

ketxu

Moderator
  • Số lượng nội dung

    6037
  • Đã tham gia

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

  • Ngày trúng

    368

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


  1. Vào lúc 8/7/2018 tại 15:02, hoquangvinh đã nói:

    Mình đang dùng phần mềm thiết kế đường, tại vị trí đường cũ thì sẽ có tô hatch phạm vi đường cũ nhưng phần mềm xuất hatch ra nó bị tỷ lệ scale của hatch lớn quá nên phạm vi đường cũ ko thể hiện được một phần của hatch để mình có thể điều chỉnh lại tỷ lệ scale cho hợp lý đc.

    Các bác có ai biết trong cad có lệnh nào để điều chỉnh cái tỷ lệ mặc định của hatch giống như lệnh Ltscale đối với Linetype ko ạ, e tìm hết google mà ko thấy.

    Thanks.1081258078_AutoCAD2008-DDropboxCngvicNam20186.uongLrampKhaosatbdnghiadan_dwg.jpg.74699f684beca19307f9dcd91e059718.jpg

     

    Cái này do phần mềm của bạn nó set khi Hatch, có điều chỉnh thì nó cũng set lại theo ý nó mà ^^  Bạn có thể nghĩ đến hướng điều chỉnh hatch scale sau khi nó được tạo bằng lisp


  2. Sao đọc đề m cứ thấy rối rối nhỉ ^^

    Vẫn là ngần ấy thao tác mà :o. Vẫn là việc phải chỉ định các đối tượng muốn làm việc, r Stretch.  
    Thế các đối tượng b cần stretch có phải sì trét nhiều lần không ? Nếu không thì giải quyết bài toán này khá vô nghĩa
    Và hoàn toàn có thể dùng các kỹ thuật về Layer, Object Isolate để giải quyết vấn đề

    Ps thêm với 1 bạn trên kia, k thể dùng kỹ thuật Select Group trong command Stretch, vì Group thì k lưu thông tin về cách chọn, còn Stretch thì lại cần thông tin đó

    • Vote tăng 1

  3. 13 giờ trước, amateurday đã nói:

    Để chấm điểm code này thì mới được 9.5 điểm, muốn 9.6 thì phải thêm tùy chọn layer 0 và hidden chưa được load trong bản vẽ. Hề hề.

     

    Quick code mà điểm cao thế là quá hạnh phúc r ^^
    - Layer 0 : Chắc chắn tồn tại trong bản vẽ
    - Linetype HIDDEN : Chính xác, Có thể chưa có trong bản vẽ, CAD không làm j và đưa thông báo k set được Linetype. Nếu k load Linetype tự động thì lisp đến đoạn này là xong
    - Tự động load linetype HIDDEN : mặc dù tự load Lintype Hidden (nếu có) trong các file LIN k hề khó, tuy nhiên lại k có gì có thể đảm bảo có thể tự load linetype tên là HIDDEN hoặc bất kỳ linetype nào người dùng tự điều chỉnh khi bản vẽ chưa có, kể cả khi chúng ta dốc toàn bộ LIN ra để load ^^  Ket gặp trường hợp này rất nhiều ở mấy bác thích làm file LIN customize ^^

    • Like 1
    • Vote tăng 1

  4. Về cơ bản bạn hoàn toàn có thể type yêu cầu này để GPT code lại, hoặc yêu cầu nó code không sử dụng Command mà dùng entmake thì sẽ k cần thay đổi các biến hệ thống hiện hành. Còn nếu bạn vẫn muốn phát triển từ code này thì thêm dòng (while (> (getvar 'CMDACTIVE) 0)(command pause)) ở trước đoạn re-set. 
    (Lưu ý Code trên của bạn đang chưa có bắt lỗi, trường hợp người dùng ấn Esc thì k reset được, mình thêm vào luôn)

     

    (defun c:X1 ( / *error* oldVars oldVal )
    	(defun *error*(m)
    		(princ m)
    		(and oldVars oldVal (mapcar 'setvar oldVars oldVal))
    	)
    			
    	  ;; Lưu lại trạng thái hiện tại
    	  
    	(setq 
    		oldVars '(cecolor celtype celtscale)
    		oldVal	(mapcar 'getvar oldVars) 
    	)
    	;; Đặt thuộc tính
    	(mapcar 'setvar oldVars '("222" "HIDDEN" 150))  
    	;; Vẽ XLINE dọc
    	(command "_.XLINE" "_V")
    	(while (> (getvar 'CMDACTIVE) 0)(command pause))
    
    	;; Khôi phục lại các giá trị cũ
    	(and oldVars oldVal (mapcar 'setvar oldVars oldVal))
    	(princ)
    )


     

    • Vote tăng 1

  5. Quick code cho bạn,
    Code lọc các text có cấu trúc (.....) sau đó xử lý. Bạn cần điền tiền tố và số bắt đầu. Như trong hình của bạn thì tiền tố là L1., còn Start là 1. Nếu cần chi tiết hơn hoặc xử lý các trường hợp khác thì bạn nhờ mọi ng trên đây sửa tiếp hoặc liên hệ riêng ai đó để đặt hàng ^^

     

    (defun c:foo(/ s pre start dump obj)
    (and 
    	(setq s (ssget (list (cons 0 "*TEXT")(cons 1 "(*)"))))
    	(setq pre (getstring "\nPrefix :"))
    	(setq start (getint "\nStart Number:"))
    	(setq dump (if (< start 10) "0" ""))
    	(foreach obj (acet-ss-to-list s)
    		(vla-put-Textstring (setq obj (vlax-ename->vla-object obj))
    			(strcat pre dump (itoa start) (vla-get-Textstring obj))
    		)			
    	)
    )
    (princ)
    )

     

    • Like 1

  6. E cần định nghĩa : sao lệnh nó hiểu được số 1328 trong 1 đống cạnh, hình e quét qua, tức đâu là cơ sở để CAD biết đâu là thông số ban đầu  :)

    Mong muốn của E CAD đã làm trong Action Stretch của Block động, nhưng lúc đó là nó có cơ sở để nhận diện số "1328"

×