minhphuong_humg 发表于 2022-7-5 20:06:23

帮我,用lisp复制一个框架!

大家好。
我有一张大图。我想把帧复制到另一帧。
请帮我写一个lisp。非常感谢你!
文件附加:

 
 

 
 

文件dwg:
https://www.mediafire.com/?v7qn32qcaq2ighf
非常感谢。

BIGAL 发表于 2022-7-5 20:20:21

尝试使用具有大图片的布局,然后使用缩放C在小布局内拾取点并设置比例等。

Stefan BMR 发表于 2022-7-5 20:23:22

我同意比格尔的建议,但如果你想在模型空间中工作,试试这个老套路。
(defun C:CUT (/ *error* e p1 p2 p3 ss echo osmode)

(setq echo (getvar "cmdecho"))
(setq osmode (getvar "OSMODE"))

(defun *error* (msg)
   (if msg (princ msg))
   (command "_UNDO" "E")
   (setvar "OSMODE" osmode)
   (setvar "cmdecho" echo)
   (princ)
   )

(setvar "OSMODE" 0)
(setvar "cmdecho" 0)
(if (and
       (setq p1 (getpoint "\nFirst corner: "))
       (setq p2 (getcorner p1 "\nSecond corner: "))
       (progn (if (not etrim) (load "extrim.lsp" "Extrim not found")) T)
       etrim
   )
   (progn
   (command "_RECTANGLE" p1 p2)
   (command "_UNDO" "BE")
   (setq e (entlast))
   (setq p3 (polar p1 (angle p2 p1) (* 0.5 (distance p1 p2))))
   (etrim e p3)
;;;      (entdel e )
   (setq ss (ssget "W" p1 p2))
   (command "_copybase" p2 ss "")
   (command "_UNDO" "B")
   (command "_pasteclip" pause)
   )
   )
(command "_UNDO" "E")
(setvar "OSMODE" osmode)
(setvar "cmdecho" echo)
(princ)
)

minhphuong_humg 发表于 2022-7-5 20:30:57

亲爱的Stefan BMR!
我喜欢你的方式,因为这是我的习惯(在模型上工作)!然而,如果我从矩形框架的两个角点开始,autolisp工作似乎与剪切autolisp绘图的框架并不完全一样。那么您可以通过选择框架(矩形)来编辑autolisp?请帮帮我!如果是这样,那太好了。谢谢并致以最良好的问候!
零件编号:
因为,当我加载你的lisp时,是Snap(Osnap)全部清除,而不是选择我的例程(端点、中点、最近点)
非常感谢Stefan BMR!

Stefan BMR 发表于 2022-7-5 20:40:05

试试这个。无法选择对象,但Osnap设置可用。

(defun C:CUT (/ *error* e p1 p2 p3 ss echo undo)
(setq echo (getvar "cmdecho"))

(defun *error* (msg)
   (if msg (princ msg))
   (setvar "cmdecho" echo)
   (princ)
   )

(if
    (and
       (setq p1 (getpoint "\nFirst corner: "))
       (setq p2 (getcorner p1 "\nSecond corner: "))
       (not (equal p1 p2 1e-5))
       (progn (if (not etrim) (load "extrim.lsp" "Extrim not found")) T)
       etrim
   )
   (progn
   (setvar "cmdecho" 0)
   (setq undo (getvar 'undoctl))
   (if (= 0 (logand 1 undo)) (command "_UNDO" "_ALL"))
   (command "_RECTANGLE" "_non" p1 "_non" p2)
   (command "_UNDO" "_M")
   (setq e (entlast))
   (etrim e (getvar 'vsmin))
   (command "_zoom" "_o" e "")
   (setq ss (ssget "W" p1 p2))
   (command "_copybase" p2 ss "")
   (command "_UNDO" "_B")
   (command "_pasteclip" pause)
   (if (= 0 (logand 1 undo)) (command "_UNDO" "_C" "_NONE"))
   (setvar "cmdecho" echo)
   )
   )
(*error* nil)
(princ)
)

minhphuong_humg 发表于 2022-7-5 20:44:44

尊敬的Stefan BMR!
看来你还没有签出我寄来的图纸。我下载了你的lisp,并在我的图纸上再次尝试不工作的lisp(矩形框架的选定角)。
请直接在我的图纸上试用(附件)。
文件附加:
http://www.mediafire.com/download/v7qn32qcaq2ighf/Help_Copy_Frame.dwg
真诚的BMR。
文件视频演示您的lisp:
非常感谢你!

Stefan BMR 发表于 2022-7-5 20:56:38

添加红线
..........
(etrim e (getvar 'vsmin))
(command "_zoom" "_o" e "")
(setq ss (ssget "W" p1 p2))
..............

minhphuong_humg 发表于 2022-7-5 21:03:46

 
非常感谢Stefan BMR!

minhphuong_humg 发表于 2022-7-5 21:07:10

 
尊敬的Stefan BMR!
使用lisp一段时间后。我发现唯一的选择是看起来像其他形状(多边形)的lisp正方形。你能帮我修改你的lisp吗?这样我就可以选择不同的形状了?
我非常感谢你!
衷心感谢Stefan BMR!
文件附件图像。
[形状颜色洋红色]
页: [1]
查看完整版本: 帮我,用lisp复制一个框架!