xj6019 发表于 2019-11-21 11:59:42

上面的截图 是运行下面的代码   这只是 试了一下    其他所有的v函数都显示类似的错误   有时候末尾的英文不同   前面都一样的



(princ "\n程序:统计线段长度 命令:zz")
(defun C:zz (/ CURVE TLEN SS N SUMLEN)
(vl-load-com)
(setq SUMLEN 0)
(setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
(setq N 0)
(repeat (sslength SS)
(setq CURVE (vlax-ename->vla-object (ssname SS N)))
(setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE)))
(setq SUMLEN (+ SUMLEN TLEN))
(setq N (1+ N))
)
(princ (strcat "\n共选择 " (itoa (sslength SS)) " 条线段,线段总长:" (rtos SUMLEN 2 0) "毫米。"))
(princ)
)

Andyhon 发表于 2019-11-21 13:00:32

AutoCAD R14!?

xj6019 发表于 2019-11-21 13:32:00

Andyhon 发表于 2019-11-21 13:00
AutoCAD R14!?

不是啊   cad2018

xj6019 发表于 2019-11-21 21:20:45

e2002 发表于 2019-11-21 09:46
你简单写段代码就实现了你的要求
1. 获取选择集 ss
2. 获取边界范围角点坐标 pt_ll , pt_rt


您好 ,lisp我是菜鸟中的菜鸟,就会用用,不会写哦,好不好麻烦您抽点时间弄一下啊   谢谢了

maiko 发表于 2019-11-26 11:15:25

xj6019 发表于 2019-11-21 11:57
我看代码里面也有这一段    逛论坛的时候有人说 加上这段 v函数就能运行可是我的电脑就是不行    完全不 ...

你用的是精简版CAD

lee50310 发表于 2019-11-26 13:28:49

本帖最后由 lee50310 于 2019-11-26 13:43 编辑

(游標旋轉45+鏡射)
執行指令:dng

(恢復正常游標)
執行指令:undng

;----------------------------------------------------
;;游標轉45度+鏡射
(defun c:dng (/ u ang pt1)
(setq u (/ pi 180))
(setq ang (* 45 u))
(setvar "snapang" ang);游標轉45度
(setq en (entsel))      ;選擇物體
(setq pt1 (getpoint "\指定鏡射線的第一點:" ))
(command "mirror" en "" pt1 PAUSE PAUSE)
(princ)
)

;;恢復正常游標
(defun c:undng ()
   (setvar "snapang" 0);游標恢復正常
)
;-------------------------------------------

maiko 发表于 2019-11-26 19:42:07

本帖最后由 maiko 于 2019-11-26 19:48 编辑

;加个执行完后自动回原变量
(defun c:dng ( / *error* s p var val )
(defun *error* ( msg )
    (mapcar '(lambda ( a b ) (if b (setvar a b))) var val)
    (if (and msg (not (wcmatch (strcase msg t) "*break,*cancel*,*exit*")))
      (princ (strcat "\nError: " msg))
    )
    (princ)
)
(if (setq s (ssget))
    (if (setq p (getpoint "\n指定点"))
      (progn
      (setq var '(osmode snapang) val (mapcar 'getvar var))
      (mapcar '(lambda ( a b c ) (if a (setvar b c))) val var (list 0 (* 45 (/ pi 180))))
      (command "mirror" s "" p pause pause)
      )
    )
)
(*error* nil)
)

xj6019 发表于 2019-11-26 20:07:00

maiko 发表于 2019-11-26 19:42
;加个执行完后自动回原变量
(defun c:dng ( / *error* s p var val )
(defun ...

谢谢 功能实现了   就是最后能默认为不保留吗   或者直接不询问也行默认就不保留就可以
或者能不能像下面一样这个我还能看的懂   知道改一下NY就能控制保留不保留,你的这个代码 我看不懂,要改也不知道怎么下手,莫笑哦   水平太次了
(defun c:hg( / &kw @p1 @p2)
(setq &kw (ssget))
(if (/= &kw nil) (setq @p1 (getpoint "\第一鏡像点")) )
(if (/= @p1 nil) (setq @p2 (getpoint @p1 "\第二鏡像点 ")) )
(if (/= @p2 nil)
(command "mirror" &kw "" @p1 @p2 "Y")
)
(prin1)
)

maiko 发表于 2019-11-26 20:17:35

xj6019 发表于 2019-11-26 20:07
谢谢 功能实现了   就是最后能默认为不保留吗   或者直接不询问也行默认就不保留就可以
或者能不能 ...
自已动手,要学会搜索,善用搜索

xj6019 发表于 2019-11-26 20:23:21

maiko 发表于 2019-11-26 20:17
自已动手,要学会搜索,善用搜索

不好意思麻烦帮我弄弄吧   我想法改过了不行啊   运行不了
页: 1 [2] 3
查看完整版本: lisp 能实现沿着45度 镜像吗,询问是否保留,不保留直接空格