Đến nội dung


Hình ảnh
- - - - -

Xin nhờ các cao thủ lisp do kích thước bao, xuất ra text...


  • Please log in to reply
20 replies to this topic

#1 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 11 October 2014 - 09:21 AM

Em xin nhờ các cao thủ giúp e xem có biết lisp nào giải quyết được bài toán này giup e k ah?

 

Tình hình là e đang làm thống kê đo các kích thước của các tấm plate hình dạng bất kỳ (như hình vẽ). đo một 2 tấm thì không sao nhưng đây e phải đo hàng nghìn tấm, vậy e muốn nhờ các cao thủ xem có lisp nào giúp e xem có thể làm nhanh đk k ah?

 136020_1111.jpg

Yêu cầu:

 

1.       Quét cả hình để ra đk kích thước bao (giống như lệnh qdim), làm tròn số.

2.       Chọn đối tượng tiền tố

3.       So sánh 2 giá trị , chọn giá trị bé đứng trước lớn đứng sau, phân cách bởi dấu “x”

4.       Xuất kết quả:  “tiền tố x gtri nhỏ x giá trị lớn”

 

Làm sao có thể gộp được các bước lại là chi cần quét hình và chọn tiền tố là ra kết quả thì tốt.

 

Em xin cảm ơn !!!

 

 


  • 0

#2 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 11 October 2014 - 10:00 AM

Kích thước có sẵn hay sao? tấm là pline hay cái gì? bạn đwa file mẫu mới biết dc.
  • 1

#3 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 11 October 2014 - 11:21 AM

kích thước không có sẵn ah. e chỉ có hình k thui, kích thước mình p tự đo nên mới mất nhiều thời gian. hình là các đường line đơn giản thui ah.


  • 0

#4 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 11 October 2014 - 11:24 AM

hinh mẫu thì bác có thể vẽ một biên dạng bất kỳ bằng các đường line đơn giản tạo thành một đối tượng kin là ok ah.


  • 0

#5 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 11 October 2014 - 11:40 AM

Line thì khó ah, nếu là pline thì bạn có thể quét 1000 cái pline xuất ra kết quả luôn, còn line thì bạn chỉ có thể quét từng cụm một và quét 1000 lần. Trên CV có lsp nối line thành pline, bạn nên làm cái công đoạn đó trước thì tốt cho bạn hơn. Tôi sẽ viết lsp chạy từ pline, ok?


  • 1

#6 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 11 October 2014 - 01:35 PM

ok bác. e biết cách chuuyển về pline rui. bác xem file dinh kèm xem như vậy có dk k nhe? thanks bác nhiều !!!


  • 0

#7 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 11 October 2014 - 01:36 PM

file đây ạ

 http://www.cadviet.c...e_tham_khao.dwg


  • 0

#8 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 11 October 2014 - 03:21 PM

Bạn thử cái này. Có thêm yêu cầu là cái text nên nổ thành text chứ đừng để mtext, và phải nằm bên trong tấm.

Gõ lệnh rồi quét hết các pline.

(vl-load-com)
(defun c:gkt (/ minp maxp txt cao pt pt1 pt2 h w get)
  (defun midp (d1 d2) (polar d1 (angle d1 d2) (* 0.5 (distance d1 d2))))
  (defun dxf(id v) (cdr (assoc id (entget v))))
  (defun getkt (lst)
    (defun near (l ham dau) (car (vl-sort l '(lambda (x y) (dau (ham x) (ham y))))))
    (list (near (vl-remove-if-not '(lambda (x) (equal (car x) (apply 'min (mapcar 'car lst)))) lst) cadr >)
 (near (vl-remove-if-not '(lambda (x) (equal (car x) (apply 'max (mapcar 'car lst)))) lst) cadr >) 
 (near (vl-remove-if-not '(lambda (x) (equal (cadr x) (apply 'min (mapcar 'cadr lst)))) lst) car >)
 (near (vl-remove-if-not '(lambda (x) (equal (cadr x) (apply 'max (mapcar 'cadr lst)))) lst) car >)
    )
  )
  
  (setq os (getvar 'osmode)) (setvar 'osmode 0)
  (foreach v (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "LWPOLYLINE"))))))
    (vla-getBoundingBox (vlax-ename->vla-object v) 'minp 'maxp)
    (setq minp (vlax-safearray->list minp)
 maxp (vlax-safearray->list maxp))
    (if (setq txt (ssget "C" minp maxp '((0 . "*TEXT"))))
      (progn
(setq cao (* 2 (cdr (assoc 40 (entget (setq txt (ssname txt 0))))))
     pt (polar (midp minp (list (car maxp) (cadr minp))) (* 0.5 pi) (- cao))
     pt1 (polar (midp maxp (list (car minp) (cadr maxp))) (* 0.5 pi) cao)
     pt2 (polar (midp maxp (list (car maxp) (cadr minp))) 0 cao)
     h  (abs (- (cadr maxp) (cadr minp))) 
     w  (abs (- (car maxp) (car minp)))       
     get (getkt (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget v))))
)
(command "dimlinear" (car get) (cadr get) pt1)
(command "dimlinear" (nth 2 get) (last get) pt2)
(entmake (list '(0 . "TEXT") (cons 10 pt)  (cons 11 pt) (cons 71 0) (cons 40 (* 0.5 cao)) (cons 73 3) (cons 72 1)
      (cons 1 (strcat (dxf 1 txt) "x" (rtos (min h w) 2 0) "x" (rtos (max h w) 2 0)))))
    ))
  )
  (setvar 'osmode os) (princ) 
)
 

  • 1

#9 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 12 October 2014 - 08:40 AM

Dear a,

 

E cảm ơn a đã nhiệt tình giúp đỡ, nhưng e k chạy đk lisp này. khi gõ lệnh thì hiện ra lỗi này ah.

 

136020_loi_cad.jpg

 

a có thể giúp e ktra lại đk k ah? e cảm ơn a nhiều !!!


  • 0

#10 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 12 October 2014 - 10:35 AM

Bạn chỉ quét chọn pline thôi, các text tiền tố lsp sẽ tự bắt.
À có thể do chức năng down của cv bị lỗi, bạn xem và xoá hết các ký tự lạ trong file lsp.

Hoặc down lại :

http://www.cadviet.c.../127168_gkt.rar


  • 1

#11 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 12 October 2014 - 02:05 PM

vẫn không đk đâu a ah. e tai về thì đk ctrinh nhu thế này đúng k ah?

 

136020_chuongtrinh_gkt.jpg

 

nhưng khi appload xong thi cad không nhận lệnh.

 

136020_loi_gkt.jpg

 

a ktra lại giúp e vs a. thanks a !!!


  • 0

#12 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 12 October 2014 - 02:33 PM

O cty e dang dùng cad LT bản quyền. liêụ có ảnh hưởng k ah?


  • 0

#13 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 12 October 2014 - 02:36 PM

Cad LT là phiên bản không cho sử dụng lsp,  bạn nên xài cad thường thôi. Hèn gì ko chạy dc.


  • 0

#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5454 Bài viết
Điểm đánh giá: 2626 (tuyệt vời)

Đã gửi 12 October 2014 - 03:50 PM

Cad LT là phiên bản không cho sử dụng lsp,  bạn nên xài cad thường thôi. Hèn gì ko chạy dc.

Đóng góp thêm tí: tôi hồi trước có sử dụng Cad LT, đụng Lisp là bị lỗi. Nó chỉ hiểu 1 số hàm thôi, còn thì nó không hiểu.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#15 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 12 October 2014 - 04:04 PM

Vì vấn đề giá thành ( cad lt 2015 = 1200$ ; cad 2015 = 4200$) nên nhiều cty vẫn mua lt vì nghĩ nhân viên ko cần dùng lsp hay vba làm gì.
  • 0

#16 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 12 October 2014 - 04:10 PM

vì cty phải mua bản quyền cad nên toàn mua cad LT thui vì thằng này nó rẻ hơn thằng Cad full. chán quá mất thui. Cad LT e vẫn chạy đk các lisp bt mà. bên e vẫn có 1 kho cac lisp. 


  • 0

#17 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 12 October 2014 - 04:17 PM

Lieu có Cách nào sửa đk lsp để ứng dụng cho cad LT k ah?


  • 0

#18 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 12 October 2014 - 04:25 PM

Tôi ko xài LT nên ko biết cái nào xài dc cái nào ko dc. Cty ban ko cho cài cad lụi sao?
  • 1

#19 tuandoosan

tuandoosan

    biết vẽ ellipse

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

Đã gửi 12 October 2014 - 04:45 PM

k a ah. cty 100% dùng CAD LT hết a ah. tối e về chạy thử máy ở nhà xem tn. dù sao e cũng cảm ơn a nhiều. chúc a một ngày làm việc tốt lanh nhe !!


  • 0

#20 Tot77

Tot77

    biết lệnh adcenter

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

Đã gửi 12 October 2014 - 04:49 PM

Hôm nay chủ nhật mà. có làm gì đâu.
Bạn xem cái này
http://iworld.com.vn...ong-autocad-lt/
  • 0