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

Viết Lisp theo yêu cầu

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

conghoa    93

Cho mình xin cái lisp sắp xếp thẳng hàng và cách đều các text.

VD: mình có một hàng text (được viết bằng lệnh dt)

..............ghi chú:

........................hàng 1

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

..................hàng 2

......hàng 3

 

Khi dùng lisp nó sẽ được kết quả như sau:

 

............ghi chú:

............hàng 1

............hàng 2

............hàng 3

 

(dấu "." ở đầu hàng chỉ để thể hiện sự không thẳng hàng của các text thôi, vì nếu không có nó khi post bài này nó sẽ thẳng hàng hết.)

 

Yêu cầu: Khoảng cách giữa các text sau khi đã sắp thẳng hàng bằng 2 lần độ cao chữ (và có thể điều chỉnh đựơc trong lisp)

 

Thanks 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
Nguyen Hoanh    4.524
Cho mình xin cái lisp sắp xếp thẳng hàng và cách đều các text.

VD: mình có một hàng text (được viết bằng lệnh dt)

...........

Lệnh là STEXT (Sắp text). Chương trình sẽ lấy text cao nhất làm gốc.

(defun c:stext ( / sst lstent egoc pgoc xgoc yht zgoc linespc ee tt)

 (princ "\nSap xep text © CADViet.com")
 (setq	sst	(ssget '((0 . "TEXT")))
lstent	(ss2ent sst)
lstent	(vl-sort lstent
		 '(lambda (e1 e2)
		    (> (cadr (cdr (assoc 10 (entget e1))))
		       (cadr (cdr (assoc 10 (entget e2))))
		    )
		  )
	)
egoc	(car lstent)
lstent	(cdr lstent)
pgoc	(cdr (assoc 10 (entget egoc)))
xgoc	(car pgoc)
yht	(cadr pgoc)
zgoc	(caddr pgoc)
hgoc	(cdr (assoc 40 (entget egoc)))
linespc	(* hgoc 2.5)

 )
 (foreach ee lstent
   (setq tt (entget ee)
  tt (subst (list 10
		  xgoc
		  (setq yht (- yht linespc))
		  zgoc
	    )
	    (assoc 10 tt)
	    tt
     )
   )
   (entmod tt)
   (entupd ee)
 )
)
(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (cond
    (ss (sslength ss))
    (t 0)
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
)
(princ
 "\nSTEXT - Sap xep text - free lisp from www.cadviet.com"
)
(vl-load-com)

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
Chao cac bac, cai lenh nay bi loi:

Command: STEXT

Select objects: Specify opposite corner: 7 found

Select objects:

Bac xem lai xem !

Dòng thông báo đó không sao cả, chương trình vẫn chạy đúng.

Dòng thông báo đó là do lúc viết chương trình quên một lệnh exit quiet ở cuối thôi. Đoạn mã dưới đây đã thêm dòng mã (princ) để không xuất hiện thông báo đó!

Cảm ơn bạn đã hồi âm!

 

(defun c:stext ( / sst lstent egoc pgoc xgoc yht zgoc linespc ee tt)

(princ "\nSap xep text © CADViet.com")
(setq sst (ssget '((0 . "TEXT")))
lstent (ss2ent sst)
lstent (vl-sort lstent
'(lambda (e1 e2)
(> (cadr (cdr (assoc 10 (entget e1))))
(cadr (cdr (assoc 10 (entget e2))))
)
)
)
egoc (car lstent)
lstent (cdr lstent)
pgoc (cdr (assoc 10 (entget egoc)))
xgoc (car pgoc)
yht (cadr pgoc)
zgoc (caddr pgoc)
hgoc (cdr (assoc 40 (entget egoc)))
linespc (* hgoc 2.5)

)
(foreach ee lstent
(setq tt (entget ee)
tt (subst (list 10
xgoc
(setq yht (- yht linespc))
zgoc
)
(assoc 10 tt)
tt
)
)
(entmod tt)
(entupd ee)
)
(princ)
)
(defun ss2ent (ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(princ
"\nSTEXT - Sap xep text - free lisp from www.cadviet.com"
)
(vl-load-com)

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
vbao    80
Dòng thông báo đó không sao cả, chương trình vẫn chạy đúng.

Dòng thông báo đó là do lúc viết chương trình quên một lệnh exit quiet ở cuối thôi. Đoạn mã dưới đây đã thêm dòng mã (princ) để không xuất hiện thông báo đó!

Cảm ơn bạn đã hồi âm!

 

(defun c:stext ( / sst lstent egoc pgoc xgoc yht zgoc linespc ee tt)

(princ "\nSap xep text © CADViet.com")
(setq sst (ssget '((0 . "TEXT")))
lstent (ss2ent sst)
lstent (vl-sort lstent
'(lambda (e1 e2)
(> (cadr (cdr (assoc 10 (entget e1))))
(cadr (cdr (assoc 10 (entget e2))))
)
)
)
egoc (car lstent)
lstent (cdr lstent)
pgoc (cdr (assoc 10 (entget egoc)))
xgoc (car pgoc)
yht (cadr pgoc)
zgoc (caddr pgoc)
hgoc (cdr (assoc 40 (entget egoc)))
linespc (* hgoc 2.5)

)
(foreach ee lstent
(setq tt (entget ee)
tt (subst (list 10
xgoc
(setq yht (- yht linespc))
zgoc
)
(assoc 10 tt)
tt
)
)
(entmod tt)
(entupd ee)
)
(princ)
)
(defun ss2ent (ss / sodt index lstent)
(setq
sodt (cond
(ss (sslength ss))
(t 0)
)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)
(princ
"\nSTEXT - Sap xep text - free lisp from www.cadviet.com"
)
(vl-load-com)

 

 

cảm ơn anh Hoành về tiện ích trên, anh cho hỏi thêm có cách nào tùy biến khoảng cách các dòng text (line spacing) theo yêu cầu của người sử dụng khi nhập từ keyboard vào 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

lisp dưới đây tên lệnh vẫn là STEXT, cải tiến để người sử dụng nhập thêm tỷ lệ khoảng cách dòng. Mặc định là 1.5 tức là khoảng trống cách giữa 2 dòng bằng 1.5 lần chiều cao text. Giá trị này sẽ được lưu trữ cho đến khi close file, nhấn Enter lúc nhập liệu nếu không muốn thay đổi giá trị này.

 

(defun c:stext ( / sst lstent egoc pgoc xgoc yht zgoc linespc ee tt)
 (if (not tyledong)
   (setq tyledong 1.5)
 )
 (princ "\nSap xep text © CADViet.com")
 (setq	sst	(ssget '((0 . "TEXT")))
lstent	(ss2ent sst)
tmp     (getreal (strcat "\nVao ty le dong khoang cach dong : "))
tyledong (cond
	   (tmp tmp)
	   (t tyledong)
	 )
lstent	(vl-sort lstent
		 '(lambda (e1 e2)
		    (> (cadr (cdr (assoc 10 (entget e1))))
		       (cadr (cdr (assoc 10 (entget e2))))
		    )
		  )
	)
egoc	(car lstent)
lstent	(cdr lstent)
pgoc	(cdr (assoc 10 (entget egoc)))
xgoc	(car pgoc)
yht	(cadr pgoc)
zgoc	(caddr pgoc)
hgoc	(cdr (assoc 40 (entget egoc)))
linespc	(* hgoc (+ 1.0 tyledong))

 )
 (foreach ee lstent
   (setq tt (entget ee)
  tt (subst (list 10
		  xgoc
		  (setq yht (- yht linespc))
		  zgoc
	    )
	    (assoc 10 tt)
	    tt
     )
   )
   (entmod tt)
   (entupd ee)
 )
)
(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (cond
    (ss (sslength ss))
    (t 0)
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
 (princ)
)
(princ
 "\nSTEXT - Sap xep text - free lisp from www.cadviet.com"
)
(vl-load-com)

  • 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
vbao    80
lisp dưới đây tên lệnh vẫn là STEXT, cải tiến để người sử dụng nhập thêm tỷ lệ khoảng cách dòng. Mặc định là 1.5 tức là khoảng trống cách giữa 2 dòng bằng 1.5 lần chiều cao text. Giá trị này sẽ được lưu trữ cho đến khi close file, nhấn Enter lúc nhập liệu nếu không muốn thay đổi giá trị này.

 

(defun c:stext ( / sst lstent egoc pgoc xgoc yht zgoc linespc ee tt)
 (if (not tyledong)
   (setq tyledong 1.5)
 )
 (princ "\nSap xep text © CADViet.com")
 (setq	sst	(ssget '((0 . "TEXT")))
lstent	(ss2ent sst)
tmp     (getreal (strcat "\nVao ty le dong khoang cach dong <" (rtos tyledong 2 2) ">: "))
tyledong (cond
	   (tmp tmp)
	   (t tyledong)
	 )
lstent	(vl-sort lstent
		 '(lambda (e1 e2)
		    (> (cadr (cdr (assoc 10 (entget e1))))
		       (cadr (cdr (assoc 10 (entget e2))))
		    )
		  )
	)
egoc	(car lstent)
lstent	(cdr lstent)
pgoc	(cdr (assoc 10 (entget egoc)))
xgoc	(car pgoc)
yht	(cadr pgoc)
zgoc	(caddr pgoc)
hgoc	(cdr (assoc 40 (entget egoc)))
linespc	(* hgoc (+ 1.0 tyledong))

 )
 (foreach ee lstent
   (setq tt (entget ee)
  tt (subst (list 10
		  xgoc
		  (setq yht (- yht linespc))
		  zgoc
	    )
	    (assoc 10 tt)
	    tt
     )
   )
   (entmod tt)
   (entupd ee)
 )
)
(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (cond
    (ss (sslength ss))
    (t 0)
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)
;;  (princ)
)
(princ
 "\nSTEXT - Sap xep text - free lisp from www.cadviet.com"
)
(vl-load-com)

 

Anh Hoành xem giúp, tôi sử dụng gặp lỗi sau :

Command: stext

Sap xep text © CADViet.com

Select objects: Specify opposite corner: 7 found

 

Select objects:

 

Vao ty le dong khoang cach dong <1.50>: 5

; error: bad argument type: listp

 

cảm ơn anh.

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
Anh Hoành xem giúp, tôi sử dụng gặp lỗi sau :

Command: stext

Sap xep text © CADViet.com

Select objects: Specify opposite corner: 7 found

 

Select objects:

 

Vao ty le dong khoang cach dong : 5

; error: bad argument type: listp

 

cảm ơn anh.

Xin lỗi tôi nhầm 1 dòng lệnh.

Cảm ơn anh Bảo đã hồi âm.

Đây là mã lệnh đã sửa:

 

(defun c:stext (/ sst lstent egoc pgoc xgoc yht zgoc linespc ee tt)
 (if (not tyledong)
   (setq tyledong 1.5)
 )
 (princ "\nSap xep text © CADViet.com")
 (setq	sst	 (ssget '((0 . "TEXT")))
lstent	 (ss2ent sst)
tmp	 (getreal (strcat "\nVao ty le dong khoang cach dong 				  (rtos tyledong 2 2)
			  ">: "
		  )
	 )
tyledong (cond
	   (tmp tmp)
	   (t tyledong)
	 )
lstent	 (vl-sort lstent
		  '(lambda (e1 e2)
		     (>	(cadr (cdr (assoc 10 (entget e1))))
			(cadr (cdr (assoc 10 (entget e2))))
		     )
		   )
	 )
egoc	 (car lstent)
lstent	 (cdr lstent)
pgoc	 (cdr (assoc 10 (entget egoc)))
xgoc	 (car pgoc)
yht	 (cadr pgoc)
zgoc	 (caddr pgoc)
hgoc	 (cdr (assoc 40 (entget egoc)))
linespc	 (* hgoc (+ 1.0 tyledong))

 )
 (foreach ee lstent
   (setq tt (entget ee)
  tt (subst (list 10
		  xgoc
		  (setq yht (- yht linespc))
		  zgoc
	    )
	    (assoc 10 tt)
	    tt
     )
   )
   (entmod tt)
   (entupd ee)
 )
 (princ)
)
(defun ss2ent (ss / sodt index lstent)
 (setq
   sodt  (cond
    (ss (sslength ss))
    (t 0)
  )
   index 0
 )
 (repeat sodt
   (setq ent	 (ssname ss index)
  index	 (1+ index)
  lstent (cons ent lstent)
   )
 )
 (reverse lstent)  
)
(princ
 "\nSTEXT - Sap xep text - free lisp from www.cadviet.com"
)
(vl-load-com)

  • 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
congtrinh5    0

Xin lisp có nội dung như sau:

Fillet (hoặc chamfer) hàng loạt vật thể 3 chiều.

cụ thể, ví dụ trên màn hình là 1 box 3D dạng khối đặc

lisp sẽ hỏi chọn 1 cạnh , sau đó chương trình sẽ nhận ra các cạnh còn

lại nằm trong cùng mặt phẳng song song với mf XY rồi tự động fillet

hàng loạt. (như chức năng cộng thêm Chain nhưng ở đây vừa cộng thêm

vừa phải các cạch cùng 1 mặt phẳng // với XY)

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
conghoa    93

sim.jpg

 

Để cho bản vẽ có thêm chút pro, mình muốn nhờ NguyenHoanh làm hộ một cái lisp, H1 là ban đầu mình có khi dùng lisp sẽ được kết quả là H2 (hình ở trên). Khoảng cách 100600 có thể quy định dựa trên chiều cao chữ.

 

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

 

Để cho bản vẽ có thêm chút pro, mình muốn nhờ NguyenHoanh làm hộ một cái lisp, H1 là ban đầu mình có khi dùng lisp sẽ được kết quả là H2 (hình ở trên). Khoảng cách 100600 có thể quy định dựa trên chiều cao chữ.

 

Thanks!

Bạn có thể dùng lệnh cắt Dim CD của diễn đà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
conghoa    93

@NguyenHoanh Bạn chỉ cho mình cách cắt dim mà cách đoạn thẳng đó 100 được kô vậy? Hay là phải lại offset 1 đoạn lên 100 rồi cắt. Và làm sao cho nó cách chân dim là 600 với!

 

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
ainhandilac    5
Trả lời câu hỏi thứ nhất: Copy lisp từ codebox thì mất các dấu xuống dòng, bạn có thể tham khảo ở đây

 

http://www.cadviet.com/forum/index.php?showtopic=352

 

Trả lời câu hỏi thứ 2: error: no function definition: INIT

 

Bản chất của lỗi này là không thấy defun INIT.Có thể giải quyết bằng cách sử dụng thêm lisp hethong.lsp sau. Nhớ là khi load phải load lisp hethong.lsp trước ,sau đó mới đến các lisp Scale Block..:unsure:

 

;;------------------------------------------------------------
(defun hoanh_newerror (msg)
 (if (and (/= msg "Function cancelled")
   (/= msg "quit / exit abort")
     )
   (princ (strcat "\n" msg))
 )
 (done)
)
;;----------
(defun init ()
 (setq
   HOANH_CMD	   (getvar "CMDECHO")
   HOANH_OLDERROR *error*
   *error*	   hoanh_newerror

 )
 (setvar "CMDECHO" 0)
 (command ".undo" "BE")
)
;;----------
(defun done ()
 (command ".redraw")
 (command ".undo" "E")
 (if HOANH_CMD
   (setvar "CMDECHO" HOANH_CMD)
 )
 (if HOANH_OLDERROR
   (setq *error* HOANH_OLDERROR)
 )
 (princ)
)

(defun luuos ()
 (setq
   HOANH_OSMODE   (getvar "OSMODE")
   HOANH_AUTOSNAP (getvar "AUTOSNAP")
 )
)
(defun traos ()
 (if HOANH_OSMODE
   (setvar "OSMODE" HOANH_OSMODE)
 )
 (if HOANH_AUTOSNAP
   (setvar "AUTOSNAP" HOANH_AUTOSNAP)
 )
)

 

 

 

 

có cái lisp copy được của bro nào tôi ko biết

nhờ các pac phân tích ho nhe

tôi cũng không hiểu nhiều lắm nhưng thấy dung cũng được lắm

(DEFUN GLIST ()(ENTGET (CAR (ENTSEL))))
(DEFUN FSTR (STR SEARCH / INDEX FIND)(SETQ INDEX 0)(WHILE (AND (/= FIND SEARCH) (<= INDEX (- (STRLEN STR) (STRLEN SEARCH))))(SETQ INDEX (+ 1 INDEX))(SETQ FIND (SUBSTR STR INDEX (STRLEN SEARCH))))(IF (= FIND SEARCH) INDEX "NOT FOUND" )) 
(DEFUN FIRE1 (STR FIND REPLACE / N A B C)(SETQ N (FSTR STR FIND))(IF (/= N "NOT FOUND")(PROGN(SETQ A (SUBSTR STR 1 (- N 1)))(SETQ B REPLACE)(SETQ L (STRLEN FIND))(SETQ C (SUBSTR STR (+ N L)))(SETQ STR (STRCAT A B C)))STR))
(defun CN()(setvar "cmdecho" 0)(initget "Sua")(setq pt (getpoint "\nSua so lieu cu/<Ghi so lieu moi>: ")#STYLE (GETVAR "TEXTSTYLE"))(if (= pt "Sua")(progn(PRINC "\nChon dong chu ghi so lieu cu:")(SETQ ELIST (GLIST))(SETVAR "CMDECHO" 0)(SETVAR "LUPREC" 0)(setq  ELIST (SUBST (CONS 1 TT) (ASSOC 1 ELIST) ELIST))(ENTMOD ELIST)(SETVAR "CMDECHO" 1)(SETVAR "LUPREC" 4))(progn(if (/= (cdr(assoc 40 (tblsearch "style" #STYLE))) 0)(COMMAND "TEXT" pt "0"  TT)(COMMAND "TEXT" pt "2.5" "0"  TT))))(princ))

(DEFUN C:SUB(/ SS TT STT ALIST NUM)
 (SETQ TLIST (ENTGET (CAR (ENTSEL "\nChon so bi tru:")))
TT (CDR (ASSOC 1 TLIST))
TT (FIRE1 TT "," ".")
TT (ATOF TT)
SS (ENTGET (CAR (ENTSEL "\nChon so tru:")))
ss (CDR (ASSOC 1 ss))
ss (FIRE1 ss "," ".")
ss (ATOF ss)
TT (- TT ss)
TT (RTOS TT 2 2)
TT (FIRE1 TT "." ",")
)
 (CN)
)
(DEFUN C:DV(/ SS TT STT ALIST NUM)
 (SETQ TLIST (ENTGET (CAR (ENTSEL "\nChon so bi chia:")))
TT (CDR (ASSOC 1 TLIST))
TT (FIRE1 TT "," ".")
TT (ATOF TT)
SS (ENTGET (CAR (ENTSEL "\nChon so chia:")))
ss (CDR (ASSOC 1 ss))
ss (FIRE1 ss "," ".")
ss (ATOF ss)
TT (/ TT ss)
TT (RTOS TT 2 2)
TT (FIRE1 TT "." ",")
)
 (CN)
)
(DEFUN C:MUL(/ SS TT STT ALIST NUM)
 (SETQ SS (SSGET '((-4 . "<OR")(0 . "text")(0 . "mtext")(-4 . "OR>")))
TT 1
stt 0
)
 (repeat (sslength ss)
  (setq alist (entget (ssname ss stt))
 NUM (CDR (ASSOC 1 ALIST))
 NUM (FIRE1 NUM "," ".")
 TT (* TT (ATOF NUM))
 STT (+ STT 1)
 )
 )
 (SETQ TT (RTOS TT 2 2)
TT (FIRE1 TT "." ",")
)
 (CN)
)
(DEFUN C:SUM(/ SS STT ALIST NUM TT)
 (SETQ SS (SSGET '((-4 . "<OR")(0 . "text")(0 . "mtext")(-4 . "OR>")))
TT 0
stt 0
)
 (repeat (sslength ss)
  (setq alist (entget (ssname ss stt))
 NUM (CDR (ASSOC 1 ALIST))
 NUM (FIRE1 NUM "," ".")
 TT (+ TT (ATOF NUM))
 STT (+ STT 1)
 )
 )
 (SETQ TT (RTOS TT 2 2)
TT (FIRE1 TT "." ",")
)
 (CN)
)

;************************

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

Em đang rất cần các lisp có nội dung như sau:

Tải lisp1 gõ:

T mặt bằng nhìn từ trên xuống

L mặt đứng bên nhìn từ trái qua phải (nhìn vào mặt phẳng YZ)

R mặt đứng bên nhìn từ phải qua trái (nhìn vào mặt phẳng YZ)

F mặt đứng phía trước (nhìn vào mặt phẳng XZ)

SW là cảnh nhìn khi vào view->3Dviewport->SW isometric

 

Mong các Bác cao thủ giúp em chut nha, em cám ơn 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
Nguyen Hoanh    4.524
Em đang rất cần các lisp có nội dung như sau:

Tải lisp1 gõ:

T mặt bằng nhìn từ trên xuống

L mặt đứng bên nhìn từ trái qua phải (nhìn vào mặt phẳng YZ)

R mặt đứng bên nhìn từ phải qua trái (nhìn vào mặt phẳng YZ)

F mặt đứng phía trước (nhìn vào mặt phẳng XZ)

SW là cảnh nhìn khi vào view->3Dviewport->SW isometric

 

Mong các Bác cao thủ giúp em chut nha, em cám ơn nhiều !

bạn save đoạn code sau vào file có tên lisp1.lsp:

(defun c:T()(command ".vpoint" "0,0,1"))
(defun c:L()(command ".vpoint" "1,0,0"))
(defun c:R()(command ".vpoint" "-1,0,0"))
(defun c:F()(command ".vpoint" "0,-1,0"))
(defun c:SW()(command ".view" "_swiso"))

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

Cám ơn anh Hoanh

Em đang cần 1 lisp nữa có nội dung gần giống offset nhưng cách chọn hơi khác như sau:

trên màn hình là 2 đối tượng kín ( 2 rectang hay 2 pline kín chẳng hạn)

Tải lisp hỏi :

Chọn các đối tượng cần offset (dạng ssget đó các bác à- nếu bình thường chỉ chọn được 1 thôi)

Nhập khoảng cách offset( có thể nhập số hoặc khoảng cách 2 điểm trực tiếp trên màn hình)

Nhập gía trị T hay N (nếu T là offset vào trong, N offset ra ngoài- mặc định là offset ra ngoài)

Mong các Bác giúp em chut nha, em cám ơn 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
Nguyen Hoanh    4.524
Cám ơn anh Hoanh

Em đang cần 1 lisp nữa có nội dung gần giống offset nhưng cách chọn hơi khác như sau:

trên màn hình là 2 đối tượng kín ( 2 rectang hay 2 pline kín chẳng hạn)

Tải lisp hỏi :

Chọn các đối tượng cần offset (dạng ssget đó các bác à- nếu bình thường chỉ chọn được 1 thôi)

Nhập khoảng cách offset( có thể nhập số hoặc khoảng cách 2 điểm trực tiếp trên màn hình)

Nhập gía trị T hay N (nếu T là offset vào trong, N offset ra ngoài- mặc định là offset ra ngoài)

Mong các Bác giúp em chut nha, em cám ơn nhiều !

Không làm được!

 

Bác Hoanh ơi bác có cái lisp nào dùng để vẽ bình đồ ko

Ví dụ: trên bản vẽ có các điểm cao độ lisp này sẽ nối các điểm cao độ đó với nhau

Không 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
Nguyen Hoanh    4.524
[cac bac oi giup em voi

Em là thành viên mới. Em sử dụng lisp stext nhưng nó chỉ áp dụng với dtext. với mtext thì ko đc. Các bác có cao kiến gì giúp em với

Mtext thì dùng Stext để làm gì nữa, nó đã căn các hàng chữ đều nhau rồi!

Lệnh Stext là khắc phục nhược điểm của DText, Mtext không bị nhược điểm này

Chỉ lắp tay giả cho người cụt tay, chứ người còn nguyên cả 2 tay thì lắp làm 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
xaydung    12
bạn save đoạn code sau vào file có tên lisp1.lsp:

(defun c:T()(command ".vpoint" "0,0,1"))
(defun c:L()(command ".vpoint" "1,0,0"))
(defun c:R()(command ".vpoint" "-1,0,0"))
(defun c:F()(command ".vpoint" "0,-1,0"))
(defun c:SW()(command ".view" "_swiso"))

Anh Hoành ơi , tại sao khi render ( diễn hoạ) xong quay lại sử dụng

các lệnh trên lại không được nữa nhỉ, em đã thử mấy loại Cad

đều bị thế cả? chỉ mỗi SW là còn được thôi??

cá cách nào khắc phục không bá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
Nguyen Hoanh    4.524
Anh Hoành ơi , tại sao khi render ( diễn hoạ) xong quay lại sử dụng

các lệnh trên lại không được nữa nhỉ, em đã thử mấy loại Cad

đều bị thế cả? chỉ mỗi SW là còn được thôi??

cá cách nào khắc phục không bác!?

ACAD thông báo gì hả bạ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
xaydung    12
ACAD thông báo gì hả bạn?

em dùng T (mặt bằng) nó báo:

Current view direction: VIEWDIR=0.6110,0.3360,0.0000

Specify a view point or [Rotate] <display compass and tripod>: 0,0,1

Regenerating model.

Command: nil

và màn hình 3D SW bị lệch đi chút xíu-không ra dạng view gì hết

(SE, NE, NW cũng chẳng phả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
congtrinh5    0

Em đang cần lisp có nội dung như sau:

Tải lisp gõ:

3 là lệnh tắt của lệnh UCS với tham số 3 point (nhập 3 điểm tạo mặt phẳng XY hiện thời)

cur là cảnh nhìn khi vào view->3Dviews->Plan view-> current UCS

 

Mong các Bác cao thủ giúp em chut nha, em cám ơn 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
Nguyen Hoanh    4.524
em dùng T (mặt bằng) nó báo:

Current view direction: VIEWDIR=0.6110,0.3360,0.0000

Specify a view point or [Rotate] : 0,0,1

Regenerating model.

Command: nil

và màn hình 3D SW bị lệch đi chút xíu-không ra dạng view gì hết

(SE, NE, NW cũng chẳng phải)?

Có thể là bạn đang ở chế độ nhìn phối cảnh, nên khung nhìn TOP sẽ ở dạng phối cảnh và bạn khó nhận ra. Sau khi sử dụng lệnh T (hoặc F, L,...), bạn thử gõ PERSPECTIVE vào dòng lệnh rồi nhập giá trị 0 xem sao?

 

 

 

Em đang cần lisp có nội dung như sau:

Tải lisp gõ:

3 là lệnh tắt của lệnh UCS với tham số 3 point (nhập 3 điểm tạo mặt phẳng XY hiện thời)

cur là cảnh nhìn khi vào view->3Dviews->Plan view-> current UCS

Mong các Bác cao thủ giúp em chut nha, em cám ơn nhiều !

Tham khảo các mã viết cho Xaydung chắc các bạn cũng biết cách viết rồi. Về sau những lệnh tương tự như thế này, mọi người tự viết nhé!

(defun c:3() (command ".ucs" "3" pause pause pause))
(defun c:cur() (command ".plan" "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
xaydung    12

Tìm lisp gán layer cho các đối tượng rời rạc có nội dung như sau:

VD: trên màn hình là 3 đối tượng rởi như :pline, box, rectang

khi chọn các đối tượng trên thì chương trình tự động gán cho mỗi đối tượng

rời trên 1 layer (không quan trọng thứ tự)

khi nhìn vào bảng layer thấy:

pline thuộc lớp tên là layer1

box thuộc lớp tên là layer2

rectang thuộc lớp tên là layer3

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

×