Đến nội dung


Hình ảnh

Help ghi cao độ trong bản vẽ


  • Please log in to reply
2 replies to this topic

#1 mrphamnha

mrphamnha

    biết pan

  • Members
  • Pip
  • 7 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 05 March 2013 - 10:32 AM

Chào cả nhà, em có một lisp như sau và có một block cao độ rồi, ban đầu em có cao độ là +10 em vẽ lên 10m thì em coppy cái block cao độ dưới lên trên nó không thể hiện được là +20, mọi người giúp em với ạ

 

;;Ham con - Chuyen gia tri cao do Y tu so thuc sang dang chuoi co quy cach cua cao do
(defun ZeroSuppression (Y / pos v)
  (setq Y (/ Y 1000));;Neu ban ve quy uoc 1m=1units thi bo dong lenh nay
 
  (setq Y (rtos Y 2 8))
 
  ;; Tim vi tri dau thap phan
  (setq pos 1)
  (while (and
       (<= pos (strlen Y))
       (/= (substr Y pos 1) ".")
     )
         (setq pos (+ pos 1))
  )  
  ;; Neu chua co dau thap phan thi them dau thap phan
  (if (> pos (strlen Y)) (setq Y (strcat Y ".")))
  ;; Viet them cac so "0" vao sau Y cho du 8 so sau dau thap phan
  (setq pos (+ pos 8))
  (while (< (strlen Y) pos)
         (setq Y (strcat Y "0")))
  ;; Bo cac so 0 vo nghia sau Y
  (setq v 1)
  (while (and
       (<= v 6)
       (= (substr Y (strlen Y) 1) "0")
     )
         (setq Y (substr Y 1 (- (strlen Y) 1)) v (+ v 1))
  )  
 
  (setq Y Y)
);of defun
 
;;Ham con - Cap nhat doi tuong co ma doi tuong la EN1 =====
 
(defun CDupdate (EN1 / EN2 ENT1 ENT2)
  (setq ENT1 (entget EN1))
  (If (= "ac" (cdr (assoc 2 ENT1)))
    (progn
      (setq EN2 (entnext EN1))
      (setq ENT2 (entget EN2))
      
      (setq X0  (cadr  (assoc 10 ENT1)))
      (setq Y0  (caddr (assoc 10 ENT1)))
 
      (setq sc  (cdr  (assoc 41 ENT1)))
      (setq ang (cdr  (assoc 50 ENT1)))
      (setq dX (abs (* 10 sc)))
      (setq dY (abs (* 5 sc)))
 
      (cond
    ((and (> sc 0) (= ang 0))
        (setq X (+ X0 dX) Y (+ Y0 dY) hor_jus 2 ver_jus 0)) ; jus="right"
 
        ((and (> sc 0) (= ang pi))
    (setq X (- X0 dX) Y (- Y0 dY) hor_jus 0 ver_jus 3)) ; jus="left"
 
        ((and (< sc 0) (= ang 0))
    (setq X (- X0 dX) Y (+ Y0 dY) hor_jus 0 ver_jus 0)); jus="left"
 
        ((and (< sc 0) (= ang pi))
    (setq X (+ X0 dX) Y (- Y0 dY) hor_jus 2 ver_jus 3)); jus="right"
      )
      
      (if (and (= 0 hor_jus) (= 0 ver_jus))
    (setq new_point (list 10 X Y 0))
    (setq new_point (list 11 X Y 0)))
      (setq new_hor_jus (cons 72 hor_jus))
      (setq new_ver_jus (cons 74 ver_jus))
      (setq new_cote (cons 1 (ZeroSuppression Y0)))
                
      (if (and (= 0 hor_jus) (= 0 ver_jus))
        (setq old_point (assoc 10 ENT2))
    (setq old_point (assoc 11 ENT2)))
      (setq old_hor_jus (assoc 72 ENT2))
      (setq old_ver_jus (assoc 74 ENT2))
      (setq old_cote (assoc 1 ENT2))
      
      (setq ENT2 (subst new_point old_point ENT2))
      (setq ENT2 (subst new_hor_jus old_hor_jus ENT2))
      (setq ENT2 (subst new_ver_jus old_ver_jus ENT2))
      (setq ENT2 (subst new_cote old_cote ENT2))
    
      (entmod ENT2)
      (entupd EN2)
    ); progn
    
   ); of if
); of defun
 
;;Ham con - Cap nhat cac doi tuong trong tap doi tuong SS ==
(defun CDupdates(SS / quant i)
  (setq quant (sslength SS))
  (setq i 0)
  (while (< i quant)
    (progn
      (CDupdate (ssname SS i))
      (setq i (1+ i))
    )
  )
)  
 
;;Copy cac block cao do ====================================
(defun C:ccd(/ SS EN)
  (setq EN (entlast))
  (setq SS (ssget))
  (command ".copy" "p" "" pause pause)
  (while (/= nil (entnext EN))
    (progn
      (setq EN (entnext EN))
      (CDupdate EN)
    )
  )  
)
 
;;Dich chuyen cac block cao do =============================
(defun C:mcd(/ SS)
  (setq SS (ssget))
  (command ".move" "p" "" pause pause)
  (CDupdates SS)
)
 
;;Cap nhat cac block cao do ================================
(defun C:ucd(/ SS)
  (setq SS (ssget))
  (CDupdates SS)
)
 
;; END

  • 0

#2 mrphamnha

mrphamnha

    biết pan

  • Members
  • Pip
  • 7 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 06 March 2013 - 10:49 AM

Bác nào giúp e với


  • 0

#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 06 March 2013 - 03:29 PM

Bác nào giúp e với

Hề hề hề,

Chửa biết giúp bạn thế nào khi bạn không gửi cái bản vẻ của bạn lên để kiểm tra và đối chiếu những yêu cầu của bạn. Đành ngồi chờ vậy.


  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.