李青松 发表于 2013-8-21 15:35:12

修剪

文件是trim&extend.lsp,这是一个修剪用的lsp文件,我想这个程序能改一下就好了。在启动命令后不需要选择1个或多个修剪边,默认就是选择全部,这样命令用起来更快,哪个高手能不能改1下,改完后可以发到我qq邮箱里,qq:1024161729 在这里先多谢了

ll_j 发表于 2013-8-21 16:44:25

没见程序有过人之处,现在的版本都有这个功能,只是要一个回车,如果想要,就这样:
(defun c:ki()(command ".trim" "")
(defun c:ku()(command ".extend" "")

李青松 发表于 2013-8-22 11:16:58

我试一下,多谢你的关注,

李青松 发表于 2013-8-22 11:24:55

我用的是2005版,所以修剪命令没那么强大,所以你给的程序在2005版本中功能不是很大
我现在要的是在我的那个程序里修改1下实现自动选择全部的功能
我的意思是这样的

李青松 发表于 2013-8-22 11:26:09

期待解决,求助高手

AMTONNY 发表于 2013-8-23 14:31:59

试下我在用的吧
(defun c:TYY (/ PT0 pt PTLIST PTLIST0 ss out CMDECHO OSMODE)
(setq cmdecho (getvar "cmdecho")
osmode (getvar "osmode")
)
(princ "\n 提示:超强修剪启动中....")
(while (and (setq ptlist0 (getpoint_list))
       (> (length ptlist0) 1)
)
    (setvar "cmdecho" 0)
    (setvar "osmode" 0)
    (setq pt0(car ptlist0)
   ptlist (cdr ptlist0)
    )
    (command "trim" "")
    (foreach pt ptlist
      (command "f" pt0 pt "")
      (setq pt0 pt)
    )
    (command "")
    (if (setq ss (ssget "f" ptlist0))
      (command "erase" ss "")
    )
    (setvar "osmode" osmode)
    (setvar "cmdecho" cmdecho)
)
(princ)
)
(defun getpoint_list ( / DIS OUT PT)
(setq pt (getpoint "\n --->>>请指定画线开始点或 <退出>:"))
(princ "\n按任意键结束:")
(if (= (type pt) 'LIST)
    (progn
      (setq out (list pt)
   dis (* 0.01 (getvar "viewsize")))
      (while (= 5 (car (setq pt (grread t 4 0))))
(setq pt (cadr pt))
         (if (> (distance pt (car out)) dis)
    (progn
      (grdraw pt (car out) 1)
      (setq out (cons pt out))
      )
    )
)
      )
    )

(redraw)
(reverse out))
;;;(princ "\n 结束超级修剪......欢迎使用")
;;可框的修剪
(defun c:TY ()
(setq osvalue (getvar "osmode"))
(SETVAR "CMDECHO" 0)
(setvar "osmode" 0)
(princ "\n 提示:超强框剪启动中....")
(setq        plist nil ssnil pt0 nil len nil)
                  (setq        pt311 (getpoint "\n请框选被修剪对象:")
                        pt331 (getcorner pt311)
                        ss (ssget "c" pt311 pt331)
                  )


;;;;;;;;;;;;
    ;(setq s1 (ssget "C" pt311 pt331))
;;;;;;;;;;;;
      (setq len (sslength ss))
      ;(setq len (sslength s1))

                  (SETq LEN2 (SSLENGTH SS))
                  (setq pt321 (list (car pt311) (cadr pt331))
                          pt341 (list (car pt331) (cadr pt311))
                  )
                  (command "trim" ss "")
                  ;(command "trim" s1 "")
                  (REPEAT LEN2
                      (COMMAND "NON" "f" pt311 pt321 pt331 pt341 pt311 "")
                  )
                  (COMMAND "")
                  
       

       (command "undo" "e")
       (setvar 'cmdecho 1)
(setvar "osmode" osvalue )
(setvar "ORTHOMODE" 1)
(PRINC)
)
;;可框的修剪
(defun c:TTY ()
(setq osvalue (getvar "osmode"))
(SETVAR "CMDECHO" 0)
(setvar "osmode" 0)
(princ "\n 提示:超强框剪启动中....")
(setq        plist nil ssnil pt0 nil len nil)
                  (setq        pt311 (getpoint "\n请框选被修剪对象:")
                        pt331 (getcorner pt311)
                        ss (ssget "c" pt311 pt331)
                  )


;;;;;;;;;;;;
    ;(setq s1 (ssget "C" pt311 pt331))
;;;;;;;;;;;;
      (setq len (sslength ss))
      ;(setq len (sslength s1))

                  (SETq LEN2 (SSLENGTH SS))
                  (setq pt321 (list (car pt311) (cadr pt331))
                          pt341 (list (car pt331) (cadr pt311))
                  )
                  (command "trim" ss "")
                  ;(command "trim" s1 "")
                  (REPEAT LEN2
                     (COMMAND "NON" "f" pt331 pt321 "");;;上下边
                     (COMMAND "NON" "f" pt331 pt341 "");;;左右边
                     ;(COMMAND "NON" "f" pt331 pt321 "")底边
                      ;;(COMMAND "NON" "f" pt311 pt321 "")右边
                  )
                  (COMMAND "")
                  
       

       (command "undo" "e")
       (setvar 'cmdecho 1)
(setvar "osmode" osvalue )
(setvar "ORTHOMODE" 1)
(PRINC)
)
;;可框的修剪
(defun c:trr ()
(setq osvalue (getvar "osmode"))
(SETVAR "CMDECHO" 0)
(setvar "osmode" 0)
(princ "\n 提示:超强框剪启动中....")

                  (setq        pt311 (getpoint "\n请框选被修剪对象:")
                        pt331 (getcorner pt311)
                  )
                  (command "trim" """f" pt331 pt311 "" "");;;上下边

       (setvar 'cmdecho 1)
(setvar "osmode" osvalue )
(setvar "ORTHOMODE" 1)
(PRINC)
)

李青松 发表于 2013-8-25 11:49:19

我试一下,谢谢你的热心,多谢,多谢

李青松 发表于 2013-8-28 17:00:30

我试了,那些命令是分开来的,若能像2010版中的修剪那样,能点能框,能默认选择全部,就更好了。问题仍然未得到解决

Imagizz 发表于 2014-3-4 15:06:36

为啥不换2010
页: [1]
查看完整版本: 修剪