Đến nội dung


Hình ảnh

Ý TƯỞNG MỚI


  • Please log in to reply
22 replies to this topic

#1 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 04 September 2007 - 10:33 AM

Tôi lập topic này để ai có ý tưởng mới phục vụ cho công viêt thì post vào đây để anh em triển
khai.
Thứ nhất về thiết kế trạm xử lý
Thứ 2 về thiết kế tuyến ống
Thứ 3 về cấp nước trong nhà
thứ 4 về các bản vẽ thiết kế cơ sở
các bro có nên lập 1 thư viện các công trình cụm xử lý đã thiết kế hay không?
quản lý thư viện như thế nào?
mong anh em có ý kiến nhé
Trước hết tôi có 1 ý tưởng thế này:
trong bản vẽ thiết kế cụm xử lý, thỉnh thoảng ta có sử dụng bản vẽ cũ và sửa lại cao độ, vậy nên nhờ các bro viết chương trình tự cập nhật các cao độ trong bản vẽ khi thay đổi cao độ gốc, bro nao có khả năng thì giúp dùm anh em nhé
thank
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#2 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 September 2007 - 11:53 AM

Tôi lập topic này để ai có ý tưởng mới phục vụ cho công viêt thì post vào đây để anh em triển
khai.
Thứ nhất về thiết kế trạm xử lý
Thứ 2 về thiết kế tuyến ống
Thứ 3 về cấp nước trong nhà
thứ 4 về các bản vẽ thiết kế cơ sở
các bro có nên lập 1 thư viện các công trình cụm xử lý đã thiết kế hay không?
quản lý thư viện như thế nào?
mong anh em có ý kiến nhé
Trước hết tôi có 1 ý tưởng thế này:
trong bản vẽ thiết kế cụm xử lý, thỉnh thoảng ta có sử dụng bản vẽ cũ và sửa lại cao độ, vậy nên nhờ các bro viết chương trình tự cập nhật các cao độ trong bản vẽ khi thay đổi cao độ gốc, bro nao có khả năng thì giúp dùm anh em nhé
thank

Bạn đọc bài viết về text ánh xạ giá trị:
http://www.cadviet.com/forum/index.php?showtopic=1515

đây là thứ bạn muốn!
  • 0

#3 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 04 September 2007 - 12:57 PM

Bạn đọc bài viết về text ánh xạ giá trị:
http://www.cadviet.com/forum/index.php?showtopic=1515

đây là thứ bạn muốn!

Bác Nguyen Hoanh có thể chỉ bảo cụ thể hơn một chút được không, ý tôi muốn thể hiện theo kiểu một bản vẽ có sẵn bây giờ tôi muốn sử dụng lại bản vẽ đó nhưng thay đổi cao độ của toàn bản vẽ
tôi muốn dùng ssget để quét các cao độ và tự động chỉnh sửa giá trị (cộng thêm hoặc trừ đi 1 giá trị cố định)
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#4 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 September 2007 - 01:04 PM

Bác Nguyen Hoanh có thể chỉ bảo cụ thể hơn một chút được không, ý tôi muốn thể hiện theo kiểu một bản vẽ có sẵn bây giờ tôi muốn sử dụng lại bản vẽ đó nhưng thay đổi cao độ của toàn bản vẽ
tôi muốn dùng ssget để quét các cao độ và tự động chỉnh sửa giá trị (cộng thêm hoặc trừ đi 1 giá trị cố định)

Tôi hiểu nhầm ý bạn.
Nếu toàn bộ giá trị được cộng thêm hay trừ đi 1 giá trị delta H cho trước thì bạn nên sử dụng lisp để làm điều này.
  • 0

#5 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 04 September 2007 - 01:17 PM

Tôi hiểu nhầm ý bạn.
Nếu toàn bộ giá trị được cộng thêm hay trừ đi 1 giá trị delta H cho trước thì bạn nên sử dụng lisp để làm điều này.

hic!
Biết rồi, nhưng làm thế nào mới nhờ Pác hướng dẫn chứ nhất là cái đoạn edit xong text rồi đặt nó lại chỗ cũ , pác tranh thu giúp chút nhé
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#6 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 04 September 2007 - 02:08 PM

hic!
Biết rồi, nhưng làm thế nào mới nhờ Pác hướng dẫn chứ nhất là cái đoạn edit xong text rồi đặt nó lại chỗ cũ , pác tranh thu giúp chút nhé

thôi pác ko giúp được từ đầu thì pác sửa cái này hộ tôi cũng được


(defun C:PRETX (/ sset len cnt ed en xscmde)
(setq xscmde (getvar "cmdecho")) ;get echo setvar
(setvar "cmdecho" 0) ;turn echo off
(setq str (getstring T "\n \nPrefix: ")) ;get prefix string
(setq cnt 0 sset (ssget)) ;select objects
(princ "\n \n.....Working......") ;clear command line
(setq len(sslength sset)) ;get length of set

(while (> len 0) ;while length > 0
(setq en (ssname sset 0)) ;get entity name
(setq ed(entget en)) ;get entity data
(if (= (cdr (assoc 0 ed)) "TEXT") ;if entity is text
(progn ;
(setq ed ;
(subst (cons 1 (strcat str (cdr(assoc 1 ed))));add prefix to text
(assoc 1 ed) ;
ed ;
) ;
) ;
(entmod ed) ;update database
(setq cnt(+ cnt 1)) ;count changes
) ;
) ;
(setq sset (ssdel en sset)) ;delete from set
(setq len(- len 1)) ;decrease length of set
) ;
(setvar "cmdecho" xscmde) ;reset echo to previous
(princ "\n ") ;
(princ "\nPrefixed ") ;
(princ cnt) ;print number of changes
(princ " Lines Of Text With ")(princ str) ;
(princ "\n ") ;
(princ) ;
) ; end


nhờ pác sửa đoạn thêm pretxt b đoạn cộng thêm giá trị real
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#7 thaiha175

thaiha175

    biết vẽ ellipse

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

Đã gửi 06 September 2007 - 12:20 AM

em xem cái ví dụ xạ trị hay xạ text gì đó không hiểu gì sất mà chưa thấy lợi ích gì cả ,các pác nào có vài cái bản vẽ mặt bằng trạm xử lí đẹp đẹp cho em xin vài cái tham khảo ,ít ý tưởng vẽ mặt bằng quá
  • 0
sống trên đời phải có 1 tấm lòng ,để gió cuốn đi

#8 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 06 September 2007 - 09:00 AM

thôi pác ko giúp được từ đầu thì pác sửa cái này hộ tôi cũng được
nhờ pác sửa đoạn thêm pretxt b đoạn cộng thêm giá trị real

Sửa một đống code thế này chịu!
Bạn hãy upload lên 1 file DWG mẫu, trong đó có 2 phần. 1 phần là số liệu gốc, 1 phần là số liệu mà bạn mong muốn lisp sẽ thực hiện cho bạn (phần kết quả).

Tránh tình trạng sau khi đã mất công viết lisp, lại không đúng ý của bạn muốn.
  • 0

#9 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 06 September 2007 - 10:01 AM

Sửa một đống code thế này chịu!
Bạn hãy upload lên 1 file DWG mẫu, trong đó có 2 phần. 1 phần là số liệu gốc, 1 phần là số liệu mà bạn mong muốn lisp sẽ thực hiện cho bạn (phần kết quả).

Tránh tình trạng sau khi đã mất công viết lisp, lại không đúng ý của bạn muốn.

ok
thực ra thì cũng khá đơn giản thôi
vì dụ như ở bản vẽ trước khi update thì cao độ 0.00 ở đáy bản vẽ còn sau khi thực hiện lệnh thì cao độ 0.00 ở giữa bản vẽ
Hình đã gửi

Hình đã gửi

đây là ví dụ đơn giản nhưng nếu bản vẽ có nhiều cao độ thì hiệu quả sẽ rõ ràng hơn
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#10 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 06 September 2007 - 11:15 AM

ok
thực ra thì cũng khá đơn giản thôi
vì dụ như ở bản vẽ trước khi update thì cao độ 0.00 ở đáy bản vẽ còn sau khi thực hiện lệnh thì cao độ 0.00 ở giữa bản vẽ
đây là ví dụ đơn giản nhưng nếu bản vẽ có nhiều cao độ thì hiệu quả sẽ rõ ràng hơn

Bạn nên send file DWG, nhìn qua ảnh không biết đối tượng của bạn là Text hay block Attribute, không biết dấu trừ tách ra khỏi chữ hay liền với giá trị của chữ.
  • 0

#11 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 06 September 2007 - 11:33 AM

Bạn nên send file DWG, nhìn qua ảnh không biết đối tượng của bạn là Text hay block Attribute, không biết dấu trừ tách ra khỏi chữ hay liền với giá trị của chữ.

hic
pác này làm khó nhau quá
hihi
tui gửi file đây
(hic cai máy đã yếu rồi, lại gửi đi gửi lai mất thời gian quá hic hic ...)
http://www.cadviet.com/upfiles/tam.dwg
rất mong pác giúp đõ nhé
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#12 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 06 September 2007 - 11:53 AM

hic
pác này làm khó nhau quá
hihi
tui gửi file đây
(hic cai máy đã yếu rồi, lại gửi đi gửi lai mất thời gian quá hic hic ...)
http://www.cadviet.com/upfiles/tam.dwg
rất mong pác giúp đõ nhé

Bạn mất thời gian 1 thì người viết lisp mất thời gian 10. Không nên than vãn.
Nhờ có file bạn gửi tôi mới hiểu đúng ý bạn, nếu không tự nhiên mất công viết ra 1 đống lisp rồi vứt đi.

Tên lệnh là DEH (deltaH):

(defun c:deh ()
(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 addstring (str so)
(rtos (+ (atof str) so) 2 2)
)
(defun addone (ent / tt)
(setq ent (entnext ent))
(setq tt (entget ent)
old (assoc 1 tt)
new (cons 1 (addstring (cdr old) deltah))
tt (subst new old tt)
)
(entmod tt)
(entupd ent)
)
(setq ss (ssget '((0 . "INSERT") (66 . 1)))
deltah (getreal "\nVao gia tri chenh: ")
)
(sudung addone ss)
(princ)
)

  • 0

#13 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 06 September 2007 - 01:37 PM

Bạn mất thời gian 1 thì người viết lisp mất thời gian 10. Không nên than vãn.
Nhờ có file bạn gửi tôi mới hiểu đúng ý bạn, nếu không tự nhiên mất công viết ra 1 đống lisp rồi vứt đi.

Tên lệnh là DEH (deltaH):


(defun c:deh ()
(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 addstring (str so)
(rtos (+ (atof str) so) 2 2)
)
(defun addone (ent / tt)
(setq ent (entnext ent))
(setq tt (entget ent)
old (assoc 1 tt)
new (cons 1 (addstring (cdr old) deltah))
tt (subst new old tt)
)
(entmod tt)
(entupd ent)
)
(setq ss (ssget '((0 . "INSERT") (66 . 1)))
deltah (getreal "\nVao gia tri chenh: ")
)
(sudung addone ss)
(princ)
)

cảm on bác Ngyen Hoanh nhiều nhé
nhưng bác check lại hộ em cái, sao em chạy thì nó bó lỗi
[CHECKING TEXT <Untitled-1> loading...]
.
; warning: local variable used as function: HAM
; Check done.
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#14 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 06 September 2007 - 02:13 PM

cảm on bác Ngyen Hoanh nhiều nhé
nhưng bác check lại hộ em cái, sao em chạy thì nó bó lỗi
[CHECKING TEXT <Untitled-1> loading...]
.
; warning: local variable used as function: HAM
; Check done.


Bạn có biết load 1 file lisp lên dùng không đấy!

Bạn hãy làm như sau:
- Mở notepad ra, new 1 file mới. Copy đoạn lisp vừa rồi, paste vào rồi save thành 1 file có đuôi là lsp. Ví dụ như DeltaH.lsp.
- Khởi động chương trình AutoCAD, dùng lệnh Appload (menu: Tools > Load Aplication) rồi chọn file lisp bạn vừa save (ví dụ như DeltaH.lsp).
- Tại dòng lệnh của AutoCAD, bạn gọi tên lệnh của lisp. Trong trường hợp này là DAH.
  • 0

#15 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 06 September 2007 - 02:32 PM

Bạn có biết load 1 file lisp lên dùng không đấy!

Bạn hãy làm như sau:
- Mở notepad ra, new 1 file mới. Copy đoạn lisp vừa rồi, paste vào rồi save thành 1 file có đuôi là lsp. Ví dụ như DeltaH.lsp.
- Khởi động chương trình AutoCAD, dùng lệnh Appload (menu: Tools > Load Aplication) rồi chọn file lisp bạn vừa save (ví dụ như DeltaH.lsp).
- Tại dòng lệnh của AutoCAD, bạn gọi tên lệnh của lisp. Trong trường hợp này là DAH.

tui làm rồi bác hoanh ơi
hinh như câu lênh ....(if (ham entdt)... có vấn đề
bác xem lại có thiếu dấu gì không?
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#16 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 06 September 2007 - 02:44 PM

tui làm rồi bác hoanh ơi
hinh như câu lênh ....(if (ham entdt)... có vấn đề
bác xem lại có thiếu dấu gì không?

Tôi test từ nãy rồi, chạy tốt mà.
Bạn đã làm như tôi hướng dẫn chưa? Làm theo như thế AutoCAD báo gì?
  • 0

#17 Mr.N

Mr.N

    Chưa sử dụng CAD

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

Đã gửi 06 September 2007 - 02:50 PM

Tui thấy ông ý tưởng "chả có gì mới" thât là vớ vẩn. Nhờ vả người ta mà còn than thở mất công này nọ. Tự làm đi ông bạn để khỏi mất công gởi file.
  • 0

#18 ainhandilac

ainhandilac

    biết vẽ pline

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

Đã gửi 06 September 2007 - 03:07 PM

Tôi test từ nãy rồi, chạy tốt mà.
Bạn đã làm như tôi hướng dẫn chưa? Làm theo như thế AutoCAD báo gì?

sorry pac Hoanh nhe
tại tui thử check nên nó mới báo lỗi, còn chạy thì không có lỗi gi cả
Hình đã gửi
thank bro nhiều
hôm nào có dịp mời bro một bữa cafe nhé!
  • 0
SỐNG TRÊN ĐỜI CẦN CÓ NIỀM TIN

#19 thaiha175

thaiha175

    biết vẽ ellipse

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

Đã gửi 06 September 2007 - 07:22 PM

bác mr.n nói thế là không được ,có thể vấn đề này là không là gì với bác nhưng có thể có ích với người khác ,và cùng thảo luận ai biết thì cùng góp ý đừng nói những câu mất phong trào như vậy !kiến thức là vô tận ,ý tưởng là vô hạn bác nên dành cái pm đó nêu ra một ý tưởng thì tốt hơn
em nói hơi thẳng mong bác thứ lỗi ,toppic điện nước này ít bài quá
  • 0
sống trên đời phải có 1 tấm lòng ,để gió cuốn đi

#20 phamdung

phamdung

    biết pan

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

Đã gửi 27 February 2008 - 10:02 AM

cái lệnh này của bác Hoanh thiệt là hay, nhưng bác có thể bổ sung thêm cho em được không?
với câu lệnh trên thì khi nhập giá trị chênh lệch vào ( VD như cao độ cũ là 4.20 bây giờ đưa giá trị chênh lệch vào là -0.2 thì kết quả trả về là 4 như vậy bản vẽ sẽ không đẹp tôi muốn kết quả là 4.00 thì làm sao?)
mong bác bớt chút thời gian trả lời tôi.
thanks!

Bạn mất thời gian 1 thì người viết lisp mất thời gian 10. Không nên than vãn.
Nhờ có file bạn gửi tôi mới hiểu đúng ý bạn, nếu không tự nhiên mất công viết ra 1 đống lisp rồi vứt đi.

Tên lệnh là DEH (deltaH):


(defun c:deh ()
(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 addstring (str so)
(rtos (+ (atof str) so) 2 2)
)
(defun addone (ent / tt)
(setq ent (entnext ent))
(setq tt (entget ent)
old (assoc 1 tt)
new (cons 1 (addstring (cdr old) deltah))
tt (subst new old tt)
)
(entmod tt)
(entupd ent)
)
(setq ss (ssget '((0 . "INSERT") (66 . 1)))
deltah (getreal "\nVao gia tri chenh: ")
)
(sudung addone ss)
(princ)
)


  • 0