Đến nội dung


Hình ảnh
* - - - - 1 Bình chọn

[Nhờ Chỉnh Sửa] Lisp Tính Diện Tích Trên Nhiều Trắc Ngang


  • Please log in to reply
33 replies to this topic

#21 Superlong

Superlong

    biết vẽ arc

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

Đã gửi 15 March 2016 - 04:19 PM

phần mềm này hay quá bạn cho mail cho mình với được không mình đang làm hoàn công phân lớp thủ công oải quá 
longnguyen4563@gmail.com
thanks bạn 


  • 0

#22 phuhvp

phuhvp

    biết vẽ line

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

Đã gửi 30 March 2016 - 11:29 PM

Chào Bác huunhantvxdt , Bác có thể cho em xin lisp của Bác sửa xong và lisp của cả Bác Hưng trong clip trên ko ạ

Gửi qua phuhvp@gmail.com  giúp em nhé

Chân thành cảm ơn Bác


  • 0

#23 whoang

whoang

    Chưa sử dụng CAD

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

Đã gửi 04 May 2016 - 12:47 PM

Chào Bác huunhantvxdt !

Bác có thể cho em xin lisp này với

MAIL: nguyenhoang.utc40@gmail.com.

Chân thành cảm ơn Bác


  • 0

#24 Trần Thị Gia Tuệ

Trần Thị Gia Tuệ

    biết pan

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

Đã gửi 26 June 2016 - 09:37 PM

cho em xin tien ich cua Bác Hung với anh: mail e: nonsensemoney@gmail.com thanks anh


  • 0

#25 fystar

fystar

    Chưa sử dụng CAD

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

Đã gửi 16 July 2016 - 02:45 AM

Em Thấy ý tưởng làm lisp này của anh rất là hay.

Gửi cho e file lisp này với. Cảm ơn anh.

Mail: fystar94@gmail.com


  • 0

#26 chien_lv

chien_lv

    biết vẽ rectang

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

Đã gửi 20 August 2016 - 04:30 PM

 

Đã gửi cho 2 bạn 

trangnhung chuotxd

 

Bạn gửi cho mình vào địa chỉ email với nhé. Chienwre@gmail.com cảm ơn bạn


  • 0

#27 huyenle

huyenle

    biết zoom

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

Đã gửi 20 August 2016 - 04:53 PM

Sau mấy ngày mày mò cuối cùng cũng làm được đang mày mò tiếp để đưa thêm giao diện vào là ok

 

https://youtu.be/7NInPky8G1M

Anh có thể cho xem xin lisp đó được không ah, em cảm ơn: lethihuyen211190@mail.com


  • 0

#28 chien_lv

chien_lv

    biết vẽ rectang

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

Đã gửi 20 August 2016 - 05:13 PM

Đây là lisp mình viết đang còn hạn chế về tính tự động(chỉ tính từng hạng mục một).Bây giờ muốn phát triển thêm tính nhiều hạng mục

chỉ 1 lần chạy:

ý tưởng thì có nhưng viết lại không được mới khổ chứ:

1. Sẽ định nghĩa đối tượng tương ứng với hạng mục

Hạng mục 1

 1.1 chọn đối tượng

 1.2 chọn text hạng mục có sẳn (nếu ghi thì tôt hơn)

 1.3 chọn đơn vị m or m2

Hạng mục 2

 1.1 chọn đối tượng

 1.2 chọn text hạng mục có sẳn (nếu ghi thì tôt hơn)

 1.3 chọn đơn vị m or m2

..........

Sau khi định nghĩa xong các hạng mục Enter thì lisp điền diện tích luôn.

Và đây là lisp:

(defun c:DTTN (/ NDTS dem1 lstkm point kcach point1 pointtim diemtam xuongdong kt diemtren1)
(setvar "CMDECHO" 0)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (setq lop1 "entdauco")
  (prompt "\nChon Pline hoac Hatch mau tinh dien tich.")
  (setq fltr (ssx_fe))
  (prompt "\nChon Text ghi dien tich.")
  (setq DTS (car (entsel)))
  (setq DTS (entget DTS))
  (setq NDTS (cdr (assoc 1 DTS)))
  (command "-layer" "new" "Tinh dien tich TN" "color" "2" "Tinh dien tich TN" "")
  (command "-layer" "set" "Tinh dien tich TN" "")
(if (null cdtxt)
 (caidat)
)
 (setq th (getvar "textsize"))
 (setq dentay (- dentay (* 1.5 th)))
  ;(prompt "\nChon trac ngang.")
  (setq danhsachkm (acet-ss-to-list (ssget "X" (list (cons 8 lop1) (cons 1 "K*")))))
  (setq lstkm (mapcar '(lambda (e) (cons (cdr (assoc 11 (entget e))) (cdr (assoc 1 (entget e))))) danhsachkm))
  (setq lstkm (vl-sort lstkm '(lambda(x y / tmx tmy) (setq tmx (timlt x) tmy (timlt y))
                 (or (< (car tmx) (car tmy))
    (and (= (car tmx) (car tmy)) (< (last tmx) (last tmy)))))))
  (setq ss (acet-ss-to-list (ssget "X" '((0 . "LINE")(8 . "ENTTNTUNHIEN")))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq dem1 1)
(setq sodt (length danhsachkm)
ta 
            (chr 8)
stxoa (strcat ta ta ta ta ta ta ta ta ta ta ta ta ta ta 
            ta ta ta ta ta ta)
stxuly "Xu ly duoc: "
ptcu nil
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  (foreach ent lstkm
    (setq point (car ent))
    (setq kcach (distance point (cdr (assoc 11 (entget (nth 0 ss))))))
    (foreach enxt ss
      (setq point1 (cdr (assoc 11 (entget enxt))))
      (setq toay (cadr point1))
      (if (and (< (distance point1 point) kcach) (< toay (cadr point)) (equal (car point1) (car point) 1))
(progn
 (setq pointtim (cdr (assoc 11 (entget enxt))))
 (setq kcach (distance pointtim point))
)
      )
    )
    (setq diemtam (polar pointtim (/ pi 2) (/ kcach 2)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
    (vla-ZoomCenter (vlax-get-acad-object) (vlax-3D-point diemtam) (+ kcach 50))
    (setq dd (acet-ss-to-list (ssget "C" (polar pointtim 0 0.1 ) (polar pointtim 0 0.15 ) '((0 . "LINE")(8 . "ENTTNTUNHIEN")))))
    (setq diemdau (cdr (assoc 10 (entget (car dd)))))
    (setq diemcuoi (cdr (assoc 11 (entget (car dd)))))
    (setq diemtren (polar point (/ pi 2) 10))
	(setq diemtren1 (list (car diemcuoi) (cadr diemtren) 0))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq SSS (ssget "C" diemdau diemtren1 fltr)) 
(if (/= sss nil)
(progn
(setq i 0)
(setq s 0)
(setq N (sslength sss))
 (setq data (ssget "C" diemdau diemtren1 '((0 . "INSERT") (8 . "entdauco"))))
  (while (< i N)
  ;(luuos)
  (setvar "osmode" 0)
  (setq DT (ssname sss i))	
  (setq j 0)
  (setq ent1 (ssname data 0))
  (setq diemchuan (cdr (assoc 10 (entget ent1))))
  (Command "area" "o" DT)
  (if (= (getvar "area") 0)
  (progn
  (setq s (+ s (getvar "PERIMETER")))
  (setq i (1+ i))
  (setq donvi "m")
  )
  (progn
  (setq s (+ s (getvar "AREA")))
  (setq i (1+ i))
  (setq donvi "m2")
  )
  ))
  (setq diemghi (polar diemchuan 0 dentax))
  (setq diemghi (polar diemghi (/ pi 2) dentay))
  (setq txt NDTS)
  (command "TEXT" diemghi th 0 txt)
  (setq pointt11 (polar diemghi 0 cdtxt))
  (command "TEXT" pointt11 th 0 ":")
  (setq pointt1 (polar pointt11 0 cdsokl))
  (command "TEXT" "J" "R" pointt1 th 0 (rtos s 2 2))
  (setq point2 (polar pointt1 0 0.2))
  (command "TEXT" point2 th 0 donvi)
  ;(traos)
  )
  (progn
  (setq data (ssget "C" diemdau diemtren1 '((0 . "INSERT") (8 . "entdauco"))))
  (setq ent1 (ssname data 0))
  ;(luuos)
  (setvar "osmode" 0)
  (setq diemchuan (cdr (assoc 10 (entget ent1))))
  (setq diemghi (polar diemchuan 0 dentax))
  (setq diemghi (polar diemghi (/ pi 2) dentay))
  (setq txt NDTS)
  (command "TEXT" diemghi th 0 txt)
  (setq pointt11 (polar diemghi 0 cdtxt))
  (command "TEXT" pointt11 th 0 ":")
  (setq pointt1 (polar pointt11 0 cdsokl))
  (command "TEXT" "J" "R" pointt1 th 0 "0.00")
  (setq point2 (polar pointt1 0 0.2))
  (command "TEXT" point2 th 0 donvi)
  ;(traos)
  )
  )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; xu ly phan tram chay o duoi
(setq pt (* (/ (* dem1 1.0) sodt) 100.0)
dem1 (+ dem1 1)
)
(if (/= pt ptcu)
(progn
(princ (strcat stxoa stxuly (rtos pt 2 0) "%"))
(setq ptcu pt)
)
)
;(princ "\nDang xu ly")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setvar "MODEMACRO" "DANG CHUYEN DU LIEU CHO TRONG GIAY LAT")  
)
(setvar "CMDECHO" 1)
;(thoi)
)
(defun timlt (st / tm)
  (setq tm (vl-string->list (substr (strcase (cdr st)) (+ 3 (vl-string-search "KM" (strcase (cdr st)))))))
  (read (strcat "(" (vl-list->string (subst 32 43 (subst 32 58 tm))) ")"))
)
(defun ssx_fe (/ data fltr ent)
  (setq ent (car (entsel "\nSelect object <None>: ")))
  (if ent
    (progn
      (setq data (entget ent))
      (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
        (if (assoc x data)
          (setq fltr
            (cons (assoc x data) fltr)
          )
        )
      )
      (reverse fltr)
    )
  )
)
(defun Caidat (/ htxt httxt ltxt lsokl)
 (if (null dentax)
 (progn
 (setq dentax 10)
 (setq dentay 10)
 ))
 (setq x (getstring (strcat "\nKhoang cach dien phuong x <"(rtos dentax)"> :")))
 (setq y (getstring (strcat "\nKhoang cach dien phuong y <"(rtos dentay)"> :")))
 (if (/= x "") (setq dentax (atof x)))
 (if (/= y "") (setq dentay (atof y)))
(setq htxt 0.2)
(setq httxt (getstring (strcat "\nNhap chieu cao chu <"(rtos htxt)"> :")))
(if (/= httxt "") (setq htxt (atof httxt)))
(setvar "textsize" htxt)
(setq cdtxt 4.5)
(setq ltxt (getstring (strcat "\nNhap chieu dai chuoi <"(rtos cdtxt)"> :")))
(if (/= ltxt "") (setq cdtxt (atof ltxt)))
(setq cdsokl 0.75)
(setq lsokl (getstring (strcat "\nNhap chieu dai chu so khoi luong <"(rtos cdsokl)"> :")))
(if (/= lsokl "") (setq cdsokl (atof lsokl)))
)
(defun C:Caidatlai (/ htxt httxt ltxt lsokl)
(if (null dentax)
 (progn
 (setq dentax 10)
 (setq dentay 10)
 ))
 (setq x (getstring (strcat "\nKhoang cach dien phuong x <"(rtos dentax)"> :")))
 (setq y (getstring (strcat "\nKhoang cach dien phuong y <"(rtos dentay)"> :")))
 (if (/= x "") (setq dentax (atof x)))
 (if (/= y "") (setq dentay (atof y)))
(setq htxt 0.2)
(setq httxt (getstring (strcat "\nNhap chieu cao chu <"(rtos htxt)"> :")))
(if (/= httxt "") (setq htxt (atof httxt)))
(setvar "textsize" htxt)
(setq cdtxt 4.5)
(setq ltxt (getstring (strcat "\nNhap chieu dai chuoi <"(rtos cdtxt)"> :")))
(if (/= ltxt "") (setq cdtxt (atof ltxt)))
(setq cdsokl 0.75)
(setq lsokl (getstring (strcat "\nNhap chieu dai chu so khoi luong <"(rtos cdsokl)"> :")))
(if (/= lsokl "") (setq cdsokl (atof lsokl)))
) 

Đây là file test:

http://www.cadviet.c...66960_vi_du.dwg

cho mình hỏi là mình dùng trên file của bạn thì ok nhưng ứng dụng vào bản vẽ của mình thì nó báo Layer "Tinh dien tich TN" already exists. là sao bạn nhỉ?


  • 0

#29 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 22 August 2016 - 07:42 AM

cho mình hỏi là mình dùng trên file của bạn thì ok nhưng ứng dụng vào bản vẽ của mình thì nó báo Layer "Tinh dien tich TN" already exists. là sao bạn nhỉ?

Báo layer đã có không phải là lỗi. Chắc file của bạn không theo chuẩn của mình, để chạy được file phải xuất từ các phần mềm ra (nova hoặc TDT). Bạn gửi file lên mình kiểm tra cho.


  • 1

#30 chien_lv

chien_lv

    biết vẽ rectang

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

Đã gửi 22 August 2016 - 02:39 PM

Báo layer đã có không phải là lỗi. Chắc file của bạn không theo chuẩn của mình, để chạy được file phải xuất từ các phần mềm ra (nova hoặc TDT). Bạn gửi file lên mình kiểm tra cho.

Anh kiểm tra giúp với ah, em up bản vẽ để anh xem, mà em muốn hỏi một chút nếu trong trường hợp địa hình của em xuất ra từ TOPO thì có cách nào chạy được không ạhttp://www.cadviet.c...43_drawing1.dwg


  • 0

#31 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 23 August 2016 - 08:26 AM

Anh kiểm tra giúp với ah, em up bản vẽ để anh xem, mà em muốn hỏi một chút nếu trong trường hợp địa hình của em xuất ra từ TOPO thì có cách nào chạy được không ạhttp://www.cadviet.c...43_drawing1.dwg

Chào bạn mình đã xem qua file bạn gửi. Do bạn đọc không kỹ lisp, lisp chỉ chạy được khi đối tượng là Hatch, Pline hoặc Line, Để file chạy được, file của bạn các Block phải phá ra.


  • 0

#32 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 23 August 2016 - 08:41 AM

Anh có thể cho xem xin lisp đó được không ah, em cảm ơn: lethihuyen211190@mail.com

Đã gửi cho bạn nhưng không gửi được(mail bạn chặn không cho mình gửi) bạn có địa chỉ mail khác không??

mail mình huunhantvxdts@gmail.com


  • 0

#33 tahuutrong0601

tahuutrong0601

    Chưa sử dụng CAD

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

Đã gửi 07 October 2016 - 09:00 PM

cho e xin lại với e thử ko đc.gmail của em: tahuutrong0601@gmail.com

e cảm ơn nhiều


  • 0

#34 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 08 October 2016 - 09:57 AM

cho e xin lại với e thử ko đc.gmail của em: tahuutrong0601@gmail.com

e cảm ơn nhiều

Đã gửi vào mail của bạn


  • 0