ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 1 5, 2009 Đ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 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
quocanhxd05 6 Báo cáo bài đăng Đã đăng Tháng 1 6, 2009 Đ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.com/upfiles/Math_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. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
traitimbuiduong 0 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 giải nén file rar nó đòi pass.Pass là j hả bạn Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
quocanhxd05 6 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 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 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 Không làm đc điều đó với Block đâu Pro ạh...Thôi thanks Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
nataca 554 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 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) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 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.com/upfiles/Drawing1_26.dwg Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
Nộ Thiên 133 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 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.com/upfiles/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) ) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
nataca 554 Báo cáo bài đăng Đã đăng Tháng 1 7, 2009 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 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
nataca 554 Báo cáo bài đăng Đã đăng Tháng 1 8, 2009 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. Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 1 12, 2009 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 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
nataca 554 Báo cáo bài đăng Đã đăng Tháng 1 12, 2009 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 ) ) Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác
ph168xd 313 Báo cáo bài đăng Đã đăng Tháng 1 12, 2009 Ặ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 Chia sẻ bài đăng này Liên kết tới bài đăng Chia sẻ trên các trang web khác