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

Sây đt

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

    7
  • Đã tham gia

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

Bài đăng được đăng bởi Sây đt


  1. Vào lúc 16/6/2013 tại 15:20, Doan Van Ha đã nói:

    Srr, tôi viết gấp quá nên bị nhầm tí. Sửa lại đây!

     

    
    
     
    ;Doan Van Ha - CADViet.com - Ngay 16/6/2013
    ;Chuc nang: Move tung nhom doi tuong den 1 Lien.
    (defun C:HA( / kieu typ lay ent ss p1 p2 pt z osm cmd)
     (command "undo" "be") (setq osm (getvar "osmode") cmd (getvar "cmdecho"))
     (initget "P TT TD 3")
     (setq kieu (getkword "\nKieu doi tuong can Move [point la P/text tren la TT/ text duoi la TD/tat ca la 3]: "))
     (cond
      ((= kieu "P") (setq typ "Point" lay "diem"))
      ((= kieu "TT") (setq typ "Text" lay "Tendiem"))
      ((= kieu "TD") (setq typ "Text" lay "Docao"))
      ((= kieu "3") (setq typ "Point,Text" lay "diem,Tendiem,Docao")))
     (if
      (and
       (setq ent (car (entsel "\nChon Line: ")))
       (princ "\nChon cac doi tuong can Move...")
       (setq ss (ssget (list (cons 0 typ) (cons 8 lay)))))
      (progn 
       (setvar "osmode" 0) (setvar "cmdecho" 0)
       (setq p1 (cdr (assoc 10 (entget ent))))
       (setq p2 (cdr (assoc 11 (entget ent))))
       (setq z -1)
       (repeat (sslength ss)
        (setq pt (cdr (assoc 10 (entget (ssname ss (setq z (1+ z)))))))
        (command "move" (ssname ss z) "" pt (FindPerpPoint p1 p2 pt)))))
     (setvar "osmode" osm) (setvar "cmdecho" cmd) (command "undo" "e") (princ))
    (defun FindPerpPoint (p1 p2 q / x1 x2 x3 y1 y2 y3 z1 z2 z3 T4)
     (setq x1 (car p1) x2 (car p2) x3 (car q)
           y1 (cadr p1) y2 (cadr p2) y3 (cadr q)
           z1 (caddr p1) z2 (caddr p2) z3 (caddr q)
           T4 (/ (+ (* (- x2 x1) (- x3 x1)) (* (- y2 y1) (- y3 y1)) (* (- z2 z1) (- z3 z1)))
                 (+ (* (- x2 x1) (- x2 x1)) (* (- y2 y1) (- y2 y1)) (* (- z2 z1) (- z2 z1)))))
     (list (+ x1 (* T4 (- x2 x1))) (+ y1 (* T4 (- y2 y1))) (+ z1 (* T4 (- z2 z1)))))

     

    Bác Hà có thể sửa lisp này có thể Move đối tượng là block được không ạ, cảm ơn bác nhiều


  2. Chào các bác, em đang bóc khối lượng xà gồ của nhà thép tiền chế, hiện tại em có lisp cad "ha" để thống kê chiều  dài các đường Line, giờ em muốn chuyển từ Rectang sang đường Line theo trục X hoặc Y để tiện thống kê và được nhanh gọn, các bác giúp em với ạ, em diễn giải không tốt lắm nên em đính kèm hình. Mong các bác giúp em, em xin chân thành cảm ơn !!!

    Capture.PNG

×