Đến nội dung


Hình ảnh

Cộng cốt cao độ thêm 1 khoảng?


  • Please log in to reply
12 replies to this topic

#1 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 05 January 2009 - 10:46 PM

Đang sử dụng acv. Để dồn kt bản vẽ.
Và mình nghĩ là nó có thể áp dụng đc cho cốt cao độ
Nhưng làm hoài không đc.
Anh em có cách nào hoạc có lish nào tương tự giúp mình với.
VD
muốn tăng cốt cao độ thêm +300. vào các cốt cao độ hiện có.
Thks everybody
  • 0

#2 quocanhxd05

quocanhxd05

    biết vẽ ellipse

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

Đã gửi 06 January 2009 - 11:14 AM

Đang sử dụng acv. Để dồn kt bản vẽ.
Và mình nghĩ là nó có thể áp dụng đc cho cốt cao độ
Nhưng làm hoài không đc.
Anh em có cách nào hoạc có lish nào tương tự giúp mình với.
VD
muốn tăng cốt cao độ thêm +300. vào các cốt cao độ hiện có.
Thks everybody

mình có file lisp này. có thể sẽ giúp bạn được.Bởi vì còn tùy thuộc text của bạn ntn.
http://www.cadviet.c...h_text_MATH.zip
Muốn chắc ăn thì bạn up file lên đi mình xem cho.
Cách sử dụng như sau:
Bạn đánh lệnh MATH enter
rồi nhập tiếp +300 enter (nhớ đánh thêm dấu cộng)
sau đó chọn các text rồi enter thế là xong.
  • 0
-------------------- Sống ở trên đời cần một chữ NHẪN --------------------

#3 traitimbuiduong

traitimbuiduong

    Chưa sử dụng CAD

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

Đã gửi 07 January 2009 - 10:12 AM

giải nén file rar nó đòi pass.Pass là j hả bạn
  • 0

#4 quocanhxd05

quocanhxd05

    biết vẽ ellipse

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

Đã gửi 07 January 2009 - 01:18 PM

giải nén file rar nó đòi pass.Pass là j hả bạn

tất cả các file nén trên diễn đàn theo quy định đều có pass là www.cadviet.com
  • 0
-------------------- Sống ở trên đời cần một chữ NHẪN --------------------

#5 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 07 January 2009 - 07:02 PM

Không làm đc điều đó với Block đâu Pro ạh...Thôi thanks
  • 0

#6 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 07 January 2009 - 07:28 PM

Không làm đc điều đó với Block đâu Pro ạh...Thôi thanks

Làm được chứ ^_^ . Nhưng mà phải cho biết Block cao độ là như thế nào (bởi vì block đó đâu phải chỉ là text không). Anh Phong up block đó lên thì mới bít mà viết lisp chứ (rưng mà nếu lisp viết ra chỉ có tác dụng đối với loại block đó thôi)
  • 0

#7 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 07 January 2009 - 07:41 PM

Làm được chứ ^_^ . Nhưng mà phải cho biết Block cao độ là như thế nào (bởi vì block đó đâu phải chỉ là text không). Anh Phong up block đó lên thì mới bít mà viết lisp chứ (rưng mà nếu lisp viết ra chỉ có tác dụng đối với loại block đó thôi)


Mình sử dụng Block thuộc tính. Gồm 1 att và 1 ký hiệu cốt.
Nataca xem ở đây xem có giúp đc ko
http://www.cadviet.c...Drawing1_26.dwg
  • 0

#8 Nộ Thiên

Nộ Thiên

    biết lệnh ddedit

  • Members
  • PipPipPipPip
  • 297 Bài viết
Điểm đánh giá: 133 (tàm tạm)

Đã gửi 07 January 2009 - 09:29 PM

Mình sử dụng Block thuộc tính. Gồm 1 att và 1 ký hiệu cốt.
Nataca xem ở đây xem có giúp đc ko
http://www.cadviet.c...Drawing1_26.dwg

Lúc trước có post cho MHXDA đoạn code này, dùng để tính toán 1 vài phép tính đơn giản cho Block-ATT.
Post ở đâu thì quên mất, nay post lại.
Bạn phải chỉnh chút xiú code để có thể dùng cho yêu cầu của mình.
Chú ý phần tên của Block-ATT (màu đỏ) và các đoạn code liên quan đến text

(defun c:tinh2 ()
(setvar "cmdecho" 0)
(setq om (getvar "osmode"))
(prompt "\nSelect Object:")
(setvar "osmode" 0)
(setq ssObj (ssget '((0 . "INSERT") (2 . "point")) ))
(initget "N T B H")
(setq kw1 (getkword "\nTinh gia tri [Nhan,Tong,trung Binh,<Hieu chinh>]?<N/T/B/H>:"))
(if (= kw1 nil) (setq kw1 "H"))
(setq kw1 (strcase kw1))
(cond ((= kw1 "N") (progn
(setq i 0)
(setq kq 1)
(while (setq madt (ssname ssObj i))
(setq kq (* (atof (cdr (assoc 1 (entget (entnext madt))))) kq))
(setq i (1+ i))
)
(prompt (strcat "\nTich cua cac so la:" (rtos kq 2 2)))
(setq p0 (getpoint "\nSelect a Point or Text:"))
(if (ssget p0)
(if (= (cdr (assoc 0 (entget (car (nentselp p0))))) "TEXT")
(progn (setq dtchon (nentselp p0))
(setq madtchon (car dtchon))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
)
)
(command ".text" "st" "2mm" "j" "mc" p0 0 (rtos kq 2 2))
)
))

((= kw1 "T") (progn
(setq i 0)
(setq kq 0)
(while (setq madt (ssname ssObj i))
(setq kq (+ (atof (cdr (assoc 1 (entget (entnext madt))))) kq))
(setq i (1+ i))
)
(prompt (strcat "\nTong cua cac so la:" (rtos kq 2 2)))
(setq p0 (getpoint "\nSelect a Point or Text:"))
(if (ssget p0)
(if (= (cdr (assoc 0 (entget (car (nentselp p0))))) "TEXT")
(progn (setq dtchon (nentselp p0))
(setq madtchon (car dtchon))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
))
(command ".text" "st" "2mm" "j" "mc" p0 0 (rtos kq 2 2))
)
))
((= kw1 "B") (progn
(setq i 0)
(setq kq 0)
(while (setq madt (ssname ssObj i))
(setq kq (+ (atof (cdr (assoc 1 (entget (entnext madt))))) kq))
(setq i (1+ i))
)
(setq kq (/ kq (sslength ssObj)))
(prompt (strcat "\nTrung binh cua cac so la:" (rtos kq 2 2)))
(setq p0 (getpoint "\nSelect a Point or Text:"))
(if (ssget p0)
(if (= (cdr (assoc 0 (entget (car (nentselp p0))))) "TEXT")
(progn (setq dtchon (nentselp p0))
(setq madtchon (car dtchon))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
))
(command ".text" "st" "2mm" "j" "mc" p0 0 (rtos kq 2 2))
)
))
((= kw1 "H") (progn
(initget "C N I")
(setq kw2 (getkword "\nChon [<Cong>,Nhan,Chia] voi 1 so ?<C/N/I>:"))
(if (= kw2 nil) (setq kw2 "C"))
(setq kw2 (strcase kw2))
(cond
((= kw2 "C") (progn
(setq so (getreal "\nNhap gia tri can cong (hoac tru) :"))
(setq i 0)
(while (setq madt (ssname ssObj i))
(setq madtchon (entnext madt))
(setq kq (+ (atof (cdr (assoc 1 (entget madtchon)))) so))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
(setq i (1+ i))
)
(prompt (strcat "\nDa cap nhat " (itoa i) " doi tuong."))
))
((= kw2 "N") (progn
(setq so (getreal "\nNhap gia tri can nhan them:"))
(setq i 0)
(while (setq madt (ssname ssObj i))
(setq madtchon (entnext madt))
(setq kq (* (atof (cdr (assoc 1 (entget madtchon)))) so))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
(setq i (1+ i))
)
(prompt (strcat "\nDa cap nhat " (itoa i) " doi tuong."))
))
((= kw2 "I") (progn
(setq so (getreal "\nNhap gia tri can chia bot:"))
(setq i 0)
(while (setq madt (ssname ssObj i))
(setq madtchon (entnext madt))
(setq kq (/ (atof (cdr (assoc 1 (entget madtchon)))) so))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
(setq i (1+ i))
)
(prompt (strcat "\nDa cap nhat " (itoa i) " doi tuong."))
))
)

))

)
(setvar "osmode" om)
(setvar "cmdecho" 1)
(princ)
)

  • 0

#9 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 08 January 2009 - 12:25 AM

Không hiểu sao mãi mà không up file lên diễn đàn được. Đành qua dùng trang upload free vậy. Bác dùng thử cái này xem đã đạt yêu cầu của bác chưa nhé . Lệnh là CCD ( change cao độ ) .http://www.mediafire.com/?ikzr0cmzzmm
  • 0

#10 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 08 January 2009 - 10:51 PM

Lúc trước có post cho MHXDA đoạn code này, dùng để tính toán 1 vài phép tính đơn giản cho Block-ATT.
Post ở đâu thì quên mất, nay post lại.
Bạn phải chỉnh chút xiú code để có thể dùng cho yêu cầu của mình.
Chú ý phần tên của Block-ATT (màu đỏ) và các đoạn code liên quan đến text

(defun c:tinh2 ()
(setvar "cmdecho" 0)
(setq om (getvar "osmode"))
(prompt "\nSelect Object:")
(setvar "osmode" 0)
(setq ssObj (ssget '((0 . "INSERT") (2 . "point")) ))
(initget "N T B H")
(setq kw1 (getkword "\nTinh gia tri [Nhan,Tong,trung Binh,<Hieu chinh>]?<N/T/B/H>:"))
(if (= kw1 nil) (setq kw1 "H"))
(setq kw1 (strcase kw1))
(cond ((= kw1 "N") (progn
(setq i 0)
(setq kq 1)
(while (setq madt (ssname ssObj i))
(setq kq (* (atof (cdr (assoc 1 (entget (entnext madt))))) kq))
(setq i (1+ i))
)
(prompt (strcat "\nTich cua cac so la:" (rtos kq 2 2)))
(setq p0 (getpoint "\nSelect a Point or Text:"))
(if (ssget p0)
(if (= (cdr (assoc 0 (entget (car (nentselp p0))))) "TEXT")
(progn (setq dtchon (nentselp p0))
(setq madtchon (car dtchon))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
)
)
(command ".text" "st" "2mm" "j" "mc" p0 0 (rtos kq 2 2))
)
))

((= kw1 "T") (progn
(setq i 0)
(setq kq 0)
(while (setq madt (ssname ssObj i))
(setq kq (+ (atof (cdr (assoc 1 (entget (entnext madt))))) kq))
(setq i (1+ i))
)
(prompt (strcat "\nTong cua cac so la:" (rtos kq 2 2)))
(setq p0 (getpoint "\nSelect a Point or Text:"))
(if (ssget p0)
(if (= (cdr (assoc 0 (entget (car (nentselp p0))))) "TEXT")
(progn (setq dtchon (nentselp p0))
(setq madtchon (car dtchon))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
))
(command ".text" "st" "2mm" "j" "mc" p0 0 (rtos kq 2 2))
)
))
((= kw1 "B") (progn
(setq i 0)
(setq kq 0)
(while (setq madt (ssname ssObj i))
(setq kq (+ (atof (cdr (assoc 1 (entget (entnext madt))))) kq))
(setq i (1+ i))
)
(setq kq (/ kq (sslength ssObj)))
(prompt (strcat "\nTrung binh cua cac so la:" (rtos kq 2 2)))
(setq p0 (getpoint "\nSelect a Point or Text:"))
(if (ssget p0)
(if (= (cdr (assoc 0 (entget (car (nentselp p0))))) "TEXT")
(progn (setq dtchon (nentselp p0))
(setq madtchon (car dtchon))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
))
(command ".text" "st" "2mm" "j" "mc" p0 0 (rtos kq 2 2))
)
))
((= kw1 "H") (progn
(initget "C N I")
(setq kw2 (getkword "\nChon [<Cong>,Nhan,Chia] voi 1 so ?<C/N/I>:"))
(if (= kw2 nil) (setq kw2 "C"))
(setq kw2 (strcase kw2))
(cond
((= kw2 "C") (progn
(setq so (getreal "\nNhap gia tri can cong (hoac tru) :"))
(setq i 0)
(while (setq madt (ssname ssObj i))
(setq madtchon (entnext madt))
(setq kq (+ (atof (cdr (assoc 1 (entget madtchon)))) so))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
(setq i (1+ i))
)
(prompt (strcat "\nDa cap nhat " (itoa i) " doi tuong."))
))
((= kw2 "N") (progn
(setq so (getreal "\nNhap gia tri can nhan them:"))
(setq i 0)
(while (setq madt (ssname ssObj i))
(setq madtchon (entnext madt))
(setq kq (* (atof (cdr (assoc 1 (entget madtchon)))) so))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
(setq i (1+ i))
)
(prompt (strcat "\nDa cap nhat " (itoa i) " doi tuong."))
))
((= kw2 "I") (progn
(setq so (getreal "\nNhap gia tri can chia bot:"))
(setq i 0)
(while (setq madt (ssname ssObj i))
(setq madtchon (entnext madt))
(setq kq (/ (atof (cdr (assoc 1 (entget madtchon)))) so))
(setq dsdtchon (entget madtchon))
(setq dsdtchon (subst (cons '1 (rtos kq 2 2)) (assoc 1 dsdtchon) dsdtchon))
(entmod dsdtchon)
(entupd madtchon)
(setq i (1+ i))
)
(prompt (strcat "\nDa cap nhat " (itoa i) " doi tuong."))
))
)

))

)
(setvar "osmode" om)
(setvar "cmdecho" 1)
(princ)
)

Cách này của bác không dùng được đâu. Nó cũng phức tạp nữa. Dùng vla-getattributes nhanh hơn nhiều.
  • 0

#11 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 12 January 2009 - 09:50 AM

Cách này của bác không dùng được đâu. Nó cũng phức tạp nữa. Dùng vla-getattributes nhanh hơn nhiều.


Vậy bạn hướng dẫn cách làm đi
  • 0

#12 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 12 January 2009 - 10:12 AM

Vậy bạn hướng dẫn cách làm đi

Ý bác là code của lisp này chứ gì.

(defun C:CCD (/ ss socongthem dem kq gt Lst ename Vlob att)

(vl-load-com)
(setq ss (C_BL "\n Chon tap hop block can thay doi cao do :")
socongthem (getreal "\n Chon so can cong them")
Lst (SS2LST ss)
dem 0
kq 0
)
(repeat (length Lst)
(setq ename (nth dem Lst)
Vlob (vlax-ename->vla-object ename)
att (variant-value (vla-getattributes Vlob))
)
(foreach x (safearray-value att)
(setq gt (atof (vla-get-textstring x))
kq (SO2CHUINT (+ gt socongthem))
)
)
(foreach y (safearray-value att)
(vla-put-textstring y kq)
)
(setq dem (1+ dem))
)
)

;------------------------------------------
;;; CHON BLOCK KEM DONG NHAC (BAT BUOC CHON)
(defun C_BL (dongnhac / ss)
(while (and (not (prompt dongnhac))
(not (setq ss (ssget
'((-4 . "<OR") (0 . "INSERT")(-4 . "OR>"))
)
)
)
)
)
ss
)
(defun SS2LST (ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun SO2CHUINT (num / numR)
(cond ( (= (type (read (rtos num 2 2))) 'INT)
(setq numR ( strcat (rtos num 2 0) ".00"))
)
( (= (type (read (rtos (* num 10) 2 1))) 'INT)
(setq numR ( strcat (rtos num 2 1) "0"))
)
( t
(setq numR (rtos num 2 2))
)
)

(if (> num 0)
(strcat "+" numR)
numR
)

)

  • 0

#13 ph168xd

ph168xd

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 779 Bài viết
Điểm đánh giá: 309 (khá)

Đã gửi 12 January 2009 - 09:26 PM

Ặc. ph đâu có biết viết lish, sau đọt này có lẽ phải theo học các Bác mới đc
  • 0