Đến nội dung


Hình ảnh
- - - - -

Thống kê tấm ốp.


  • Please log in to reply
22 replies to this topic

#1 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 29 January 2007 - 11:56 AM

Vừa rồi phải làm một công việc nhàm chán trong AutoCAD, đó là công việc đếm xem trên mặt đứng của một ngôi nhà, có bao nhiêu loại tấm ốp, mỗi tấm ốp có kích thước bao nhiêu, và bao nhiêu tấm mỗi loại. Trên mặt đứng, mỗi tấm là một Polyline được tạo bằng lệnh rectangle (có 4 cạnh).

Tranh thủ viết được một chương trình AutoLisp để làm công việc này. Khi sử dụng lệnh tkt (thống kê tấm), chương trình sẽ cho kết quả:

Command: tkt
Hay chon tam:
Select objects: Specify opposite corner: 264 found
89 were filtered out.
Select objects:

So luong cac tam:
461x900: 22 tam
1700x900: 6 tam
2500x900: 108 tam
800x1800: 7 tam
1520x900: 16 tam
2680x900: 16 tam
-------------------------
Mã lệnh AutoLisp:
 

(defun sudung (ham ss / sodt index entdt soapp) (setq sodt (cond (ss (sslength ss)) (t 0) ) soapp 0 index 0 ) (repeat sodt (setq entdt (ssname ss index) index (1+ index) ) (if (ham entdt) (setq soapp (1+ soapp)) ) ) soapp)

(defun c:tkt( / lstTam ss pp)
(defun prone(ent / tt p1 p2 p3 x1 x2 y1 y2 cothem H W)
(defun them(dt)
(if (equal W (car dt) 1.0)
(if (equal H (cadr dt) 1.0)
(progn
(setq cothem t)
(list W H (1+ (caddr dt)))
)
dt
)
dt
)
)
(setq
tt (entget ent)
p1 (assoc 10 tt)
tt (cdr (member p1 tt))
p2 (assoc 10 tt)
tt (cdr (member p2 tt))
p3 (assoc 10 tt)
p1 (cdr p1)
p3 (cdr p3)
x1 (car p1)
x2 (car p3)
y1 (cadr p1)
y2 (cadr p3)
W (abs (- x1 x2))
H (abs (- y1 y2))
cothem nil
lstTam (mapcar 'them lstTam)
)
(if (not cothem)
(setq lsttam
(append lsttam (list (list W H 1))
)
)
)
)
;;-------- Main ------------------
(princ "\nHay chon tam: ")
(setq
ss (ssget '((0 . "LWPOLYLINE")
(90 . 4))
)
lstTam nil
)
(sudung prone ss)
(princ "\nSo luong cac tam:")
(foreach pp lsttam
(princ (strcat "\n" (rtos (car pp)) "x" (rtos (cadr pp)) ": " (itoa (caddr pp)) " tam"))
)
(princ)
)

Với nguyên tắc của lệnh tkt này, chúng ta có thể phát triển thành chương trình thống kê thanh dàn của kết cấu, chương trình đếm số lượng xe ôtô trong gara, liệt kê các block có trong bản vẽ, block nào xuất hiện mấy lần, ... Là cơ sở của các chương trình thống kê.

Rất mong nhận được sự phản hồi khi sử dụng lệnh tkt.
Cảm ơn.
  • 1

#2 megarendering

megarendering

    biết vẽ ellipse

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

Đã gửi 29 January 2007 - 02:09 PM

Yêu ơi, sao yêu không dùng lệnh Filter, anh thấy dùng lệnh đấy cũng ngon mà, chỉ mỗi tội không thêm được kích thước như của em thôi. :lol:. Cố gắng phát triển lên làm chương trình thống kê cửa đi yêu, mệt nhất ở công việc nhàm chán đấy:D
  • 0

#3 Hieuss

Hieuss

    biết lệnh mtext

  • Vip
  • PipPipPipPip
  • 286 Bài viết
Điểm đánh giá: 163 (tàm tạm)

Đã gửi 30 January 2007 - 12:16 AM

đúng là chỗ bên đấy dùng vật liệu hiện đại nhiều, thường xuyên dùng tấm ốp kim loại cho công trình. Chỗ tớ toàn nhà Pháp, dùng sơn tường là chính, cùng lắm thì ốp đá nên chả dùng cái đấy bao giờ :lol:
  • 0

#4 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 04 May 2007 - 06:20 AM

Vừa rồi phải làm một công việc nhàm chán trong AutoCAD, đó là công việc đếm xem trên mặt đứng của một ngôi nhà, có bao nhiêu loại tấm ốp, mỗi tấm ốp có kích thước bao nhiêu, và bao nhiêu tấm mỗi loại. Trên mặt đứng, mỗi tấm là một Polyline được tạo bằng lệnh rectangle (có 4 cạnh).

Tranh thủ viết được một chương trình AutoLisp để làm công việc này. Khi sử dụng lệnh tkt (thống kê tấm), chương trình sẽ cho kết quả:

Command: tkt
Hay chon tam:
Select objects: Specify opposite corner: 264 found
89 were filtered out.
Select objects:

So luong cac tam:
461x900: 22 tam
1700x900: 6 tam
2500x900: 108 tam
800x1800: 7 tam
1520x900: 16 tam
2680x900: 16 tam
-------------------------
Mã lệnh AutoLisp:

(defun c:tkt( / lstTam ss pp)  
(defun prone(ent / tt p1 p2 p3 x1 x2 y1 y2 cothem H W)
(defun them(dt)
(if (equal W (car dt) 1.0)
(if (equal H (cadr dt) 1.0)
(progn
(setq cothem t)
(list W H (1+ (caddr dt)))
)
dt
)
dt
)
)
(setq
tt (entget ent)
p1 (assoc 10 tt)
tt (cdr (member p1 tt))
p2 (assoc 10 tt)
tt (cdr (member p2 tt))
p3 (assoc 10 tt)
p1 (cdr p1)
p3 (cdr p3)
x1 (car p1)
x2 (car p3)
y1 (cadr p1)
y2 (cadr p3)
W (abs (- x1 x2))
H (abs (- y1 y2))
cothem nil
lstTam (mapcar 'them lstTam)
)
(if (not cothem)
(setq lsttam
(append lsttam (list (list W H 1))
)
)
)
)
;;-------- Main ------------------
(princ "\nHay chon tam: ")
(setq
ss (ssget '((0 . "LWPOLYLINE")
(90 . 4))
)
lstTam nil
)
(sudung prone ss)
(princ "\nSo luong cac tam:")
(foreach pp lsttam
(princ (strcat "\n" (rtos (car pp)) "x" (rtos (cadr pp)) ": " (itoa (caddr pp)) " tam"))
)
(princ)
)
Với nguyên tắc của lệnh tkt này, chúng ta có thể phát triển thành chương trình thống kê thanh dàn của kết cấu, chương trình đếm số lượng xe ôtô trong gara, liệt kê các block có trong bản vẽ, block nào xuất hiện mấy lần, ... Là cơ sở của các chương trình thống kê.

Rất mong nhận được sự phản hồi khi sử dụng lệnh tkt.
Cảm ơn.


Nhờ anh Hoành hướng dẫn dùm tôi khi sử dụng chương trình thống kê như trên thì báo lỗi
error: no function definition: SUDUNG
cảm ơn
  • 0

#5 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 04 May 2007 - 08:01 AM

Nhờ anh Hoành hướng dẫn dùm tôi khi sử dụng chương trình thống kê như trên thì báo lỗi
error: no function definition: SUDUNG
cảm ơn


vbao bổ sung thêm hàm sudung nhé!
Hàm này nằm sẵn trong lisp được cài, nên nhiều khi quên không tách ra cho vào những lisp mới.
Hàm sudung có chức năng dùng hàm có tên ham cho từng đối tượng trong tập chọn ss.


(defun sudung (ham ss / sodt index entdt soapp)
(setq sodt (cond
(ss (sslength ss))
(t 0)
)
soapp 0
index 0
)
(repeat sodt
(setq entdt (ssname ss index)
index (1+ index)
)
(if (ham entdt)
(setq soapp (1+ soapp))
)
)
soapp
)

  • 0

#6 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 04 May 2007 - 05:22 PM

vbao bổ sung thêm hàm sudung nhé!
Hàm này nằm sẵn trong lisp được cài, nên nhiều khi quên không tách ra cho vào những lisp mới.
Hàm sudung có chức năng dùng hàm có tên ham cho từng đối tượng trong tập chọn ss.


(defun sudung (ham ss / sodt index entdt soapp)
(setq sodt (cond
(ss (sslength ss))
(t 0)
)
soapp 0
index 0
)
(repeat sodt
(setq entdt (ssname ss index)
index (1+ index)
)
(if (ham entdt)
(setq soapp (1+ soapp))
)
)
soapp
)


cảm ơn anh Hoành, tôi đã sử dụng được tiện ích thống kê tấm, nhân tiện, anh Hoành cho tôi hỏi thêm với ngôn ngữ autolisp có cách nào tìm trong 1 bản vẽ bình đồ, các đối tượng là text cao độ (có giá trị là các số thực, tọa độ Z luôn = 0) đã được hiệu chỉnh hoặc sử dụng lệnh move về vị trí khác (mục đích là tìm ra các điểm mia không trung thực . . . trong bản vẽ) Cảm ơn anh
  • 0

#7 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 04 May 2007 - 09:17 PM

...cho tôi hỏi thêm với ngôn ngữ autolisp có cách nào tìm trong 1 bản vẽ bình đồ, các đối tượng là text cao độ (có giá trị là các số thực, tọa độ Z luôn = 0) đã được hiệu chỉnh hoặc sử dụng lệnh move về vị trí khác (mục đích là tìm ra các điểm mia không trung thực . . . trong bản vẽ) Cảm ơn anh

Tôi chưa hiểu ý của anh vbao.
Anh ví dụ cụ thể hơn về mia không trung thực được không. Mia không trung thực có phải là đối tượng text có tọa độ z sai với giá trị của text?
  • 0

#8 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 05 May 2007 - 07:18 AM

Tôi chưa hiểu ý của anh vbao.
Anh ví dụ cụ thể hơn về mia không trung thực được không. Mia không trung thực có phải là đối tượng text có tọa độ z sai với giá trị của text?


xin lỗi anh do tôi sơ suất không nói rõ, tôi xin cụ thể như sau: ngoài thực địa anh em dựng mia và đo ở vị trí 1, nhưng sau khi biên tập số liệu xuất ra bản vẽ (tất cả đều xử lý trong autocad), đã move điểm mia 1 về vị trí 2 để phù hợp với qui phạm ngành (tôi chỉ có file bản vẽ, không có những dữ liệu thô ngoài thực địa để kiểm tra lại!).
Một số bản vẽ sau khi đã hoàn thảnh, do mục đích riêng tư, các cao độ text đã được nâng lên hoặc hạ xuống. . . hoặc do thao tác sai khi khảo sát (sai chiều cao gương, góc đứng. . .) sau khi đã xuất dữ liệu ra trên cad khiến điểm mia này có cao độ sai lệch lớn so với các điểm khác và anh em dùng lệnh ED để hiệu chỉnh điểm này! Tóm lại có cách nào tìm các đối tượng là text đã sử dụng lệnh ED trong bản vẽ. Cảm ơn anh
  • 0

#9 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 14 May 2007 - 12:58 PM

Viết từ hôm trước mà quên chưa up lên cho Vbao.
Lệnh CHECK, sẽ tìm kiếm những cặp text lân cận nhau (khoảng cách bé hơn Lmax) và có độ dốc lớn hơn cho phép (imax) rồi hiển thị nó trên màn hình bằng các nét màu đỏ.


(defun c:check ()
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun ent2p (ent)
(setq tt (entget ent)
p (cdr (assoc 10 tt))
z (atof (cdr (assoc 1 tt)))

)
(list ent p z)
)
(defun getpgoc (/ pp xmax ymax xmin ymin)
(foreach pp lsttext
(setq p (cadr pp)
x (car p)
y (cadr p)
)
(if (or
(not xmax)
(< xmax x)
)
(setq xmax x)
)
(if (or
(not xmin)
(> xmin x)
)
(setq xmin x)
)
(if (or
(not ymax)
(< ymax y)
)
(setq ymax y)
)
(if (or
(not ymin)
(> ymin y)
)
(setq ymin y)
)
)
(cons (list xmax ymax 0.0) (list xmin ymin 0.0))
)
(setq sstext (ssget '((0 . "TEXT")))
Lmax (getdist "\nVao khoang cach Lmax: ")
imax (getreal "\nVao do doc max imax (%): ")
imax (/ imax 100.0)
lsttext (ss2ent sstext)
lsttext (mapcar 'ent2p lsttext)
sotext (length lsttext)
i -1
pgoc (getpgoc)
pmax (car pgoc)
pmin (cdr pgoc)
)
(defun quadoc (pp1 pp2 / l)
(and
(<= (setq l (distance (cadr pp1) (cadr pp2))) lmax)
(> l 0.0)
(>= (/ (abs (- (caddr pp1) (caddr pp2))) l) imax)
)
)
(command ".zoom" pmax pmin)
(repeat sotext
(setq j -1
i (1+ i)
pp1 (nth i lsttext)
sotextcon (- sotext j 2)
)
(repeat sotextcon
(setq j (1+ j)
pp2 (nth j lsttext)
)
(if (quadoc pp1 pp2)
(grdraw (cadr pp1) (cadr pp2) 1)
)
)
)
(princ)
)

  • 0

#10 vbao

vbao

    biết lệnh array

  • CADViet Team
  • PipPipPip
  • 184 Bài viết
Điểm đánh giá: 80 (tàm tạm)

Đã gửi 14 May 2007 - 03:51 PM

Viết từ hôm trước mà quên chưa up lên cho Vbao.
Lệnh CHECK, sẽ tìm kiếm những cặp text lân cận nhau (khoảng cách bé hơn Lmax) và có độ dốc lớn hơn cho phép (imax) rồi hiển thị nó trên màn hình bằng các nét màu đỏ.


(defun c:check ()
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(defun ent2p (ent)
(setq tt (entget ent)
p (cdr (assoc 10 tt))
z (atof (cdr (assoc 1 tt)))

)
(list ent p z)
)
(defun getpgoc (/ pp xmax ymax xmin ymin)
(foreach pp lsttext
(setq p (cadr pp)
x (car p)
y (cadr p)
)
(if (or
(not xmax)
(< xmax x)
)
(setq xmax x)
)
(if (or
(not xmin)
(> xmin x)
)
(setq xmin x)
)
(if (or
(not ymax)
(< ymax y)
)
(setq ymax y)
)
(if (or
(not ymin)
(> ymin y)
)
(setq ymin y)
)
)
(cons (list xmax ymax 0.0) (list xmin ymin 0.0))
)
(setq sstext (ssget '((0 . "TEXT")))
Lmax (getdist "\nVao khoang cach Lmax: ")
imax (getreal "\nVao do doc max imax (%): ")
imax (/ imax 100.0)
lsttext (ss2ent sstext)
lsttext (mapcar 'ent2p lsttext)
sotext (length lsttext)
i -1
pgoc (getpgoc)
pmax (car pgoc)
pmin (cdr pgoc)
)
(defun quadoc (pp1 pp2 / l)
(and
(<= (setq l (distance (cadr pp1) (cadr pp2))) lmax)
(> l 0.0)
(>= (/ (abs (- (caddr pp1) (caddr pp2))) l) imax)
)
)
(command ".zoom" pmax pmin)
(repeat sotext
(setq j -1
i (1+ i)
pp1 (nth i lsttext)
sotextcon (- sotext j 2)
)
(repeat sotextcon
(setq j (1+ j)
pp2 (nth j lsttext)
)
(if (quadoc pp1 pp2)
(grdraw (cadr pp1) (cadr pp2) 1)
)
)
)
(princ)
)


Một lần nữa xin cảm ơn anh Nguyen Hoanh đã nhiệt tình giúp tôi giải quyết vấn đề trên.
  • 1

#11 tamkt

tamkt

    biết vẽ ellipse

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

Đã gửi 04 September 2010 - 12:13 PM

Anh Hoành thật là tuyệt vời, anh đúng là thiên tài Autolip. E bái phục anh.
  • 0

#12 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 12 February 2015 - 12:25 PM

mình xài lisp tkt mà bị lỗi này thì là sao vậy Bác Hoành? bác chỉ giúp với

 

"errorr: no function definition: SUDUNG"


  • 0

#13 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 12 February 2015 - 02:33 PM

Đã fix, bạn thử xem được chưa nhé
  • 0

#14 tacongthang

tacongthang

    biết vẽ point

  • Members
  • PipPip
  • 99 Bài viết
Điểm đánh giá: 11 (tàm tạm)

Đã gửi 20 February 2015 - 04:51 PM

được rồi bác Hoành ạ, thanks bác nhiều. Tuy nhiên sau khi chạy lisp có 1 chút không hiểu, mong bác giải thích giúp.

 

giả sử ta vẽ 1 rectang 20x40mm, copy ra và xoay 1 góc bất kỳ thì lisp không còn đúng nữa. Bác xem giúp file đính kèm

lisp không còn chọn được đúng với đa giác có trên 4 cạnh


  • 0

#15 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 20 February 2015 - 08:37 PM

Đúng vậy,

Lisp chỉ thống kê hình chữ nhật 4 cạnh và cạnh phải song song với trục X-Y.

Nếu bạn muốn thống kê những hình khác nữa, hãy post lên đây, các cao thủ lisp sẽ giúp bạn.

Mình gác kiếm rồi.
  • 1

#16 Chym Code

Chym Code

    biết vẽ arc

  • Members
  • PipPip
  • 46 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 26 October 2016 - 09:42 AM

Vừa rồi phải làm một công việc nhàm chán trong AutoCAD, đó là công việc đếm xem trên mặt đứng của một ngôi nhà, có bao nhiêu loại tấm ốp, mỗi tấm ốp có kích thước bao nhiêu, và bao nhiêu tấm mỗi loại. Trên mặt đứng, mỗi tấm là một Polyline được tạo bằng lệnh rectangle (có 4 cạnh).

Tranh thủ viết được một chương trình AutoLisp để làm công việc này. Khi sử dụng lệnh tkt (thống kê tấm), chương trình sẽ cho kết quả:

Command: tkt
Hay chon tam:
Select objects: Specify opposite corner: 264 found
89 were filtered out.
Select objects:

So luong cac tam:
461x900: 22 tam
1700x900: 6 tam
2500x900: 108 tam
800x1800: 7 tam
1520x900: 16 tam
2680x900: 16 tam
-------------------------
Mã lệnh AutoLisp:
 


(defun sudung (ham ss / sodt index entdt soapp) (setq sodt (cond (ss (sslength ss)) (t 0) ) soapp 0 index 0 ) (repeat sodt (setq entdt (ssname ss index) index (1+ index) ) (if (ham entdt) (setq soapp (1+ soapp)) ) ) soapp)

(defun c:tkt( / lstTam ss pp)
(defun prone(ent / tt p1 p2 p3 x1 x2 y1 y2 cothem H W)
(defun them(dt)
(if (equal W (car dt) 1.0)
(if (equal H (cadr dt) 1.0)
(progn
(setq cothem t)
(list W H (1+ (caddr dt)))
)
dt
)
dt
)
)
(setq
tt (entget ent)
p1 (assoc 10 tt)
tt (cdr (member p1 tt))
p2 (assoc 10 tt)
tt (cdr (member p2 tt))
p3 (assoc 10 tt)
p1 (cdr p1)
p3 (cdr p3)
x1 (car p1)
x2 (car p3)
y1 (cadr p1)
y2 (cadr p3)
W (abs (- x1 x2))
H (abs (- y1 y2))
cothem nil
lstTam (mapcar 'them lstTam)
)
(if (not cothem)
(setq lsttam
(append lsttam (list (list W H 1))
)
)
)
)
;;-------- Main ------------------
(princ "\nHay chon tam: ")
(setq
ss (ssget '((0 . "LWPOLYLINE")
(90 . 4))
)
lstTam nil
)
(sudung prone ss)
(princ "\nSo luong cac tam:")
(foreach pp lsttam
(princ (strcat "\n" (rtos (car pp)) "x" (rtos (cadr pp)) ": " (itoa (caddr pp)) " tam"))
)
(princ)
)

Với nguyên tắc của lệnh tkt này, chúng ta có thể phát triển thành chương trình thống kê thanh dàn của kết cấu, chương trình đếm số lượng xe ôtô trong gara, liệt kê các block có trong bản vẽ, block nào xuất hiện mấy lần, ... Là cơ sở của các chương trình thống kê.

Rất mong nhận được sự phản hồi khi sử dụng lệnh tkt.
Cảm ơn.

 

Từ lip TKT của bác Hoành, có bác nào giúp em đưa dữ liệu đó thành 1 bảng có 3 cột trong Cad được không ( Chiều dài, chiều rộng, số lượng )

Cảm ơn và mong các bác giúp đỡ !


  • 0

#17 Chym Code

Chym Code

    biết vẽ arc

  • Members
  • PipPip
  • 46 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 26 October 2016 - 10:17 AM

Phát triển từ bài toán trên, em có 1 bảng dữ liệu 3 cột ( Chiều dài, chiều rộng, số lượng ) trong Excel, em muốn đổ dữ liệu đó vào trong CAD, và dùng Lisp chọn bảng dữ liệu đó. Kết quả Lisp vẽ ra các HCN có kích thước và số lượng tương ứng.

Em cũng mong các bác giúp đỡ viết cho em 1 Lisp như vậy

Chúc CAD VIêt 1 ngày làm việc hiểu quả


  • 0

#18 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 26 October 2016 - 02:24 PM

Phát triển từ bài toán trên, em có 1 bảng dữ liệu 3 cột ( Chiều dài, chiều rộng, số lượng ) trong Excel, em muốn đổ dữ liệu đó vào trong CAD, và dùng Lisp chọn bảng dữ liệu đó. Kết quả Lisp vẽ ra các HCN có kích thước và số lượng tương ứng.

Em cũng mong các bác giúp đỡ viết cho em 1 Lisp như vậy

Chúc CAD VIêt 1 ngày làm việc hiểu quả

1. Điều kiện: 3 cột đều là số (nếu dòng nào là chữ thì bị bỏ qua).

2. Thực hiện:

- Ở bên excel Ctrl+C (copy to clipboard 3 cột đó)

- Sang autocad dùng lệnh VCN

3. Lisp:https://drive.google...iew?usp=sharing


  • 1

#19 Chym Code

Chym Code

    biết vẽ arc

  • Members
  • PipPip
  • 46 Bài viết
Điểm đánh giá: -10 (hơi kém)

Đã gửi 26 October 2016 - 03:29 PM

1. Điều kiện: 3 cột đều là số (nếu dòng nào là chữ thì bị bỏ qua).

2. Thực hiện:

- Ở bên excel Ctrl+C (copy to clipboard 3 cột đó)

- Sang autocad dùng lệnh VCN

3. Lisp:https://drive.google...iew?usp=sharing

Cảm ơn anh Mạnh nhiều ! Lisp của anh quá hay

Anh có thể viết giúp em 1 bài toán ngược với bài toán trên được không. Nghĩa là cho 1 loạt HCN bên Cad, dùng lisp chọn các hình đó, lisp tự động ghi thành 1 bảng thông kê CD, CR, Số lượng. Nếu được anh viết giúp em cái lisp đó nữa. 


  • 0

#20 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 26 October 2016 - 03:40 PM

HCN (Rectang) thực chất là 1 Pline. Trên bản vẽ của bạn có gì để phân biệt giữa Pline là HCN và Pline khác không, hỏi vậy để lisp khỏi nhầm vào pline khác.

=> Thêm nữa:

- Có HCN nằm xiên không?

- Bảng thống kê nằm trên cad hay xuất ra file?


  • 1