Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.

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

ainhandilac    5

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

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
Nguyen Hoanh    4.524
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!

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
ainhandilac    5
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)

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
Nguyen Hoanh    4.524
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.

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
ainhandilac    5
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é

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
ainhandilac    5
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

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
thaiha175    5

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á

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
Nguyen Hoanh    4.524
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.

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
ainhandilac    5
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ẽ

truockhiupdate.jpg

 

saukhiupdate.jpg

 

đâ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

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
Nguyen Hoanh    4.524
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ữ.

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
ainhandilac    5
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é

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
Nguyen Hoanh    4.524
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)
)

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

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
Nguyen Hoanh    4.524
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.

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
ainhandilac    5
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?

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
Nguyen Hoanh    4.524
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ì?

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
Mr.N    0

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.

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
ainhandilac    5
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ả

th_guipachoanh_Screen_Stream.jpg

thank bro nhiều

hôm nào có dịp mời bro một bữa cafe 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
thaiha175    5

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á

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
phamdung    0

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

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
Nguyen Hoanh    4.524
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!

 

Lệnh của tôi là làm như cái bạn muốn, cấu hình cad của bạn sai. Bạn hãy thử dùng lisp với máy khác sẽ thấy.

 

Tôi không nhớ là biến hệ thống gì gây ra hiện tượng này, để tôi tìm lại rồi cho bạn biết sau.

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
phamdung    0
Lệnh của tôi là làm như cái bạn muốn, cấu hình cad của bạn sai. Bạn hãy thử dùng lisp với máy khác sẽ thấy.

 

Tôi không nhớ là biến hệ thống gì gây ra hiện tượng này, để tôi tìm lại rồi cho bạn biết sau.

tôi đã làm theo bạn nhưng sử dụng ở bản vẽ mới thì không có vấn đề gì còn bản vẽ đó vẫn bị hiện tượng trên. bạn có cách khắc phục điều này nếu lần sau tôi có gặp trương hợp này không?

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


×