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

Xin lisp giống lệnh trim

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

Ồ, đồ chế rồi. Cái này nguyên gốc của OP post lên ý

Tham số thứ 2 là maximum allowable error distance for resolution of arc segments , liên quan đến độ phân giải của màn hình, k biết phải dịch sao nữa. Và nó k chỉ chạy từ -1,0,1

  • 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

Lisp này để trích lục bản vẽ giống MicroStation. À đúng rồi, có báo lỗi khi chạy lisp và sau khi chạy thì mở bản vẽ nào lên cũng không chọn vùng đối tượng bằng quét chuột được mà phải zoom đối tượng to lên và nhấn Esc nhiều lần mới được (giống như là bị tắt chọn đối tượng nhưng kiểm tra trong Selection không phải)

Nó báo lỗi khi thực hiện lệnh :

Command: EE

Chon duong bao : _.zoom

Specify corner of window, enter a scale factor (nX or nXP), or

[All/Center/Dynamic/Extents/Previous/Scale/Window] <real time>: _w

Specify first corner: Specify opposite corner:

Command: _.Zoom

Specify corner of window, enter a scale factor (nX or nXP), or

[All/Center/Dynamic/Extents/Previous/Scale/Window] <real time>: 0.95x

Command:

Phia cat va xoa bo : [T/P]P

_.ucs

Current ucs name: *WORLD*

Enter an option [New/Move/orthoGraphic/Prev/Restore/Save/Del/Apply/?/World]

<World>: _View

Command: _.zoom

Specify corner of window, enter a scale factor (nX or nXP), or

[All/Center/Dynamic/Extents/Previous/Scale/Window] <real time>: _w

Specify first corner: Specify opposite corner:

Command: _.pline

Specify start point:

Current line-width is 0.0000

Specify next point or [Arc/Halfwidth/Length/Undo/Width]:

Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Command: _.area

Specify first corner point or [Object/Add/Subtract]: _ob

Select objects:

Area = 9916.6388, Length = 416.9999

Command: _.offset

Specify offset distance or [Through] <Through>: 8.807760146027431

Select object to offset or <exit>:

Specify point on side to offset:

Select object to offset or <exit>:

Command: _.area

Specify first corner point or [Object/Add/Subtract]: _ob

Select objects:

Area = 13884.4424, Perimeter = 483.9791

Command: _.offset

Specify offset distance or [Through] <8.8078>: 4.403880073013716

Select object to offset or <exit>:

Specify point on side to offset:

Select object to offset or <exit>:

Command: _.area

Specify first corner point or [Object/Add/Subtract]: _ob

Select objects:

Area = 11826.7985, Perimeter = 450.4895

Command: _.offset

Specify offset distance or [Through] <4.4039>: 0.312331920071895

Select object to offset or <exit>:

Specify point on side to offset:

Select object to offset or <exit>:

Command: _.area

Specify first corner point or [Object/Add/Subtract]: _ob

Select objects:

Area = 10047.2521, Perimeter = 419.3751

Command: _.ucs

Current ucs name: *WORLD*

Enter an option [New/Move/orthoGraphic/Prev/Restore/Save/Del/Apply/?/World]

<World>: _p

Command: _.move

Select objects: 27 found

Select objects: Specify base point or displacement: 0,0,0 Specify second point

of displacement or <use first point as displacement>: 0,0,0

Command: _.ucs

Current ucs name: *WORLD*

Enter an option [New/Move/orthoGraphic/Prev/Restore/Save/Del/Apply/?/World]

<World>: _3p

Specify new origin point <0,0,0>: 0,0,0

Specify point on positive portion of X-axis <1.0000,0.0000,0.0000>:

Specify point on positive-Y portion of the UCS XY plane <0.0000,1.0000,0.0000>:

Command: _.copy

Select objects: 1 found

Select objects: Specify base point or displacement, or [Multiple]: 0,0,0

Specify second point of displacement or <use first point as displacement>: 0,0,0

Command: _.pedit Select polyline or [Multiple]:

Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype

gen/Undo]: _w

Specify new width for all segments: 0.0

Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype

gen/Undo]: _x

Command: _.ucs

Current ucs name: *WORLD*

Enter an option [New/Move/orthoGraphic/Prev/Restore/Save/Del/Apply/?/World]

<World>: _p

Command: _.trim

Current settings: Projection=UCS, Edge=None

Select cutting edges ...

Select objects: 1 found

Select objects:

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Object does not intersect an edge.

Object does not intersect an edge.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Object does not intersect an edge.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Cannot TRIM this object.

Object does not intersect an edge.

Cannot TRIM this object.

Cannot TRIM this object.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Object does not intersect an edge.

No intersections in the interior of the curve.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Object does not intersect an edge.

No intersections in the interior of the curve.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Select object to trim or shift-select to extend or [Project/Edge/Undo]: _F

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

No intersections in the interior of the curve.

Select object to trim or shift-select to extend or [Project/Edge/Undo]:

Command: _.zoom

Specify corner of window, enter a scale factor (nX or nXP), or

[All/Center/Dynamic/Extents/Previous/Scale/Window] <real time>: _p

Command: ; error: bad argument type: lselsetp nil

Đ Â Y LÀ BẢN VẼ :

 

http://www.cadviet.com/upfiles/3/116810_banve.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

chúc toàn thể anh em 1 năm mới mạnh khoẻ và thuận lợi trong công việc!

mong anh em coi giúp xem nó bị sao mà ko chọn đối tượng được sau khi thực hiện lệnh 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

Bạn gửi bản vẽ lỗi lên xem nào smile.png Mình viết từ hồi nảo đến giờ, còn không nhớ lisp nó làm cái j nữa cơ, nhưng mà nó k báo lỗi gì thì tệ 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

anh ketxu ơi, anh có thể coi giúp em cái lisp của anh nó bị tình trạng như trên là do đâu được không anh? và nếu có thể anh có thể giúp em xoá được các đối tượng bên ngoài đường Poline nữa được không? (đối tượng dùng khung REC thì được rồi!) 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

đây là đoạn code em đã copy ở #16.
 đoạn hỏi: Phia cat va xoa bo : [T/P] anh có thể chọn bằng cách pick về phía cần cắt xóa

trong hoặc ngoài được không ạ! cảm ơn anh
 

;free lisp from Cadviet.com @gia_bach -> ketxu ^^
(defun C:EE ( / en ss lst ssall bbox tmpvt lit)
(vl-load-com)
(if (null etrim)(load "extrim.lsp"))
(setq tmpvt '(1e+10 0 0))
(if (and (setq en (car(entsel "\n Chon duong bao : ")))
(wcmatch (cdr(assoc 0 (entget en))) "LINE,*POLYLINE"))
(progn
(setq bbox (ACET-ENT-GEOMEXTENTS en))
(setq bbox (mapcar '(lambda(x)(trans x 0 1)) bbox))
(setq lst (ACET-GEOM-OBJECT-POINT-LIST en 1e-3)
lit (nth (1- (length lst)) lst))
(ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list en)))
(command "_.Zoom" "0.95x")
(setq ssall (ssget "_X" (list (assoc 410 (entget en)))))
(if (vlax-curve-isClosed en)
(progn
(etrim en (getpoint "\n Phia cat va xoa bo : "))
(setq ss (ssget "_CP" lst))
)
(progn
(initget 1 "t p T P")
(if (= (strcase(getkword "\n Phia cat va xoa bo : [T/P]")) "T")
(progn
(etrim en (mapcar '- (nth 0 lst) '(1e+10 0 0)))
(setq ss (ssget "_CP"
(append (list (nth 0 lst) (mapcar '+

(nth 0 lst) tmpvt) (mapcar '+ lit tmpvt) lit))))
)
(progn
(etrim en (mapcar '+ (nth 0 lst) '(1e+10 0 0)))
(setq ss (ssget "_CP"
(append (list (nth 0 lst) (mapcar '- (nth 0 lst)

tmpvt) (mapcar '- lit tmpvt) lit))))
)
)
)
)
(setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
(foreach e1 lst (ssdel e1 ssall))
(ACET-SS-ENTDEL ssall)
)
)
)

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 cao thủ trên cadviet ơi, có bác nào có thể coi giúp em xem làm sao mà bị lỗi gì mà sau lần dùng đầu tiên là nó không chọn được vùng đối tượng chọn trên bản đồ nữa, phải gỡ ra thì lại chọn vùng đối tượng lại bình thường. ngày nào em cũng lướt qua diễn đàn để mong có sự giúp đỡ hơn 1 tháng nay rồi, dù có chút hi vọng mong manh ...!

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 cao thủ trên cadviet ơi, có bác nào có thể coi giúp em xem làm sao mà bị lỗi gì mà sau lần dùng đầu tiên là nó không chọn được vùng đối tượng chọn trên bản đồ nữa, phải gỡ ra thì lại chọn vùng đối tượng lại bình thường. ngày nào em cũng lướt qua diễn đàn để mong có sự giúp đỡ hơn 1 tháng nay rồi, dù có chút hi vọng mong manh vẫ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

Srr dạo ni mình bận quá :(

Lỗi của bạn do ACET k trả biến highlight về

Mình ngại code inside outside, mà xét về vấn đề đã trích thì phải xoá ngoài chứ, đúng k ^^ Nên để thế này thôi cho nhanh (qqcode)

 

(defun C:EE ( / e ss lst ssall bbox   *error*) 
(defun *error* (msg)(alert (strcat "Error found :\n\n" msg))(setvar 'Highlight 1)(vl-cmdf "undo" "end"))
(vl-load-com)(command "undo" "be")(setvar 'cmdecho 0)
(if (null etrim)(load "extrim.lsp"))
(prompt "\nChon duong bao <Pline> :")
(while (not (setq e (ssget ":S" (list (cons 0 "*POLYLINE"))))))
(if	(> (acet-dxf 90 (entget (setq e(ssname e 0)))) 2)
(progn
	(setq 	bbox (ACET-ENT-GEOMEXTENTS e)
			bbox (mapcar '(lambda(x)(trans x 0 1)) bbox)
			lst (ACET-GEOM-OBJECT-POINT-LIST e 1e-3)
	)
	(ACET-SS-ZOOM-EXTENTS (ACET-LIST-TO-SS (list e)))
	(command "_.Zoom" "0.95x") 
	(setq ssall (ssget "_X" (list (assoc 410 (entget e)))))	  
	(etrim e '(0 0 0))
	(setq ss (ssget "_CP" lst))		
	(setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))))
				(foreach e1 lst (ssdel e1 ssall))
				(ACET-SS-ENTDEL ssall)
)
(alert "\nChon Pline lon hon 2 dinh")
)
(setvar 'Highlight 1)(command "undo" "be")
(princ))
  • 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

Mình down về và chạy thử lisp, mình có ý thế này:

Nếu là mình yêu cầu, mình sẽ yêu cầu thêm phần chọn đối tượng (quét chọn vùng) sẽ bị trim & xóa trước

Vì: Có trường hợp bạn sẽ cần trích 2; 3 ... cái bản vẽ chi tiết từ bản vẽ mẹ mà dùng cái lisp này thì bạn sẽ cần lưu ra thành 2; 3... file rồi !!!

<Bực mình vì ko biết sửa lisp -->đăng ký học mau thôi> :D

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

@h : Bạn xoá chứ "x" trong dòng setq ssall ... là thành yêu cầu của bạn

1. Mình xoá "_X" và lưu lại nhưng ko đc như ý (cụ thể là vẫn cắt "tất" như cũ)

2. Tiện bác Két cho mình hỏi: để đc set vào học lớp Auto lisp Online ngay thì phải làm gì vậy ?

3. Srr vì spam

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ệnh của bác ketxu rất chi là.... nó xóa hết đối tượng nắm ở phần mình chọn... đơn giản hóa vấn để mình dùng extrim là được thôi mà.. đừng phụ thuộc quá nhiều vào lisp

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ạn đọc bài yêu cầu của chủ third chưa nhỉ ? Bạn ấy muốn vậy mà.

ps : Mình thấy thực trạng nhiều bạn cứ vào thấy lisp là hăm hở down về dùng thử, buồn lắm thay ^^

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


×