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

MANHHUNGXDA

CADViet Team
  • Số lượng nội dung

    907
  • Đã tham gia

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

  • Ngày trúng

    16

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


  1. Hề hề hề,

    Mỗi lần lấy một record bác lại phải nhập điểm chèn một phát và do vậy việc các record xếp hàng như khi nhập tuốt luốt phụ thuộc vào tài nghệ pick điểm của bác đó. Giả sử có run tay mà pick liên thuyên cũng chớ có lo, cứ chịu khó nhặt cho hết các record muốn nhặt rồi nhấn enter một phát khi nó hỏi nhập record mới để kết thúc việc chọn record. Sau đó chịu khó dùng CAD mà move nó về cho đạt độ oai là OK hỉ???

    Chúc bác thắng lợi nhớn hỉ.....

    Nếu mà nó không thẳng hàng, e đã có công cụ này (tặng cả nhà luôn - MỤC ĐÍCH LÀ DÓNG ĐỐI TƯỢNG)

    Hì hì hì .....

    (defun C:DHT (/ thop dtmau dt p1 i p delta dong)
    (setq thop (ssget)) 
    (setq dtmau (car (entsel "\nChän ®èi t­îng mÉu:")))
    (setq dchuan (cdr (assoc 10 (entget dtmau))))
    (initget 1 "N D")
    (setq dong (strcase (getkword "\nB¹n muèn dãng theo ph­¬ng Däc hay Ngang/(N, D):")))
    (setq i 0)
    (repeat (sslength thop)
      (setq dt (ssname thop i))
      (setq p (cdr (assoc 10 (entget dt))))
      (cond
    (
    	(= dong "D")
     (progn
     (setq delta (- (car p) (car dchuan)) )
     (setq p1 (mapcar '- p (list delta 0.0 0.0)))
      )
      )
    
      (T 
    (progn
     (setq delta (- (cadr p) (cadr dchuan)) )
     (setq p1 (mapcar '- p (list 0.0 delta 0.0)))
      ))
      );;; end cond
      (command "move" dt "" p p1)
      (setq i (1+ i))
    );;; end repeat
    (princ)
    )

    • Vote tăng 1

  2. anh Bình ơi,

    Như vậy, khi nhập ta phải nhập hết danh sách, nếu ta dừng lại, nó sẽ pải nhập lại từ đầu, có cách nào mà ta gõ số thứ tự bao nhiều vi đụ gõ stt "79" nó sẽ xuất dòng TT 79 tương ứng qua không anh?

     

    Tóm lại:

    e muốn nó chạy vòng lặp để điền toàn bộ danh sách vào "ghicaukien"

    mỗi một dòng excel là nó sẽ insert 1 blockatt "ghicaukien" và nó điền vào tương ứng. (xuát hết)

     

    hoặc là nhập số TT rồi nó insert ra mỗi dòng tương ứng thôi!

    anh Bình giúp e với

    • Vote tăng 1

  3. Gửi các bác!

     

    e có 1 file cad gồm nhiều block khác nhau, giờ em muốn tách các block này thành các file riêng (mỗi block là 1 file cad riêng, tên file là tên block) rồi lưu vào thư mục ổ C: chẳng hạn.

     

    Cách nông dân là copy từng cái, kể hơi mất thời gian, bác nào có cách khác không giúp em với

    Xin cảm ơn!


  4. Kính gửi cộng đồng cadviet!

    Thế là tôi đã gửi đuợc 999 bài viết, với hơn 400 lời cảm ơn, Và bây giờ tôi muốn dành bài viết thứ 1000 này để gửi tới toàn thể anh em trong gia đình cadviet những lời chúc tốt đẹp nhất trong dịp năm mới, chúc gia đinh các anh em hạnh phúc - mạnh khoẻ và an khang và thành công trong sư nghiệp của anh em và có thể hơn thế nữa!

     

    Đóng góp của tôi cho diễn đàn chưa đuợc nhiều, mà không hiểu sao bài viết đã lên tới 1000, nhưng thôi, không sao,. Nhân cơ hội đó, tôi mong các anh em đoàn kết hơn nữa, giúp đỡ nhau, tôi nhiều hơn. Chia sẻ với nhau nhiều kinh nghiệm hơn trong công việc, khoa học kỹ thuật nói riêng và trong cuộc sống nói chung.

     

    Bản thân tôi luôn giúp đỡ anh em khi anh em cần (trong khả năng của tôi). Chuyên ngành tôi là Kết Cấu Thép (Nhà xưởng, nhà cao tằng bằng kết cấu thép, bồn thép, cột điện thép, thép tấm, thép hình, tole, xà gồ ...) Mong đuợc hợp tác và chia sẻ với anh em mọi lúc, mọi nơi. Tuy năng lực có hạn, cũng mong học hỏi anh em nhiều hơn.

     

    Lời cuối xin cảm ơn và xin lặp lại lời chúc ở trên!

    Trân trọng!

    manhhungxda (0912.898989)

    • Vote tăng 9

  5. Máy của em xài cad 2007, khi gõ lệnh MVSETUP thì hiện ra thông báo:

     

    Command: MVSETUP

     

    Initializing...malformed list on input

     

    rồi bình thường, không có gì xảy ra cả. Bác nào gặp trường hợp này rồi chỉ em với.

    Không có lệnh MVSETUP, em chết mất :cheers:

    tÔI KHÔNG NHẦM THÌ BẠN BỊ NHIẼM VIRUT acad.lsp

    Bạn thử diệt nó đi xem!


  6. Mạn phép hỏi các bác, em đang gặp phải 1 vấn đề về thiết kế ( sơ sơ thôi ) chọn độ dốc và vận tốc của ống dẫn dầu. Cụ thể như sau:

    Ống làm bằng thép mạ kẽm, đường kính " phi " 40 và 25, dẫn dầu cho máy phát điện từ cao độ -4.5 xuống cao độ - 7.8.

    Bài toán đặt ra là tìm độ dốc và vận tốc hợp lý nhất để cho dầu tự chảy xuống ( Coi như ống chảy đầy).

    Do điều kiện các dữ liệu khác chưa đầy đủ và rõ ràng nên mạo muội nhờ các bác ! Có bác nào có kinh nghiệm thực tế nhiều có thể giới hạn cho em khoảng vận tốc và độ dốc hợp lý k ạ ?

    Em xin cám ơn!!!!

    Theo tôi bạn tính bình thường như tính với nuớc vậy, chỉ có các hệ số là khác do chất lỏng là dầu thôi!

    Trong các sách thuỷ lực có cả,

    Ngày xưa tôi hay tính thuỷ lực mà giờ quên hết rồi bạn à, nên không nhớ nữa, để tôi tìm lại coi!

    • Vote tăng 1

  7. chào cả nhà

    mình đang làm đồ án cầu btct

    mình vẽ xong rồi nhưng đang mắc ở khâu quản lý các text trong layout

    các kiểu chữ của Dim thì mình xử lý đưọc rồi nhưng còn các text như các số ghi ký hiêu bó thép, cốt thép đai ... khi mình Zoom trong layout thì cho ra những kích thuớc chữ khác nhau.

    các bạn cho mình lời khuyên với nhe.

    ah và có cần phải cho text đó có chiều cao bằng với kích thuớc của text trong Dim không

    Thanks

    cái này thì nói chung là dài dòng, nhwng trong diễn đàn có cả

    bạn hãy dùng 1 đwơng kích thưóc (mà bạn cho là ok) trong khoảng hình vẽ, phá vỡ bằng lệnh X rồi dùng chính text đó mà ghi chú, nếu cẩn thận hơn, và có thời gian bạn có thể làm cho nó 1 style hay 1 layer riêng

    Nếu muốn chỉnh sửa thì bạn có thể dùng lệnh FI đê gọi các đối twợng giống nhau..................


  8. Kết quả 1 - 10 trong khoảng 109.000.000 cho những chuyện đau lòng. (0,05 giây)

    Kết quả 1 - 10 trong khoảng 51.500.000 cho những chuyện buồn. (0,43 giây)

    Kết quả 1 - 10 trong khoảng 3.670.000 cho những chuyện vui. (0,22 giây)

    Kết quả 1 - 10 trong khoảng 487.000 cho nét đẹp người hà nội. (0,30 giây)

    Kết quả 1 - 10 trong khoảng 3.460.000 cho nét xấu người hà nội. (0,42 giây)

    Kết quả 1 - 10 trong khoảng 1.420.000 cho nét thanh lịch của người hà nội. (0,38 giây)

    Cần có nhiều góc nhìn về Hà Nội

    http://tintuc.xalo.vn/00-1251155939/can_co..._ve_ha_noi.html

    Người Hà Nội gốc Hàng và người Hà Nội gốc Lội

    http://tintuc.xalo.vn/20-395383208/nguoi_h...oi_goc_loi.html

    Khổ thật các bác à,

    tôi tin rằng số luợng người lịch sự vẫn rất đông!

    • Vote tăng 2

  9. cái này theo mình không cần lisp làm gì cho mệt,mất công mấy anh trong diên đàn viết,theo mình thi bạn cứ chọn các đối tượng(block, text.....) ctril+1,trong hộp thoại này bạn xuông thanh (misc),chọn rotation roi cho vào đấy giá trị mà bạn muốn quay la được,đâu cần phải lisp cho mất công,theo mình là vậy,

    uh thì cũng đuợc, nhung nếu bạn có 1 bộ lisp riêng của mình thì bạn sẽ thấy cái hay dù nhỏ..........khi sửa lệnh theo ý muốn của mình, và bạn sở hữu nó...


  10. bác nào có biết lệnh mở khoá tất cả các lớp đã bị khoá kô? chỉ giùm cho e với :cheers:

    Có thể mình chưa hiểu hết ý bạn nhưng bạn hãy tìm câu trả lời trong lisp này:

    ;;==============================================================================
    =========================
    ;; Ham dao nguoc tinh trang cua cac lop THAW<>FREE
    (defun C:revla ()
    (setq La (tblnext "layer" t))
    (setq lname (cdr (assoc 2 la)))
    (setq fr (cdr (assoc 70 la)))
    (setq on (cdr (assoc 62 la)))
    (command ".layer")
    (cond
     ((= (strcase lname) (strcase (getvar "clayer")))
      (progn
    (princ "\nCan't free current layer")
      ;;(if (> on 0) (command "off" lname "Y") (command "on" lname) )
     ))
     (T (progn
      (if (= fr 0) (command "f" lname) (command "t" lname) )
     ;;(if (> on 0) (command "off" lname) (command "on" lname) )
     ))
    );;; end cond
    (setq la (tblnext "layer"))
    (while la
    (setq lname (cdr (assoc 2 la)))
    (setq fr (cdr (assoc 70 la)))
    (setq on (cdr (assoc 62 la)))
    (cond
     ((= (strcase lname) (strcase (getvar "clayer")))
      (progn
       (princ "\nCan't free current layer")
      ;;(if (> on 0) (command "off" lname "Y") (command "on" lname) )
     ))
     (T (progn
    	 (if (= fr 0) (command "f" lname) (command "t" lname) )
    	;;(if (> on 0) (command "off" lname) (command "on" lname) )
     ))
    );;; end cond
    (setq La (tblnext "layer"))
    );;; end while
    (command "")
    (princ)
    )
    ;;==============================================================================
    =========================
    ;;Ham dao nguoc tinh trang cua cac lop ON<>OFF
    (defun C:revla1 ()
    (setq La (tblnext "layer" t))
    (setq lname (cdr (assoc 2 la)))
    (setq fr (cdr (assoc 70 la)))
    (setq on (cdr (assoc 62 la)))
    
    (command ".layer")
    (cond
     ((= (strcase lname) (strcase (getvar "clayer")))
      (progn
      ;;(princ "\nCan't free current layer")
    (if (> on 0) (command "off" lname "Y") (command "on" lname) )
     ))
     (T (progn
      ;; (if (= fr 0) (command "f" lname) (command "t" lname) )
      (if (> on 0) (command "off" lname) (command "on" lname) )
     ))
    );;; end cond
    
    (setq la (tblnext "layer"))
    (while la
    (setq lname (cdr (assoc 2 la)))
    (setq fr (cdr (assoc 70 la)))
    (setq on (cdr (assoc 62 la)))
    (cond
     ((= (strcase lname) (strcase (getvar "clayer")))
      (progn
      ;;(princ "\nCan't free current layer")
       (if (> on 0) (command "off" lname "Y") (command "on" lname) )
     ))
     (T (progn
    	;;(if (= fr 0) (command "f" lname) (command "t" lname) )
    	 (if (> on 0) (command "off" lname) (command "on" lname) )
     ))
    );;; end cond
    (setq La (tblnext "layer"))
    );;; end while
    (command "")
    (princ)
    )
    ;;==============================================================================
    =========================
    ; -------------------- ISOLATE LAYER FUNCTION --------------------
    (Defun C:LAYISO (/ SS CNT LAY LAYLST VAL VPMODE)
    
     (acet-error-init
    (list
      (list "cmdecho" 0
    		"expert"  0
      )
      T	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
    
     (if (and (= 0 (getvar "tilemode"))						 ; if in a paper space
    	   (/= 1 (getvar "cvport"))						  ; viewport
      )
    (setq VPMODE T)										  ; set flag for viewport behavior
     )
    
     (if (not (setq SS (ssget "_i")))
    (progn
      (prompt "\nSelect object(s) on the layer(s) to be isolated: ")
      (setq SS (ssget))
    )
     )
    
    
     (if SS
    (progn
    
      (setq CNT 0)
    
      (while (and ss
    			  (> (sslength ss) 0)
    			  (setq LAY (ssname SS CNT))
    		 );and
    	(setq LAY (cdr (assoc 8 (entget LAY))))
    	(if (not (member LAY LAYLST))
    	  (setq LAYLST (cons LAY LAYLST))
    	)
    	(setq CNT (1+ CNT))
      )
    
      (cond
    	(VPMODE
    	  (command "_.vplayer" "_freeze" "*" "_Current")
    	  (foreach VAL LAYLST (command "_Thaw" VAL "_Current"))
    	  (command "")
    	  (if (= (length LAYLST) 1)
    		(prompt (acet-str-format "\nLayer %1 has been isolated in this viewport." (car LAYLST)))
    		(prompt (acet-str-format "\n%1 layers have been isolated in this viewport." (itoa (length LAYLST))))
    	  )
    	)
    	(T
    	  (if (member (getvar "CLAYER") LAYLST)
    		(setq LAY (getvar "CLAYER"))
    		(setvar "CLAYER" (setq LAY (last LAYLST)))
    	  )
    
    	  (command "_.-LAYER" "_OFF" "*" "_Y")
    	  (foreach VAL LAYLST (command "_ON" VAL))
    	  (command "")
    
    	  (if (= (length LAYLST) 1)
    		(prompt (acet-str-format "\nLayer %1 has been isolated." (car LAYLST)))
    		(prompt (acet-str-format "\n%1 layers have been isolated. Layer %2 is current."
    								  (itoa (length LAYLST)) LAY)
    		)
    	  )
    	)
      )
    )
     )
    
     (acet-error-restore)
    
     (princ)
    )
    ;;==============================================================================
    =========================
    ; -------------------- LAYER FREEZE FUNCTION ---------------------
    (defun C:LAYFRZ ()
    ; --------------------- Error initialization ---------------------
    
     (acet-error-init
    (list
      (list "cmdecho" 0
    		"expert"  0
      )
    
      nil	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
     (layproc "frz")
    
     (acet-error-restore)
     (princ)
    )
    ;;==============================================================================
    =========================
    ; ---------------------- LAYER OFF FUNCTION ----------------------
    (defun C:LAYOFF ()
    ; --------------------- Error initialization ---------------------
    
     (acet-error-init
    (list
      (list "cmdecho" 0
    		"expert"  0
      )
    
      nil	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
     (layproc "off")
    
     (acet-error-restore)
     (princ)
    )
    ;;==============================================================================
    =========================
    ; ------------- LAYER PROCESSOR FOR LAYOFF & LAYFRZ --------------
    (defun LAYPROC ( TASK / NOEXIT OPT BLKLST CNT VPMODE EN PMT ANS LAY NEST BLKLST VPSS)
    
    ; -------------------- Variable initialization -------------------
    
     (setq NOEXIT T)
    
     (setq OPT (getenv (strcat "ACET_Lay" TASK)))   ; get default option setting
     (if (not (or (null OPT) (= OPT ""))) (setq OPT (atoi OPT)))
    
     (setq CNT 0)											   ; cycle counter
    
     (if (and (= 0 (getvar "tilemode"))						 ; if in a paper space
    	   (/= 1 (getvar "cvport"))						  ; viewport
      )
    (setq VPMODE T)										  ; set flag for freeze behavior
     )
    
    
    ; ----------------------- Selection Prompt -----------------------
    
     (while NOEXIT
    
    (setvar "errno" 7)
    (while (= (getvar "errno") 7)
      (setvar "errno" 0)
      (initget "Options Undo _Options Undo")
      (cond
    	((= TASK "off")
    	  (setq EN (nentsel "\nSelect an object on the layer to be turned off or [Options/Undo]: "))
    	)
    	((= TASK "frz")
    	  (setq EN (nentsel "\nSelect an object on the layer to be frozen or [Options/Undo]: "))
    	)
    	((= TASK "vpi")
    	  (setq EN (nentsel "\nSelect an object on the layer to be Isolated in viewport or [Options/Undo]: "))
    	)
      )
      (if (= (getvar "errno") 7)
    	(prompt "\nNothing selected.")
      )
    )
    
    ; ---------------------- Options  Selected -----------------------
    
    (cond
      ((= EN "Options")
    	(initget "No Block Entity _No Block Entity")
    	(cond
    	  ((= OPT 1)
    		(setq PMT "\nEnter an option [block level nesting/Entity level nesting/]: ")
    	  )
    	  ((= OPT 2)
    		(setq PMT "\nEnter an option [block level nesting/No nesting/]: ")
    	  )
    	  (T
    		(setq PMT "\nEnter an option [Entity level nesting/No nesting/]: ")
    	  )
    	)
    	(setq ANS (getkword PMT))
    
    	(cond
    	  ((null ANS)
    		(if (or (null OPT) (= OPT ""))
    		  (progn
    			(setq OPT 3)
    			(setenv (strcat "ACET_Lay" TASK) "3")
    		  )
    		)
    	  )
    	  ((= ANS "No")
    		(setq OPT 1)
    		(setenv (strcat "ACET_Lay" TASK) "1")
    	  )
    	  ((= ANS "Entity")
    		(setq OPT 2)
    		(setenv (strcat "ACET_Lay" TASK) "2")
    	  )
    	  (T
    		(setq OPT 3)
    		(setenv (strcat "ACET_Lay" TASK) "3")
    	  )
    	)
      )
    
    
    ; ---------------------- Undo selected ---------------------------
    
      ((= EN "Undo")
    	(if (> CNT 0)
    	  (progn
    		(command "_.u")
    		(setq CNT (1- CNT))
    	  )
    	  (prompt "\nEverything has been undone.")
    	)
      )
    
    ; ------------------------- Find Layer ---------------------------
    
    (EN
    
    	(setq BLKLST (last EN))
    	(setq NEST (length BLKLST))
    
    	(cond
    
     ; If the entity is not nested or if the option for entity
     ; level nesting is selected.
    
    	  ((or (= OPT 2) (< (length EN) 3))
    		(setq LAY (entget (car EN)))
    	  )
    
     ; If no nesting is desired
    
    	  ((= OPT 1)
    		(setq LAY (entget (car (reverse BLKLST))))
    	  )
    
     ; All other cases (default)
    
    	  (T
    		(setq BLKLST (reverse BLKLST))
    
    		(while (and						; strip out xrefs
    			( > (length BLKLST) 0)
    			(assoc 1 (tblsearch "BLOCK" (cdr (assoc 2 (entget (car BLKLST))))))
    			   );and
    		  (setq BLKLST (cdr BLKLST))
    		)
    		(if ( > (length BLKLST) 0)		 ; if there is a block present
    		  (setq LAY (entget (car BLKLST))) ; use block layer
    		  (setq LAY (entget (car EN)))	 ; else use layer of nensel
    		)
    	  )
    	)
    
    ; ------------------------ Process Layer -------------------------
    
    	(setq LAY (cdr (assoc 8 LAY)))
    
    	(if (= LAY (getvar "CLAYER"))
    	  (cond
    		((= TASK "off")
    		  (initget "Yes No _Yes No")
    		  (setq ANS (getkword (acet-str-format "\nReally want layer %1 (the CURRENT layer) off? [Yes/No] : " LAY)))
    		  (setq ANS (if (null ANS) "No" ANS))
    		  (if (= ANS "No")
    			(setq LAY nil)
    		  )
    		)
    		((and (= TASK "frz") (not VPMODE))
    		  (prompt (acet-str-format "\nCannot freeze layer %1.  It is the CURRENT layer." LAY))
    		  (setq LAY nil)
    		)
    	  )
    	  (setq ANS nil)
    	)
    
    	(if LAY
    	  (cond
    		((= TASK "off")
    		  (if ANS
    			(command "_.-LAYER" "_OFF" LAY "_Yes" "")
    			(command "_.-LAYER" "_OFF" LAY "")
    		  )
    		  (prompt (acet-str-format "\nLayer %1 has been turned off." LAY))
    		  (setq CNT (1+ CNT))
    		)
    		((and (= TASK "frz") VPMODE)
    		  (command "_.VPLAYER" "_FREEZE" LAY "_current" "")
    		  (prompt (acet-str-format "\nLayer %1 has been frozen in this viewport." LAY))
    		  (setq CNT (1+ CNT))
    		)
    		((= TASK "frz")
    		  (command "_.-LAYER" "_FREEZE" LAY "")
    		  (prompt (acet-str-format "\nLayer %1 has been frozen."  LAY ))
    		  (setq CNT (1+ CNT))
    		)
    		((= TASK "vpi")
    		  (setq VPSS (ssget "_x" (list '(-4 . "											 '(0 . "VIEWPORT")				; get all viewports
    										 '(-4 . "												(cons 69 (getvar "cvport"))   ; except the current
    										 '(-4 . "NOT>")
    										 '(-4 . "												'(69 . 1)					 ; and the paperspace viewport (1)
    										 '(-4 . "NOT>")
    									   '(-4 . "AND>")
    								 )
    					 )
    		  )
    		  (command "_.VPLAYER" "_FREEZE" LAY "_select" VPSS "" "")
    		  (prompt (acet-str-format "\nLayer %1 has been frozen in all viewports but the current one."  LAY ))
    		  (setq CNT (1+ CNT))
    		)
    	  )
    	)
      )
    
    ; ---------------------- Nothing  Selected -----------------------
    
      ((not EN)
    	(setq NOEXIT nil)
      )
    )
     )
    )
    ;;==============================================================================
    =========================
    ; --------------------- LAYER LOCK FUNCTION ----------------------
    (Defun C:LAYLCK (/ LAY)
    
     (acet-error-init
    (list
      (list "cmdecho" 0
    		"expert"  0
      )
    
      T	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
     (setq LAY (entsel "\nSelect an object on the layer to be locked: "))
    
     (if LAY
    (progn
      (setq LAY (cdr (assoc 8 (entget (car LAY)))))
      (Command "_.-LAYER" "_LOCK" LAY "")
      (prompt (acet-str-format "\nLayer %1 has been locked."  LAY ))
    )
     )
    
     (acet-error-restore)
    
     (princ)
    )
    ;;==============================================================================
    =========================
    ; -------------------- LAYER UNLOCK FUNCTION ---------------------
    (Defun C:LAYULK (/ LAY)
    
     (acet-error-init
    (list
      (list "cmdecho" 0
    		"expert"  0
      )
    
      T	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
     (setq LAY (entsel "\nSelect an object on the layer to be unlocked: "))
    
     (if LAY
    (progn
      (setq LAY (cdr (assoc 8 (entget (car LAY)))))
      (Command "_.-LAYER" "_UNLOCK" LAY "")
      (prompt (acet-str-format "\nLayer %1 has been unlocked."  LAY ))
    )
     )
    
     (acet-error-restore)
    
     (princ)
    )
    ;;==============================================================================
    =========================
    ; ---------------------- LAYER ON FUNCTION -----------------------
    (Defun C:LAYON ()
    
     (acet-error-init
    (list
      (list "cmdecho" 0)
      nil	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
     (Command "_.-LAYER" "_ON" "*" "")
     (prompt "\nAll layers have been turned on.")
    
     (acet-error-restore)
    
     (princ)
    )
    
    ;;==============================================================================
    =========================
    ; --------------------- LAYER THAW FUNCTION ----------------------
    (Defun C:LAYTHW ()
    
     (acet-error-init
    (list
      (list "cmdecho" 0)
      nil	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
     (Command "_.-LAYER" "_THAW" "*" "")
     (prompt "\nAll layers have been thawed.")
    
     (acet-error-restore)
    
     (princ)
    )
    ;;==============================================================================
    =========================
    ; --------------------- LAYER MATCH FUNCTION ---------------------
    (Defun C:LAYMCH (/ SS CNT LOOP LAY ANS)
    
     (acet-error-init
    (list
      (list "cmdecho" 0)
      T	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
    
     (if (not (setq SS (ssget "_i")))
    (progn
      (prompt "\nSelect objects to be changed: ")
      (setq SS (ssget))
    )
     )
    
     (if SS
    (progn
      (setq CNT (sslength SS))
      (princ (acet-str-format "\n%1 found."  (itoa CNT)))	  ; Report number of items found
    
      (command "_.move" SS "")						; filter out objects on locked layers
    
      (if (> (getvar "cmdactive") 0)				  ; if there are still objects left
    	(progn
    	  (command "0,0" "0,0")
    	  (setq SS  (ssget "_p")
    			CNT (- CNT (sslength SS))			 ; count them
    	  )
    	)
    	(setq SS nil)								 ; else abort operation
      )
    
      (if (> CNT 0)								   ; if items where filtered out
    	(if (= CNT 1)
    	  (princ (acet-str-format "\n%1 was on a locked layer."  (itoa CNT) ))  ; report it.
    	  (princ (acet-str-format "\n%1 were on a locked layer."  (itoa CNT) ))
    	)
      )
    )
     )
    
    
     (if SS
    (progn
      (initget "Type-it _Type-it")
      (setq LAY  (entsel "\nSelect object on destination layer or [Type-it]: ")
    		LOOP T
      )
    
      (while LOOP
    	(cond
    	  ((not LAY)
    		(prompt "\nNothing selected.")
    		(initget "Yes No _Yes No")
    		(setq ANS (getkword "\nUse current layer? [Yes/No]  "))
    		(setq ANS (if (null ANS) "Yes" ANS))
    		(if (= ANS "Yes")
    		  (setq LAY  (getvar "clayer")
    				LOOP nil
    		  )
    		)
    	  )
    	  ((listp LAY)
    		(setq LOOP nil)
    	  )
    	  ((= LAY "Type-it")
    		(setq LAY (getstring "\nEnter layer name: "))
    		(cond
    		  ((tblobjname "LAYER" LAY)
    			(setq LOOP nil)
    		  )
    		  ((/= LAY "")
    			(initget "Yes No _Yes No")
    			(setq ANS (getkword "\nLayer does not exist. Would you like to create it? [Yes/No] : "))
    			(setq ANS (if (null ANS) "Yes" ANS));setq
    			(if (= ANS "Yes")
    			  (if
    				(entmake (list
    						  '(0 . "LAYER")
    						  '(100 . "AcDbSymbolTableRecord")
    						  '(100 . "AcDbLayerTableRecord")
    						  '(6 . "CONTINUOUS")
    						  '(62 . 7)
    						  '(70 . 0)
    						   (cons 2 LAY)
    						 )
    				)
    				(setq LOOP nil)
    				(prompt "\nInvalid Layer name.")
    			  )
    			)
    		  )
    		)
    	  )
    	)
    	(if LOOP
    	  (progn
    		(initget "Type-it _Type-it")
    		(setq LAY (entsel "\nSelect entity on destination layer or [Type-it]: "))
    	  )
    	)
      ); while LOOP
    
    
      (if (listp LAY)
    	(setq LAY (cdr (assoc 8 (entget (car LAY)))))
      )
    
      (command "_.chprop" SS "" "_la" LAY "")
    
      (if (= (sslength SS) 1)
    	(prompt (acet-str-format "\nOne object changed to layer %1" LAY ))
    	(prompt (acet-str-format "\n%1 objects changed to layer %2" (itoa (sslength SS)) LAY ))
      )
      (if (= LAY (getvar "clayer"))
    	(prompt " (the current layer).")
    	(prompt ".")
      )
    )
     )
    
     (acet-error-restore)
    
     (princ)
    )
    ;;==============================================================================
    =========================
    ; --------------- CHANGE TO CURRENT LAYER FUNCTION ---------------
    (Defun C:LAYCUR (/ SS CNT LAY)
    
     (acet-error-init
    (list
      (list "cmdecho" 0)
      T	;flag. True means use undo for error clean up.
    );list
     );acet-error-init
    
    
     (if (not (setq SS (ssget "_i")))
    (progn
      (prompt "\nSelect objects to be changed to the current layer: ")
      (setq SS (ssget))
    )
     )
    
     (if SS
    (progn
      (setq CNT (sslength SS))
      (princ (acet-str-format "\n%1 found."  (itoa CNT) ))	  ; Report number of items found
    
      (command "_.move" SS "")						; filter out objects on locked layers
    
      (if (> (getvar "cmdactive") 0)				  ; if there are still objects left
    	(progn
    	  (command "0,0" "0,0")
    	  (setq SS  (ssget "_p")
    			CNT (- CNT (sslength SS))			 ; count them
    	  )
    	)
    	(setq SS nil)								 ; else abort operation
      )
    
      (if (> CNT 0)								   ; if items where filtered out
    	(if (= CNT 1)
    	  (princ (acet-str-format "\n%1 was on a locked layer."  (itoa CNT) ))  ; report it.
    	  (princ (acet-str-format "\n%1 were on a locked layer."  (itoa CNT) ))
    	)
      )
    )
     )
    
     (if SS
    (progn
      (setq LAY (getvar "CLAYER"))
    
      (command "_.chprop" SS "" "_la" LAY "")
    
      (if (= (sslength SS) 1)
    	(prompt (acet-str-format "\nOne object changed to layer %1 (the current layer)."  LAY ))
    	(prompt (acet-str-format "\n%1 objects changed to layer %2 (the current layer)." (itoa (sslength SS)) LAY))
      )
    )
     )
    
     (acet-error-restore)
    
     (princ)
    )
    (princ)
    ;;==============================================================================
    =========================

    • Vote tăng 1

  11. cho mình hỏi có lisp nào mà quay góc nghieng 30do, 45 do, 60do cho nhanh khong nhi. vì mình hay phải vẽ dạng hình chieu truc do nen neu dung lệnh ro roi 30,60,90 rat lau, giò muốn dùng lệnh luôn như là r1,r2,r3 để quay luôn đối tượng?

    Tham khảo coi, *chưa kịp gõ tiếng việt mà nó cứ đòi gõ*

    (defun c:R90  ()(command "ROTATE" pause "" "@" "90")(princ))
    (defun c:R30  ()(command "rotate" pause "" "@" "30")(princ))
    (defun c:r45  ()(command "rotate" pause "" "@" "45")(princ))
    (defun c:r15  ()(command "rotate" pause "" "@" "15")(princ))
    (defun c:r60  ()(command "rotate" pause "" "@" "60")(princ))
    (defun c:r-90 ()(command "rotate" pause "" "@" "-90")(princ))
    (defun c:r180 ()(command "rotate" pause "" "@" "180")(princ))
    (defun c:r-180 ()(command "rotate" pause "" "@" "-180")(princ))
    (defun c:r-60 ()(command "rotate" pause "" "@" "-60")(princ))
    (defun c:r-45 ()(command "rotate" pause "" "@" "-45")(princ))
    (defun c:r-15 ()(command "rotate" pause "" "@" "-15")(princ))
    (defun c:r-30 ()(command "rotate" pause "" "@" "-30")(princ))

    http://www.cadviet.com/upfiles/2/ro.lsp


  12. Danh sách Offline - Miền Nam (TPHCM):

    1. PhamthanhBinh

    2. SONCAD (0918 144003)

    3. Vanduong ( 0937 025526)

    4. Happyfeet

    5. Leolas

    6. Vbao

    7. Nemo2004

    8. Cadviet244

    9. Hiepquang

    10. Miennui_tomo3d

    11. hai.mthanh ( Bạn Miennui_tomo3d )

    12. THE HIEP

    13. kisimaquai2001

    14.Tuan_thietkedien

    15. thangnhoc8888 (0909155199)

    16 Uct_0978333594

    17. Tdh3d

    18. PhiPhionline (01.999.01.11.21)

    19. chuminhthu1981

    20. manhhungxda (0912898989)

    21. manhhungxdb (0912898989)

     

    ........

    Tiếp tục các Bác ơi ới ời ơi......... ơi.:cheers:

    Cho em xin 1 ghế nha các pác

    • Vote tăng 3

  13. Danh sách Offline - Miền Nam (TPHCM):

    1. PhamthanhBinh

    2. SONCAD (0918 144003)

    3. Vanduong ( 0937 025526)

    4. Happyfeet

    5. Leolas

    6. Vbao

    7. Nemo2004

    8. Cadviet244

    9. Hiepquang

    10. Miennui_tomo3d

    11. hai.mthanh ( Bạn Miennui_tomo3d )

    12. THE HIEP

    13. kisimaquai2001

    14.Tuan_thietkedien

    15. thangnhoc8888 (0909155199)

    16 Uct_0978333594

    17. Tdh3d

    18. PhiPhionline (01.999.01.11.21)

    19. chuminhthu1981

    20. manhhungxda (0912898989)

    ........

    Tiếp tục các Bác ơi ới ời ơi......... ơi.:cheers:

    Cho em xin 1 ghế nha các pác

    • Vote tăng 1

  14. chào các bạn!mình đọc thấy mục autolisp nay hay quá, nhưng mình hoàn toàn chưa biết gì nhiều, chỉ nghe nói thôi.

    Các câu lệnh hoàn toàn chưa biết, vậy có bạn nào giải thích sơ sơ về nó được không.

    Mình hay vẽ khung nhà tiền chế mình muốn tạo lisp về các khung sẵn. Chỉ cần nhập kích thước độ dốc, cao cột, chiều ngang khung, xà gồ mái, tiết diện cột kèo, tôn mái... là có thể tự chạy ra 1 khung nhà có được không?

    chúc cadviet luon bổ ích cho dân cad nhé

    ơ, cái này em đã đưa lên diễn dàn rồi mà

    Không nhớ ở chỗ nào nữa

    các bác tìm coi!

×