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

Viết Lisp theo yêu cầu

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

Tôi xin up lên các mặt cắt mương cáp nhờ bác Hòanh giúp dùm, ghi chú: các kích thước ký hiệu h và v sẽ thay đổi tùy theo hạng mục, ĐK các lọai ống cũng vậy, bác Hòanh có thể thêm hatch cho phần cát lấp và đất đắp tùy ý. Chân thành cám ơn bác đã quan tâm ( link của DWG : MCMUONGCAP.rar)

 

 

Chào bạn!

 

Xem 12 mặt cắt của bạn em có mấy câu hỏi sau:

 

1/ Khi nào thì ống xếp ngang khi nào thì ống xếp dọc (đối với mương có 2-4 ống) ? MC 5-7-9-11 ống thì như thế nào?

 

2/ Kích thước nào phải nhập vào và các kích thước nào được tính ra từ các kích thước khác?

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

Nhờ bạn giúp tạo lisp làm công việc sau

01.jpg

Các hình ban đầu có sẵn các đường tâm, từ đường tâm dọc đó offset sang 2 bên một khoảng tuỳ theo yêu cầu người dùng (VD là 300), nếu nhỏ hơn 300 thì ko offset nữa. Sau đó điền các kích thước vào hình

02.jpg

xin cảm ơ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

em muốn nhờ các anh viết giùm cái lisp có nội dung như sau:

+tính diện tích(=cách pick hoặc chọn đường bao)

+ghi ra kết quả với mũi tên và text dạng block thuộc tính

ví dụ như:http://www.cadviet.com/upfiles/new_block_5.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
em muốn nhờ các anh viết giùm cái lisp có nội dung như sau:

+tính diện tích(=cách pick hoặc chọn đường bao)

+ghi ra kết quả với mũi tên và text dạng block thuộc tính

ví dụ như:http://www.cadviet.com/upfiles/new_block_5.dwg

Bạn chú ý dùng các BB Code để có đường link sau:

http://www.cadviet.com/upfiles/new_block_5.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
Nhờ bạn giúp tạo lisp làm công việc sau

01.jpg

Các hình ban đầu có sẵn các đường tâm, từ đường tâm dọc đó offset sang 2 bên một khoảng tuỳ theo yêu cầu người dùng (VD là 300), nếu nhỏ hơn 300 thì ko offset nữa. Sau đó điền các kích thước vào hình

02.jpg

xin cảm ơn

bạn upload file dwg lên diễn đàn đ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ảm ơn bác, nhân tiện đây tôi cũng muốn nhờ luôn các bác:

Tôi cũng đã tìm chủ đề về Wipeout trên diễn đàn nhưng chưa được như mong muốn.

Tôi muốn biến 1 đường tròn thành 1 Wipeout. Thực ra, đường tròn cũng tạo bởi các đoạn thẳng, nên có thể chia nó ra thành nhiều đoạn thẳng nhỏ, sau đó Join chúng lại thành 1 Pline kín và dùng lệnh Wipeout. Độ mịn của đường tròn lúc đó sẽ phụ thuộc vào số khoảng chia mà ta chọn.

Như vậy Lisp sẽ yêu cầu chọn đối tượng là đường tròn cần chuyển. Chọn số khoảng chia.và sau đó thực hiện.

Mong các bác giúp đỡ!

đoạn Lisp sau có thể giúp bạn biến các loại đường (spline, tròn, elip,...) thành PLINE (hoặc WIPEOUT nếu bạn muốn)

http://www.cadviet.com/upfiles/pllp.lsp

Lệnh là pllp. Tôi chế biến từ lisp SPPL.lsp có trên diễn đàn CADVIET.com

Chúc thành công

  • 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

Rất vui khi thấy mục này được mở

đi thẳng vào vấn đế luôn

rất mong các cao thủ Lisp giúp đỡ, đặc biệt là bác NGUYEN HOANH

vấn đề của mình như sau:

mình hiện có 1 bình đồ, trên đó có nhiều đường đồng mức (đường đồng mức vẽ bằng lệnh Polyline)

các đường đồng mức này đều đã có cao độ (mình làm trong Nova)

nghĩa là khi chọn 1 đường đồng mức bất kỳ và bấm Properties để xem tính chất của đối tượng trong Autocad thì ta sẽ thấy giá trị

Elevation của đường đồng mức này là khác 0 (ví dụ là 220)

Vấn đề mình hỏi là :

có cách nào để xuất toạ độ, cao độ của các điểm thuộc các đường đồng mức này ra 1 file với đuôi .txt không?

Cảm ơn vì đã đọc bài

Chào 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

chào các bạn mình thấy một số phần mềm viết bằng lisp muốn chạy được thì phải cung cấp cho họ một số seri của ổ cứng sau đó người ta cấp cho mình một file LISP(ví dụ File KHOA.lsp) thì phần mềm mới chạy được. bạn nào biết nguyên lý của lisp đó (KHOA.lsp) hướng dẫn mình với hay có lsp nào post lên cho mình xem vớ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
chào các bạn mình thấy một số phần mềm viết bằng lisp muốn chạy được thì phải cung cấp cho họ một số seri của ổ cứng sau đó người ta cấp cho mình một file LISP(ví dụ File KHOA.lsp) thì phần mềm mới chạy được. bạn nào biết nguyên lý của lisp đó (KHOA.lsp) hướng dẫn mình với hay có lsp nào post lên cho mình xem với.

Cứ đưa file của ct đó lên đ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

Xin anh em LIST cắt dim theo đường chéo, hình tròn hoặc một hình rích rắc. Nếu có rồi thì chỉ cho tôi đường dẫn cái, tôi tìm mãi không được.

http://www.cadviet.com/upfiles/Duong_cheo.jpg

http://www.cadviet.com/upfiles/hinh_tron.jpg

http://www.cadviet.com/upfiles/ric_rac.jpg

 

Xin cảm ơ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

Trong hộp thoại, khi tính toán xong các giá trị đầu vào trong các ô thường mất đi, Làm cách nào để khi tính toán xong thi các giá trị đó vẫn được lưu lại trong ô tính toán không nhỉ (cho đỡ phải nhập lại từ đầu mà). Bác Hoang xem giúp em được không 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
Rất vui khi thấy mục này được mở

đi thẳng vào vấn đế luôn

rất mong các cao thủ Lisp giúp đỡ, đặc biệt là bác NGUYEN HOANH

vấn đề của mình như sau:

mình hiện có 1 bình đồ, trên đó có nhiều đường đồng mức (đường đồng mức vẽ bằng lệnh Polyline)

các đường đồng mức này đều đã có cao độ (mình làm trong Nova)

nghĩa là khi chọn 1 đường đồng mức bất kỳ và bấm Properties để xem tính chất của đối tượng trong Autocad thì ta sẽ thấy giá trị

Elevation của đường đồng mức này là khác 0 (ví dụ là 220)

Vấn đề mình hỏi là :

có cách nào để xuất toạ độ, cao độ của các điểm thuộc các đường đồng mức này ra 1 file với đuôi .txt không?

Ông trắc địa này làm sao mà phải làm bài tóan ngược vậy? Nói thiệt đ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

bác nào giúp em với. Em đang cần 1 lisp với nội dung sau

Giả sử bản vẽ ta có 4 lớp : 1,2,3,4

e muốn có 1 lisp có thể mặc định lớp 2 luôn nằm trên lớp 1,3,4

Nôm na e muốn có 1 lisp quản lý hệ thống layer sao cho ta có thể mặc định 1 lớp luôn nằm trên hay nằm dưới các lớp khác giống như quản lý layer trong shop đó các bác

Mong các bác cao thủ giúp em với...........hic 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

có cách nào để xuất toạ độ, cao độ của các điểm thuộc các đường đồng mức này ra 1 file với đuôi .txt không?

 

Làm được bạn ạ. Nhưng bạn muốn xuất 1 đường hay nhiều đường một lúc. Bạn định sắp xếp các đường đồng mức theo thứ tự như thế nào, theo thứ tự bạn chọn hay theo cao độ đường đồng mức.

 

Đây là ví dụ cho 1 đường đồng mức xuất ra file D:\dongmuc\dongmuc.txt , ban phải tao 1 thư mục DONGMUC ở ổ D

Các toạ độ và cao độ lấy 2 chữ số thập phân

 

(defun c:xuatpl ( / ent n i caodo toado file)
 (setq ent (entget (car (entsel "\n Chon Pline:"))))
 (setq caodo (cdr (assoc 38 ent))
caodo (rtos caodo 2 2))
 (setq file (open "d:\\dongmuc\\dongmuc.txt" "w"))
 (setq n (length ent)
i 0)
 (write-line (strcat "Duong dong muc " caodo) file)
 (while (< i n)
(if (= 10 (car (nth i ent)))
  (progn
  (setq toado (cdr (nth i ent))
	toado (strcat (rtos (car toado) 2 2)
		  "\t"
		  (rtos (cadr toado) 2 2)
		  "\t"
		  caodo))
  (write-line toado file))
  )
  (setq i (1+ i))
  )
(close 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
có cách nào để xuất toạ độ, cao độ của các điểm thuộc các đường đồng mức này ra 1 file với đuôi .txt không?

 

Làm được bạn ạ. Nhưng bạn muốn xuất 1 đường hay nhiều đường một lúc. Bạn định sắp xếp các đường đồng mức theo thứ tự như thế nào, theo thứ tự bạn chọn hay theo cao độ đường đồng mức.

 

Đây là ví dụ cho 1 đường đồng mức xuất ra file D:\dongmuc\dongmuc.txt , ban phải tao 1 thư mục DONGMUC ở ổ D

Các toạ độ và cao độ lấy 2 chữ số thập phân

 

Xuất ra file này để làm j nhỉ? Tôi vẫn chưa hiểu mục đích cuối cùng của bài toán này

  • 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
Xuất ra file này để làm j nhỉ? Tôi vẫn chưa hiểu mục đích cuối cùng của bài toán này

Ngochoang là dân trắc địa, đôi khi phải làm bài tóan ngược. Nghĩa là: đường đồng mức có trước rồi mới có điểm đo. Tuy nhiên điểm đo này là điểm bổ sung cho phù hợp với mật độ đo yêu cầ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

Các bác õi !làm õn giúp em 1 ðoạn lisp tao layer với !và cái layer ðó phải tạo sẳng với màu sắt, loại ðýờng nét,ðộ rộng nét !Có lần em thấy nhýng bây giờ em tìm hoài mà không thấy !tìm mấy trục trang mà chả thấy ! mong các bác giúp ðỡ !

Em chỉ cần 1 ðoạn tạo 1 layer thôi cũng ðýợc !

Xin cảm õn các bác !

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

Xin chào mọi người

Có ai giúp dùm tôi làm 1 hàm autolíp để xóa hay copy 1 file không phải là file ASCII được không (ví dụ như file .exe). Cám ơn rất nhiều.

nguoiotanphu.

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ách nào để xuất toạ độ, cao độ của các điểm thuộc các đường đồng mức này ra 1 file với đuôi .txt không?

 

Làm được bạn ạ. Nhưng bạn muốn xuất 1 đường hay nhiều đường một lúc. Bạn định sắp xếp các đường đồng mức theo thứ tự như thế nào, theo thứ tự bạn chọn hay theo cao độ đường đồng mức.

 

Đây là ví dụ cho 1 đường đồng mức xuất ra file D:\dongmuc\dongmuc.txt , ban phải tao 1 thư mục DONGMUC ở ổ D

Các toạ độ và cao độ lấy 2 chữ số thập phân

Đoạn code của bạn mới chỉ đúng cho 1 trường hợp polyline dạng LWPOLYLINE, với đối tượng dạng POLYLINE thì lệnh sẽ gặp lỗi. Và bạn nên viết thêm đoạn code để người dùng tuỳ chọn tên file, nơi lưu trữ thay vì xuất ra một file với tên cố định, khi làm nhiều lần, các file dữ liệu sẽ bị ghi đè mất.

Tôi xin đưa ra một đoạn code sau, các bác dùng thử nhé!

;;;=======================================================
;;;	 Ham nhan list dinh tu Polyline	bao gom ca cao do							
;;;
(defun Getvpl1 (ename stn / Elist rep e1 dp c)
 (setq	rep "C"
Elist '()
c stn
 )
 (setq ename (entnext ename))
 (while (/= rep "SEQEND")
   (setq e1 (entget ename))
   (setq rep (cdr (assoc 0 e1)))
   (if	(/= rep "VERTEX")
     (princ)
     (progn
(setq dp (cdr (assoc 42 e1)))
(setq
  elist	(cons (cons c
		    (cdr (assoc 10 e1)

		    )
	      )
	      elist
	)
)
     )
   )
   ;;end if
   (setq ename	(entnext ename)
  c	(1+ c)
   )
 )
 ;;end while
 (setq elist (reverse elist))
 ;;kthuc 
)
;;;=============================================================================

=======
;;;	 Ham nhan list dinh tu LWPolyline bao gom ca cao do								
(defun Getvlw1 (ename stn / di i e1 elist dp c evl)
 (setq e1 (entget ename))
 (setq	elist '()
c 1
c1 stn
evl (cdr (assoc 38 e1))
 )
 (while e1
   (setq di (car e1))
   (if	(/= 10 (car di))
     (princ)
     (progn
(setq vlap 1
      dp nil
)
(while (and e1 (/= vlap 42))
  ;;never null
  (setq i (car e1))
  (setq vlap (car i))
  (if (/= vlap 42)
    (setq e1 (cdr e1))
    (setq dp (cdr i))
  )
)
;;end while
(if (null dp)
  (alert "Error bulge in the LWPOLYLINE")
  ;;nerver appear 
  (setq	elist (cons (cons c1 (append (cdr di)  (list evl))) elist)
	c1    (1+ c1)
  )
)
;;end if
     )
   )
   ;;end if
   (setq e1 (cdr e1)
  c  (1+ c)
   )
 )
 ;;end while
 (setq elist (reverse elist))
)

(Defun Intro ()
 (prompt "\nCopyright by Nguyen Gia Dat - 0915169886")
 )

;;;==================================================================
(defun C:Expl (/ sspl txtfile stt cter count txtline polist pltype)
 (command "undo" "begin")
 (setvar "cmdecho" 0)
 (intro)
 (setq	sspl (ssget '((-4 . "<OR")
	      (0 . "Polyline")
	      (0 . "LWpolyline")
	      (-4 . "OR>")
	     )
     )
cter 0
stt 1
txtfile '()
 )
 (while (< cter (sslength sspl))
   (setq objpl	 (ssname sspl cter)
  entpl	 (entget objpl)
  pltype (cdr (assoc 0 entpl))
  cter	 (1+ cter)
   )
   (cond
     ((= pltype "POLYLINE")
      (setq
 polist	(getvpl1 objpl stt)
 stt (+ stt (length polist))
      )
     )
     ((= pltype "LWPOLYLINE")
      (setq polist (getvlw1 objpl stt)
     stt (+ stt (length polist))
      )
     )

   )
   (setq txtfile (append txtfile polist))

 )



;;; Chon file luu so lieu
     (Setq FileDir (getfiled "File luu so lieu:" "" "txt" 1)
    )

     (setq count1 1
    FileID (open FileDir "w")
     )
     (write-line "B¶ng sè liÖu" FileID)
     (write-line
"Stt\tTo¹ ®é X\tTo¹ ®é Y\tTo¹ ®é Z"
FileID
     )
     (while (<= count1 (length txtfile))
(setq Xid     (car (cdr (assoc count1 Txtfile)))
      Yid     (cadr (cdr (assoc count1 Txtfile)))
      Zid     (cadr (cdr (cdr (assoc count1 Txtfile))))
      Txtline (strcat (itoa count1)
		      "\t"
		      (rtos Xid)
		      "\t"
		      (rtos Yid)
		      "\t"
		      (rtos Zid)
	      )
      count1  (1+ count1)
)
(write-line Txtline FileID)
     )
;     (write-line Cpright FileID)


     (close FileID)


 (command "undo" "end")
 (setvar "cmdecho" 1)
 (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
Xin chào mọi người

Có ai giúp dùm tôi làm 1 hàm autolíp để xóa hay copy 1 file không phải là file ASCII được không (ví dụ như file .exe). Cám ơn rất nhiều.

nguoiotanphu.

Sao có lắm người cần hàm del file thế nhỉ? :s_big: xin trích lại một bài (vừa mới post xong, ở topic khác)- Ko biết có bị coi là spam ko :s_big:

(vl-file-delete filename) : del file chứa trong biến filename (bất kỳ loại file gì - bạn có thể dùng hàm getfiled để chọn file muốn xoá)

(vl-file-copy source-file destination-file [append]) copy file với tuỳ chọn ghi đè hay ghi nối tiếp vào file đí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
bác nào giúp em với. Em đang cần 1 lisp với nội dung sau

Giả sử bản vẽ ta có 4 lớp : 1,2,3,4

e muốn có 1 lisp có thể mặc định lớp 2 luôn nằm trên lớp 1,3,4

Nôm na e muốn có 1 lisp quản lý hệ thống layer sao cho ta có thể mặc định 1 lớp luôn nằm trên hay nằm dưới các lớp khác giống như quản lý layer trong shop đó các bác

Mong các bác cao thủ giúp em với...........hic hic

ko bác nào giúp e ah hu hu hu

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

Bác Hoanh ơi giúp e với em có câu lệnh này

(defun c:sb ()(ssget)(command "draworder" "p" "" "b" ""))

Bác giúp e thêm 1 mã lệnh để sao cho khi ta gõ lệnh sb nó sẽ tự động chon tất cả đối tượng hatch trong bản vẽ với

Cảm ơn bác trước nhé ......... help me.......

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
Khách
Chủ đề này bây giờ đã bị đóng lại để trả lời thêm.

×