Chuyển đến nội dung
Diễn đàn CADViet
buiquangnam

[Yêu cầu] viết lisp thống kê bản vẽ

Các bài được khuyến nghị

Chao cac anh chi tren dien dan.

xin nhờ các cao thủ viết dùm tôi cái lisp sau:

Tôi có block ban vẽ sau(xem bản vẽ đính kèm), nhờ các bác viết hộ lisp để thống kê tên các bản vẽ(danh mục bản vẽ)lâu nay tôi toan làm thủ công mất thời gian quá.

Xin chân thành cảm ơn.

http://www.cadviet.com/upfiles/2/bang_danh_muc_bv.dwg

  • Like 1
  • Vote giảm 2

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
Xin moi nguoi giup do

Thực ra việc tạo danh mục bản vẽ là cái mình đã muốn làm từ lâu nhưng thứ nhất chưa có thời gian, thứ 2 là mình muốn phát triển rộng hơn là: Giống như chức năng tạo mục lục bản vẽ của Sheet set khi click vào mục mục này nó sẽ mở luôn file có chứa bản vẽ đó (vì có thể 1 công trình mình làm trên khá nhiều file, trong đó có các file để trong thư viện). Cái sheet set có cái bất tiện là phải làm trên layout, mỗi layout lại chỉ nên có 1 khung in. Như vậy việc thiết lập khá phiền nhiễu. Mình muốn làm cái mục lục bản vẽ nhận được tất cả các bản vẽ trong layout và trong model luôn, số lượng bản vẽ không giới hạn trong 1 layout. Các thông tin bản vẽ được link với mục lục, nghĩa là khi ta thay đổi tên, ký hiệu, số thứ tự ở mục lục thì bản vẽ thay đổi theo và ngược lại. Có như thế mới thấy thực sự hoàn thiện. Vấn đề là thời gian chưa có để làm cái này :undecided: . Có ai đã từng làm cái này chưa cho anh em chút kinh nghiệm.

  • Vote tăng 2

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
Thực ra việc tạo danh mục bản vẽ là cái mình đã muốn làm từ lâu nhưng thứ nhất chưa có thời gian, thứ 2 là mình muốn phát triển rộng hơn là: Giống như chức năng tạo mục lục bản vẽ của Sheet set khi click vào mục mục này nó sẽ mở luôn file có chứa bản vẽ đó (vì có thể 1 công trình mình làm trên khá nhiều file, trong đó có các file để trong thư viện). Cái sheet set có cái bất tiện là phải làm trên layout, mỗi layout lại chỉ nên có 1 khung in. Như vậy việc thiết lập khá phiền nhiễu. Mình muốn làm cái mục lục bản vẽ nhận được tất cả các bản vẽ trong layout và trong model luôn, số lượng bản vẽ không giới hạn trong 1 layout. Các thông tin bản vẽ được link với mục lục, nghĩa là khi ta thay đổi tên, ký hiệu, số thứ tự ở mục lục thì bản vẽ thay đổi theo và ngược lại. Có như thế mới thấy thực sự hoàn thiện. Vấn đề là thời gian chưa có để làm cái này :undecided: . Có ai đã từng làm cái này chưa cho anh em chút kinh nghiệm.

 

Vụ này tôi đã từng đề cập

Hãy tham khảo tại đây

ACA 2009

 

Giải pháp với ACA trong cùng Model hoặc Layout đều toàn diện

Hoặc với Sheet Shet cũng rất tuyệt vời

 

Trong trường hợp dùng CAD thì việc lập Danh mục cũng không tốn thời gian mấy

Hãy sử dụng Extract Attribute có sẵn trong CAD

  • Vote tăng 1

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

Vụ này tôi đã từng đề cập

Hãy tham khảo tại đây

ACA 2009

 

Giải pháp với ACA trong cùng Model hoặc Layout đều toàn diện

Hoặc với Sheet Shet cũng rất tuyệt vời

Trong trường hợp dùng CAD thì việc lập Danh mục cũng không tốn thời gian mấy

 

 

Cảm ơn bạn "trinhvqh" rất nhiều nhưng mình muốn thao tác trên cad chứ ACA mình kô rõ lắm. Nếu được xin nhờ bạn và các cao thủ bớt chút thời gian viết hộ mình lisp như trên được kô(dựa vào block khung ten đính kèm ở trên)?

Cảm ơn rất 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
Vụ này tôi đã từng đề cập

Hãy tham khảo tại đây

ACA 2009

 

Giải pháp với ACA trong cùng Model hoặc Layout đều toàn diện

Hoặc với Sheet Shet cũng rất tuyệt vời

 

Trong trường hợp dùng CAD thì việc lập Danh mục cũng không tốn thời gian mấy

Hãy sử dụng Extract Attribute có sẵn trong CAD

Xin Bác trinhvqh up bản vẽ demo khung tên trong cái video clip bác đã post tại ACA 2009 . Tkx

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
Xin Bác trinhvqh up bản vẽ demo khung tên trong cái video clip bác đã post tại ACA 2009 . Tkx

 

Tôi đã Post lên bên ACA để dễ hệ thống

Bạn chịu khó sang đó down nhé

  • Vote tăng 1

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
Cảm ơn bạn "trinhvqh" rất nhiều nhưng mình muốn thao tác trên cad chứ ACA mình kô rõ lắm. Nếu được xin nhờ bạn và các cao thủ bớt chút thời gian viết hộ mình lisp như trên được kô(dựa vào block khung ten đính kèm ở trên)?

Cảm ơn rất nhiều

 

Về Lisp thì tôi không rành

Các cao thủ khác sẽ giúp bạn

Nhưng với CAD bạn dùng lệnh: eattext để xuất table sang exel cũng không mất thời gian lắm

Sau đó copy dán vào cad

 

Lưu ý rằng Cột nội dung bạn nên gộp 02 single Text thành Mutiline Text

Thê nhé

Bạn xài tạm trong khi chờ đợi các Lisp ra tay

http://www.cadviet.com/upfiles/2/kt_attribute.rar

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
Về Lisp thì tôi không rành

Các cao thủ khác sẽ giúp bạn

Nhưng với CAD bạn dùng lệnh: eattext để xuất table sang exel cũng không mất thời gian lắm

Sau đó copy dán vào cad

 

Lưu ý rằng Cột nội dung bạn nên gộp 02 single Text thành Mutiline Text

Thê nhé

Bạn xài tạm trong khi chờ đợi các Lisp ra tay

http://www.cadviet.com/upfiles/2/kt_attribute.rar

Anh trinhvqh nói đúng. Em bổ sung thêm 2 lệnh nữa giúp tiện dụng hơn eattext là

 

1. ATTOUT: Khi đánh lệnh này bạn chọn các block khung tên. Nó sẽ cho ra 1 dãy các thuộc tính vào 1 file *.txt. Bạn có thể sửa thông tin các bản vẽ tại file này như đánh lại STT cho đúng (nó xuất theo thứ tự tạo khung tên), chỉnh lại các nội dung khác của khung tên cho hợp lý....

2. ATTIN: Sau khi bạn đã sửa file *.txt này rồi bạn muốn cập nhật lại vào trong bản vẽ bạn dùng đến lệnh này.

 

Cuối cùng bạn có thể copy nội dung của file *.txt này để đưa vào mục lục bản vẽ. Để liên kết mục lục với file bản vẽ ( có thể 1 công trình gồm nhiều file bản vẽ) bạn có thể dùng lệnh HYPERLINK.

 

Nếu làm bằng lisp tất nhiên là tiện hơn nhưng... phải chờ thôi...

  • Vote tăng 1

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
Đã viết xong Lisp thống kê tên các bản vẽ , nhưng ngại vấn đề bảo hành và link như ý của Nataca nên chưa post lên.

Ban chạy thử và cho ý kiến.

(defun c:draw_name (/ att doc i kyhieu lst lstatt msp pt row ss tblobj ten) ;Bang ten ban ve
;;  By : Gia Bach, Copyrightゥ December 2009                   ;;
;;  Contact : gia_bach @  www.CadViet.com                     ;;
 (defun VxGetAtts (Obj)
 (mapcar
   '(lambda (Att)
      (cons (vla-get-TagString Att)
     (vla-get-TextString Att) ) )
   (vlax-invoke Obj 'GetAttributes) ))
 (if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0) (progn

 (if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 66 1)(cons 2 "KHUNG CHUAN SEICO"))))
   (progn
     (vl-load-com)
     (setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
    msp (vla-get-modelspace doc))
     (foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(setq lstAtt (VxGetAtts (vlax-ename->vla-object e))
      kyhieu (cdr (assoc "DWNNO" lstAtt))
      ten (cdr (assoc "DRAWING1" lstAtt)))
(setq lst (cons (cons kyhieu ten) lst))	   )
     (setq lst (vl-sort lst '(lambda (x y) (< (car x) (car y)) ) ))
     (setq i 1
    row 2
    pt (getpoint "\nDiem dat Bang :")
    TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst) 2) 3 15 100))
     (vla-put-vertcellmargin TblObj 4)
     (vla-SetColumnWidth TblObj 0 50)
     (mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))
      (list acTitleRow acHeaderRow acDataRow)	      )
     (mapcar '(lambda (x)(vla-setAlignment TblObj x 2))
      (list acTitleRow acHeaderRow acDataRow))
     (vla-setText TblObj 0 0 "list of drawings")      
     (vla-setText TblObj 1 0 "STT")
     (vla-setText TblObj 1 1 "Ten ban e")
     (vla-setText TblObj 1 2 "Ky hieu")
     (foreach pt lst
(vla-setText TblObj row 0 (itoa i))
(vla-setText TblObj row 1 (cdr pt))
(vla-setText TblObj row 2 (car pt))
(setq row (1+ row) i (1+ i))
)
     (vlax-release-object TblObj)
     (princ)  )  )  )
 (alert "\nPhien ban Cad cua ban khong ho tro tao Bang (TABLE)")
 ))

 

 

Cảm ơn bạn nhiều. nhưng bạn làm ơn chỉ rõ cách dùng được không

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
Thế là sao nhỉ ? Tui bị lạc đề à ? bạn làm tui hoang mang quá !

chỉ rõ cách dùng : chi mà to tát thế, Load and Run only.

 

Nếu bạn chưa biết cách sử dụng Lisp : Tham khảo Hướng dẫn sử dụng mã Lisp, từ code trên CADViet.com

 

 

Trời?? load and run only thì cũng phải có câu lệnh là gì? chứ? cứ load xong là nó tự chay ra bảng danh mục ah??? ý mình muốn hỏi là câu lệnh là gi thao tác thế nào?

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
Trời?? load and run only thì cũng phải có câu lệnh là gì? chứ? cứ load xong là nó tự chay ra bảng danh mục ah??? ý mình muốn hỏi là câu lệnh là gi thao tác thế nào?

Thanks.

Làm ơn đọc kỹ bài của bác Hoành : Hướng dẫn sử dụng mã Lisp, từ code trên CADViet.com

 

- câu lệnh là gì : Hướng dẫn sử dụng mã Lisp, từ code trên CADViet.com, cũng 1 bài là có hết.

 

Tự thân vận động truớc khi cầu cứu đến "TRỜI".

You will never be successful until ...

  • Vote tăng 1

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
Làm ơn đọc kỹ bài của bác Hoành : Hướng dẫn sử dụng mã Lisp, từ code trên CADViet.com

 

- câu lệnh là gì : Hướng dẫn sử dụng mã Lisp, từ code trên CADViet.com, cũng 1 bài là có hết.

 

Tự thân vận động truớc khi cầu cứu đến "TRỜI".

You will never be successful until ...

 

Đọc roài nhưng vẫn kô dùng được(load xong su dung lenh nhu trong lisp cad ko hiu gi ca) thoai bạn bớt chút thời gian chỉ cụ thể đi đã thương thì thương cho trọn....hic...

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
* Để biết tên lệnh là gì?

Bạn mở file lsp ra, tìm đến các dòng mã (defun c:, phía sau c: là tên lệnh.

Ví dụ: (defun c:NOILINE thì tên lệnh là NOILINE.

 

(defun c:draw_name

-> tên lệnh là draw_name

 

bạn mở file CAD bang_danh_muc_bv.dwg

- load Lisp

- gõ lệnh : draw_name -> enter

Diem dat Bang : -> pick 1 điểm bất kỳ -> xem kết quả.

 

(chú ý : LISP chỉ chạy trên file CAD bang_danh_muc_bv.dwg

hay file CAD có block "KHUNG CHUAN SEICO")

 

Được rồi hay quá thanks bạn rất nhiều. Nhưng có 1 lỗi xảy ra là nó chỉ hiểu đến bản vẽ thứ 100, nếu quá thì no đảo lộn ngược vị trí(như trong bản vẽ) bạn có thể khắc phục giúp mình được không?

http://www.cadviet.com/upfiles/2/bang_danh_muc_bv_1.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
Được rồi hay quá thanks bạn rất nhiều. Nhưng có 1 lỗi xảy ra là nó chỉ hiểu đến bản vẽ thứ 100, nếu quá thì no đảo lộn ngược vị trí(như trong bản vẽ) bạn có thể khắc phục giúp mình được không?

http://www.cadviet.com/upfiles/2/bang_danh_muc_bv_1.dwg

 

Đôi lúc "sự nhầm nhây" cũng sinh ra nhiều cái hay

Hôm qua đến giờ, tôi cứ cười thầm về những thắc mắc đơn giản về cách load lệnh đến nỗi phải kêu Trời

gia_bach cũng "nén giận" để giải thích

 

Nhưng mọi việc thật sự phải làm người ta giật mình vì những trường hợp cụ thể xảy ra về Thứ tự bản vẽ

Cảm ơn bạn và hãy cứ tiếp tục thắc mắc nhé!

(Hy vọng gia_bach sẽ giải quyết vấn đề này cho bạn)

 

Về phần tôi cũng đã Fit lỗi Khung tên cho anh em ACA rồ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
Được rồi hay quá thanks bạn rất nhiều. Nhưng có 1 lỗi xảy ra là nó chỉ hiểu đến bản vẽ thứ 100, nếu quá thì no đảo lộn ngược vị trí(như trong bản vẽ) bạn có thể khắc phục giúp mình được không?

http://www.cadviet.com/upfiles/2/bang_danh_muc_bv_1.dwg

Để Tue_NV giúp anh gia_bach một tay nhé :

Các bạn chạy lại code thử và góp ý nhé :

(defun c:draw_name (/ att doc i kyhieu lst lstatt msp pt row ss tblobj ten) ;Bang ten ban ve
;; By : Gia Bach, Copyright- December 2009 ;;
;; Contact : gia_bach @ www.CadViet.com ;;
(defun VxGetAtts (Obj)
(mapcar
'(lambda (Att)
(cons (vla-get-TagString Att)
(vla-get-TextString Att) ) )
(vlax-invoke Obj 'GetAttributes) ))
(if (> (atof (substr (getvar "ACADVER") 1 4)) 16.0) (progn

(if (setq ss (ssget "_A"(list (cons 0 "INSERT")(cons 66 1)(cons 2 "KHUNG CHUAN SEICO"))))
(progn
(vl-load-com)
(setq doc (vla-get-ActiveDocument (vlax-get-Acad-Object))
msp (vla-get-modelspace doc))
(foreach e (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
(setq lstAtt (VxGetAtts (vlax-ename->vla-object e))
kyhieu (cdr (assoc "DWNNO" lstAtt))
ten (cdr (assoc "DRAWING1" lstAtt)))
(setq lst (cons (cons kyhieu ten) lst)) )
(setq lst (vl-sort lst '(lambda (x y) ((atoi (substr (car y) 4 (- (strlen (car y)) 3)))
) ) ))
(setq i 1
row 2
pt (getpoint "\nDiem dat Bang :")
TblObj (vla-addtable msp (vlax-3d-point pt) (+ (length lst) 2) 3 15 100))
(vla-put-vertcellmargin TblObj 4)
(vla-SetColumnWidth TblObj 0 50)
(mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))
(list acTitleRow acHeaderRow acDataRow) )
(mapcar '(lambda (x)(vla-setAlignment TblObj x 2))
(list acTitleRow acHeaderRow acDataRow))
(vla-setText TblObj 0 0 "list of drawings") 
(vla-setText TblObj 1 0 "STT")
(vla-setText TblObj 1 1 "Ten ban e")
(vla-setText TblObj 1 2 "Ky hieu")
(foreach pt lst
(vla-setText TblObj row 0 (itoa i))
(vla-setText TblObj row 1 (cdr pt))
(vla-setText TblObj row 2 (car pt))
(setq row (1+ row) i (1+ i))
)
(vlax-release-object TblObj)
(princ lst) ) ) )
(alert "\nPhien ban Cad cua ban khong ho tro tao Bang (TABLE)")
))

@anh gia_bach : Hàm vl-sort nó sắp xếp các kí tự chuỗi theo alphabet.

Ví dụ như List :

(setq L (list "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12" "98" "99" "100"))

 

khi sử dụng vl-sort nó sắp xếp các kí tự chuỗi theo alphabet.

=> Kết quả sẽ trả về như thế này thì không theo ý của User

("1" "10" "100" "11" "12" "2" "3" "4" "5" "6" "7" "8" "9" "98" "99")

-> Nó ưu tiên sắp xếp kí tự "1.." trước mà anh

 

Nhưng khi ta set nó về số thì sẽ đúng theo ý User

.Ví dụ :

(setq L (list 1 2 3 4 5 6 7 8 9 10 11 12 99 100))

(vl-sort L '

(1 2 3 4 5 6 7 8 9 10 11 12 99 100)

thì khi sử dụng vl-sort theo ý của mình nên em đã sử dụng hàm atoi để chuyển chuõi kí tự về dạng số rồi so sánh chúng với nhau để theo ý của mình

 

Anh gia_bach cho Tue_NV hỏi thêm về chổ này một chút :

(mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))

(list acTitleRow acHeaderRow acDataRow) )

(mapcar '(lambda (x)(vla-setAlignment TblObj x 2))

(list acTitleRow acHeaderRow acDataRow))

 

4 mã code này em chưa rõ ý nghĩa của nó lắm. Anh có thể giải thích dùm em 1 chút nhé.

Cảm ơn anh

Chỉnh sửa theo Tue_NV
Đã sửa lại lỗi sắp xếp theo thứ tự của Code. Các bạn kiểm tra dùm nhé.

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

Tue_NV đã khắc phục được rồi đấy!

Nhưng thật lạ kỳ

"Khắc phục xong cái này, thì lại phát sinh cái lố bịch khác"

...

Nhưng thôi

Bây giờ khuya rồi

Tôi mà nói ra nữa thì e các "cao thủ líp" lại "nổi quáu"

Như thế vô tình "Tội lỗi, tội lỗi"

...

Chúc ngủ ngon để sáng mai phục vụ bà con

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
Tue_NV đã khắc phục được rồi đấy!

Nhưng thật lạ kỳ

"Khắc phục xong cái này, thì lại phát sinh cái lố bịch khác"

...

Nhưng thôi

Bây giờ khuya rồi

Tôi mà nói ra nữa thì e các "cao thủ líp" lại "nổi quáu"

Như thế vô tình "Tội lỗi, tội lỗi"

...

Chúc ngủ ngon để sáng mai phục vụ bà con

Đã sửa xong lỗi ở bài viết số 19. Bác Trinhvqh, bạn BuiquangNam và các bạn kiểm tra dùm Tue_NV và cho ý kiến nhé.

  • Vote tăng 1

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
Đã sửa xong lỗi ở bài viết số 19. Bác Trinhvqh, bạn BuiquangNam và các bạn kiểm tra dùm Tue_NV và cho ý kiến nhé.

 

Ly cà phê sáng bao giờ cũng cho một cảm giác sảng khoái phải k nhỉ!

Lisp sửa sang lại chạy rất tuyệt!

Đặc biệt là rất ổn trong việc nhận dạng và sắp xếp thứ tự theo số

....

Nhưng vẫn còn một chút phải băn khoăn:

- Đầu tiên, đề nghị Tue_NV sửa luôn "Ten ban e" thành "Ten ban ve". Việc này nhỏ nhưng sẽ làm người dùng dễ chịu hơn.

- Việc thứ 2, là nên thêm một dòng bản quyền: composed by gia_bach and developed by Tue_NV

- Việc thứ 3, đề nghị đổi tên lệnh "draw_name" thành "mlbv" (Cái này góp ý thôi còn tuỳ tác giả)

- Việc thứ 4 là việc chính:

 

Vẫn biết rằng LISP này của các bạn nhằm mục đích giải quyết vấn đề cụ thể của "buiquangnam"

Nhưng mọi người có thể xào nấu vào áp dụng được

 

Trong trường hợp bạn là một kỹ sư nước

Bản vẽ sẽ bao gồm các phần: CN (cấp nước); TN (thoát nước); NM (nước mặt)

Theo quan sát thì họ sẽ vẽ chung trong một bản vẽ

Lúc đó LISP này sẽ xảy ra lố bịch đó là: Sắp xếp bản vẽ theo số thứ tự ưu tiên chứ không phân loại ra từng bộ môn

 

Như vậy, các cao thủ hãy bổ sung:

- Sắp xếp Bộ môn ưu tiên

- Sắp xếp số bản vẽ ưu tiên

 

Chúc sức khoẻ!

  • Vote tăng 1

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
................................

@anh gia_bach : Hàm vl-sort nó sắp xếp các kí tự chuỗi theo alphabet.

.................

thì khi sử dụng vl-sort theo ý của mình nên em đã sử dụng hàm atoi để chuyển chuõi kí tự về dạng số rồi so sánh chúng với nhau để theo ý của mình

 

Anh gia_bach cho Tue_NV hỏi thêm về chổ này một chút :

(mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))

(list acTitleRow acHeaderRow acDataRow) )

(mapcar '(lambda (x)(vla-setAlignment TblObj x 2))

(list acTitleRow acHeaderRow acDataRow))

 

4 mã code này em chưa rõ ý nghĩa của nó lắm. Anh có thể giải thích dùm em 1 chút nhé.

Cảm ơn anh

Về mặt ý tuởng, bạn đã đi đúng huớng và giải quyết đuợc vấn đề cụ thể của BuiquangNam.

Tuy nhiên, lại 1 lần nữa, "vấn đề đã không đuợc giải quyết rốt ráo" (Copyright by Mr. Perfect) :undecided:

vì (atoi "01-1"), (atoi "01-10"), (atoi "01-100") ... đều cho kết quả là 1.

 

(mapcar '(lambda (x)(vla-setTextHeight TblObj x 5))

(list acTitleRow acHeaderRow acDataRow) )

tương đuơng với 3 dòng sau :

(vla-setTextHeight TblObj acTitleRow 5)

(vla-setTextHeight TblObj acHeaderRow 5)

(vla-setTextHeight TblObj acDataRow 5)

 

vì cùng set giá trị là 5 nên gộp vào dùng Mapcar cho gọn.

Mapcar hay ở chỗ gọn nhưng hơi khó đọc.

 

Vì thời gian này tui hơi bận, các bạn nào có khả năng vui lòng bổ sung và hoàn thiện LISP thống kê bản vẽ giùm.

Chân thành cám ơn.

..................

Trong trường hợp bạn là một kỹ sư nước

Bản vẽ sẽ bao gồm các phần: CN (cấp nước); TN (thoát nước); NM (nước mặt)

Theo quan sát thì họ sẽ vẽ chung trong một bản vẽ

Lúc đó LISP này sẽ xảy ra lố bịch đó là: Sắp xếp bản vẽ theo số thứ tự ưu tiên chứ không phân loại ra từng bộ môn

 

Như vậy, các cao thủ hãy bổ sung:

- Sắp xếp Bộ môn ưu tiên

- Sắp xếp số bản vẽ ưu tiên

.....................

To : trinhvqh

Tui đã thấy vấn đề này nhưng thời gian không cho phép.

Còn nhiều vấn đề nửa như :

- cho phép User chọn Block thuộc tính cần trích xuất.

- cho phép User chọn Tag cần trích xuất.

- trích xuất nhiều hơn 2 thuộc tính.

..................

Cám ơn sự góp ý của bạn.

  • Vote tăng 1

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

các bác cho em hỏi, bây giờ muốn dùng lish draw_name cho một blob khung tên khác thì làm thế nào?? lish này có dùng được cho bất cứ blob nào không hay cứ phải là att! mong các cao thủ sớm hoàn thiện lish! thank

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
To : trinhvqh

Tui đã thấy vấn đề này nhưng thời gian không cho phép.

Còn nhiều vấn đề nửa như :

- cho phép User chọn Block thuộc tính cần trích xuất.

- cho phép User chọn Tag cần trích xuất.

- trích xuất nhiều hơn 2 thuộc tính.

..................

Cám ơn sự góp ý của bạn.

 

Sáng nay có post 01 bài nhưng không hiểu vì lý do gì bây giờ nhìn chẳng thấy đâu nữa

Các cao thủ Lisp vui long hieu rang những thắc mắc của người dùng như là "một phản xạ tự nhiên"

chứ chẳng phải có ý "làm khó" hay "đánh đố" gì ở đây cả

(Thắc mắc của "duonghung1210" bên trên là một minh chứng vậy)

 

@gia_bach:

Cũng giống như Pid.lsp. Câu trả lời là "vấn đề thời gian"

Với draw_name.lsp. Câu trả lời là "thời gian không cho phép"

 

Còn nếu thắc mắc dồn dập một chút nữa thì:

"Bạn là người cầu toàn"

"Ai có súng dùng súng, ai có ô tô dùng ô tô"

 

Bó tay, Tui không biết phải sống sao cho phải đây :undecided:

  • Vote tăng 1

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
Sáng nay có post 01 bài nhưng không hiểu vì lý do gì bây giờ nhìn chẳng thấy đâu nữa

Các cao thủ Lisp vui long hieu rang những thắc mắc của người dùng như là "một phản xạ tự nhiên"

chứ chẳng phải có ý "làm khó" hay "đánh đố" gì ở đây cả

(Thắc mắc của "duonghung1210" bên trên là một minh chứng vậy)

 

@gia_bach:

Cũng giống như Pid.lsp. Câu trả lời là "vấn đề thời gian"

Với draw_name.lsp. Câu trả lời là "thời gian không cho phép"

 

Còn nếu thắc mắc dồn dập một chút nữa thì:

"Bạn là người cầu toàn"

"Ai có súng dùng súng, ai có ô tô dùng ô tô"

 

Bó tay, Tui không biết phải sống sao cho phải đây :undecided:

Đúng rồi mà anh. Đây là diễn đàn Free, anh em giúp nhau là chính. Rỗi thì giúp được, không rỗi thì đành phải chấp nhận thôi vì ai cũng phải kiếm cái cơm bỏ vào mồm. Ngay cả anh bỏ tiền ra mua chưa chắc đã được cái như anh muốn đâu.

  • Vote tăng 1

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
@gia_bach:

Cũng giống như Pid.lsp. Câu trả lời là "vấn đề thời gian"

Với draw_name.lsp. Câu trả lời là "thời gian không cho phép"

 

Còn nếu thắc mắc dồn dập một chút nữa thì:

"Bạn là người cầu toàn"

"Ai có súng dùng súng, ai có ô tô dùng ô tô"

 

Bó tay, Tui không biết phải sống sao cho phải đây :undecided:

Anh nên kiếm "chú dế" mà chơi anh ạ.

Không thông cảm cho nhau được thì chỉ có thế mà thôi

  • Vote tăng 1

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
Anh nên kiếm "chú dế" mà chơi anh ạ.

Không thông cảm cho nhau được thì chỉ có thế mà thôi

 

Bình thường tôi không phải là người đua đòi

Nhưng dạo này thấy thiên hạ bàn chuyện "Ô tô" nhiều quá

Nên muốn "góp vui chút đỉnh"

Ai ngờ...

:undecided:

 

Tôi nghĩ với một "tay lái cừ khôi" thì việc tối hậu là phải giữ được bình tĩnh

Chứ thiên hạ mới "lả lướt" vài đường mà "cục giận" nhảy lên e rằng gây "nguy hiểm bản thân

 

Chúc bình an!

:undecided:

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

ui! sao các bác có vẻ căng thẳng thế? :undecided: :undecided:

nhờ các bác sửa lại các lish trên cho khung tên này hộ em cái, em lọ mọ mãi không được!

http://www.cadviet.com/upfiles/2/danh_muc.dwg

cảm ơn các bác! :undecided: :cheers:

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

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×