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

loopback127xyz

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

    16
  • Đã tham gia

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

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


  1. Đào mộ ! Tớ mới vừa bị lỗi này ! Tưởng là một số biến nào đó của cad làm ra lỗi này nhưng sau 1 hồi tìm kiếm trên các trang nước ngoài mới biết rằng cad có nhiều lệnh lạ quá mà mình chưa từng đụng tới ! Lỗi này được giải quyết rất đơn giản

    gõ lệnh : plan --> W --> enter là xong !

    • Like 1

  2. Vào lúc 22/7/2012 tại 10:12, damvinhduy đã nói:

    Bạn dùng thử lisp này. Lệnh là TM dùng được cho Text lẩn MText. Have fun!

     

    
    ;;;============================[ TM.lsp ]=============================;;;
    ;; Cong dung: ALign Text Middle =====================================;;;
    ;; Version: 1.0 =====================================================;;;
    ;; Create by damvinhduy =============================================;;;
    (defun C:TM (/ Txt PTxt PTX SS n OSMLAST lstpoint1 lstpoint2 pc pt pp)
    (vl-load-com)
    (setq SS (ssget "I" '((0 . "*TEXT"))))
    (command ".undo" "BE")
     (if (not SS)
     (progn
      (prompt "- Select text object")
      (setq SS (ssget '((0 . "*TEXT"))))
      );progn
    );if
    (setq OSMLAST (getvar "osmode"))
    (setvar "OSMODE" 0)
    (setq n 0)
    (repeat (sslength SS)
     (setq txt (ssname SS n))
     (if (= (DXF 0 txt) "TEXT")
      (progn
    (setq PTxt (GET_MIDTEXT txt))
    (setq lstpoint1 (lstpoint (UOject txt)))
    (setq lstpoint2 (lstpoint (AOject txt)))
    (setq pt (pmin lstpoint1))
    (setq pp (pmax lstpoint2))
    (setq PTX (CV:Geom-Midpoint pt pp))
    (setq Pc (list (car PTxt) (cadr PTX) 0.0))
    (vl-cmdf "move" txt "" PTxt Pc)
      )
      (progn
    (TM txt)
    (setq PTxt (DXF 10 txt))
    (setq lstpoint1 (lstpoint (UOject txt)))
    (setq lstpoint2 (lstpoint (AOject txt)))
    (setq pt (pmin lstpoint1))
    (setq pp (pmax lstpoint2))
    (setq PTX (CV:Geom-Midpoint pt pp))
    (setq Pc (list (car PTxt) (cadr PTX) 0.0))
    (entmod (subst (cons 10 Pc) (cons 10 PTxt) (entget txt)))
      )
     )
     (setq n (1+ n))
    );repeat
    (command ".undo" "E")
    (princ "\n***Copyright © 2012 damvinhduy***")
    (setvar "osmode" OSMLAST)
    (princ)
    );end TC
    ;;---------------------------------------------------------------------
    (defun GET_MIDTEXT (EN / TB PTxt PT0 PTA)
     (setq TB (textbox (entget EN))
     PTxt (CV:Geom-Midpoint (car TB) (cadr TB))
     PT0 (DXF 10 EN)
     PTA (list (+ (car PT0) (car PTxt)) (+ (cadr PT0) (cadr PTxt))))
     (polar PT0 (+ (DXF 50 EN) (angle PT0 PTA)) (distance PT0 PTA))
    );end
    ;;---------------------------------------------------------------------
    (defun DXF (Id Obj)
    (cdr (assoc Id (entget Obj)))
    )
    ;;;---------------------------------------------------------------------
    (defun TM (txt / p pl hor at atnew)
    (setq ver (cdr (assoc 43 (entget txt))))
    (setq at (cdr (assoc 71 (entget txt))))
    (setq P (cdr (assoc 10 (entget txt))))
    (if
     (and (/= at 4) (/= at 5) (/= at 6))
     (progn
      (cond
    ((or (= at 1) (= at 2) (= at 3))
    (setq p1 (polar p (* 1.5 pi) (* ver 0.5)))
    )
    ((or (= at 7) (= at 8) (= at 9))
    (setq p1 (polar p (* 0.5 pi) (* ver 0.5)))
    )
      )
      (cond
    ((or (= at 1) (= at 7))
    (setq atnew 4)
    )
    ((or (= at 2) (= at 8))
    (setq atnew 5)
    )
    ((or (= at 3) (= at 9))
    (setq atnew 6)
    )
      )
      (entmod (subst (cons 10 p1) (cons 10 p) (entget txt)))
      (entmod (subst (cons 71 atnew) (cons 71 at) (entget txt)))
      (setq txt txt)
     )
     (setq txt txt)
    )
    )
    ;;;---------------------------------------------------------------------
    (defun AOject (txt / h l p0 p1 ss1 LOj)
    (setq h (DXF 40 txt))
    (setq l (* 70 h))
    (setq p0 (DXF 10 txt))
    (setq p1 (polar p0 (* 0.5 pi) l))
    (setq ss1 (ssget "F" (list p0 p1) (list (cons 0 "*LINE"))))
    (setq AOj (ssname ss1 0))
    AOj
    )
    ;;;---------------------------------------------------------------------
    (defun UOject (txt / h l p0 p2 ss2 ROj)
    (setq h (DXF 40 txt))
    (setq l (* 70 h))
    (setq p0 (DXF 10 txt))
    (setq p2 (polar p0 (* 1.5 pi) l))
    (setq ss2 (ssget "F" (list p0 p2) (list (cons 0 "*LINE"))))
    (setq UOj (ssname ss2 0))
    UOj
    )
    ;;;---------------------------------------------------------------------
    (defun lstpoint (eline)
    (cond
     (
      (wcmatch (cdr (assoc 0 (entget eline))) "LINE")
      (append (list (vlax-curve-getStartPoint eline) (vlax-curve-getEndPoint eline)))
     )
     (
      (wcmatch (cdr (assoc 0 (entget eline))) "LWPOLYLINE")
      (getvert-en eline)
     )
    )
    )
    ;;;---------------------------------------------------------------------
    (defun pmin (lstpoint)
    (apply 'mapcar (cons 'min lstpoint))
    )
    ;;;---------------------------------------------------------------------
    (defun pmax (lstpoint)
    (apply 'mapcar (cons 'max lstpoint))
    )
    ;;;---------------------------------------------------------------------
    (defun getvert-en (en / i L)
    (setq i -1 L nil)
    (repeat (fix (1+ (vlax-curve-getEndParam en)))
     (setq i (1+ i) L (append L (list (vlax-curve-getPointAtParam en i))))
    )
    )
    ;;;---------------------------------------------------------------------
    (defun CV:Geom-Midpoint (p1 p2)(mapcar '(lambda (x y) (* (+ x y) 0.5)) p1 p2))
    
    
     

     

    Lisp này canh giữa theo trục Y, Huynh nào chỉnh dùm mình theo truc X được không ?  Cám ơn nhiều !


  3. Vào lúc 18/4/2018 tại 11:18, Danh Cong đã nói:

    + Không hiểu câu "Sử dụng cả hai mỗi lần in không cần chọn lại máy in" là như thế nào.

    Tuy nhiên việc đổi dòng lệnh là không thể. Do file lisp là file .VLX đã bị mã hóa do người lập, chỉ người nào viết mới có code ! ---> Cam chịu thôi !

    Theo mình thì có thể đổi tên gọi lệnh được đó, hình như cũng có nhiều người hỏi về việc đổi tên lệnh trong các file .VLX, .FAS ... 

    mẹo nhỏ mình đã làm như sau : load các files .vlx, .fas như lệnh default của Cad (khi cad khởi động thì nó sẽ tự động load các files này luôn --> làm như thế nào thì tự tìm hiểu thêm nhé --> gợi ý : file acad*doc.lsp)

    sau đó vào file acad.agp đặt tên lệnh mới là tên lệnh file .vlx, .fax ( tenmoi,   *tên .vlx)


  4. Cài driver mới nhất cho mainboad, đăc biệt là driver card màn hình Nvidia, tháo thanh RAM 4G ra  chạy thử rồi sẽ gắn lại sau (RAM mua nên chọn cùng số GB cùng bus). Nếu có thể test lại HDD(ổ cứng). không phải mới là ko bị lỗi đâu nha.

    Dựng hình & render nên chọn CPU Xeon, VGA nên chọn bus từ 256bit trở lên.

    CAD bị giật thì tìm cách khắc phục có trong forum mình ở đâu tui quên rồi, 3DMax thì ... ko biết ... hehehe

     

    Vài hàng cùng bạn. thử những cái mình nói ở trên đi ! Bác nào cao kiến hơn thì xin comment dùm


  5. Xin chào các LispMan !

     

    Mình lang thang trên net thấy họ ghi kích thước làm bằng lisp hay quá không biết các bác có thể viết đươc như vầy không :

     

    http://lanloylisp.blogspot.com/2012/12/automatic-dimensioning.html

     

    18430_untitled.gif

     

    Nếu bác nào rảnh xin viết dùm lisp này để cộng đồng cadviet có thể được hưởng lợi ích từ nó. 

     

    Viết trong bao lâu cũng được vì thời gian của các bác là quí báu nên mình rất trân trọng những đóng góp vô vụ lợi của các bác lập trình AUTOLISP.

     

    xin cảm ơn.


  6. Nhờ các Anh, Em viết dùm lisp chuyển tọa độ góc ranh từ file excel sang autocad.

     

    Mình thường tìm thửa đất trong bản đồ bằng thủ công rất vất vã, mắt lại kém (viễn thị rồi) mà cái bản tọa độ số nhỏ quá.

     Mình dùng lệnh LINE để tìm thửa đất bằng thủ công như sau:

    ví dụ : 

    L 

    click chọn đại 1 điểm rồi gõ 1, ↵ nhập tọa độ y trước, x sau ( 598838.222,1200196.772) 

                                                   2, ↵ 598837.316,1200196.424 

                                                  3, ↵  598831.114,2300295.042 

                                                   4, ↵ ........

                                                 ...................................................

     

    Mình nhờ các bác viết dùm mình lisp tên : TDTD.lsp (lệnh gọi : tdtdat) làm công việc bằng tay trên thành lisp khi chay lisp xong nó sẽ xác định được khu đất mình cần tìm bằng đường polyline màu gì cũng được (khác màu trắng để biết được khu đất mình đang tìm).

     

    Mình có scan tò chủ quyền phần tọa độ góc ranh(file hình), file excel, và bản đồ số đính kèm (trên bản đồ mình đã lấy tọa độ bằng pp thủ công rồi). Link:

    http://www.cadviet.com/upfiles/5/18430_toadogocranh.rar

     

    Thanks you các bác nhiều. Kiến thức hạn hẹp xin anh em giúp đỡ. Chân thành cám ơn

     

     

×