明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6287|回复: 35

求高手编写LISP程序

  [复制链接]
发表于 2013-1-9 21:00:00 | 显示全部楼层 |阅读模式
1明经币
本帖最后由 fhcd88 于 2013-1-9 22:39 编辑

求高手编写LISP程序,请下载
程序要求:在附件中用鼠标点绘形成如红线多边形选择框,在与其他线相交处打断其他线,保留红线框内多线段,红线框外线段删除。
选择框可用请用如下代码生成:
  (setq gpt (getpoint "\n 第一圈围点: ") lst (list gpt))
  (while gpt
    (initget 32)
    (princ "\n 指定直线的端点: ")
    (if (setq gpt (getpoint gpt "\n 指定直线的端点: "))
      (progn
    (setq lst (cons gpt lst))
    (redraw);;;
    (mapcar '(lambda (p1 p2)
               (grvecs (list -7 p1 p2))
             )
             lst
             (append (cdr lst) (list (car lst)))
    )
      )
    )
  )
附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

发表于 2013-1-9 21:00:01 | 显示全部楼层
本帖最后由 Andyhon 于 2013-1-9 22:33 编辑

Try only ...

  1. (vl-load-com)
  2. (Defun c:test ()
  3.    (setq pt (getpoint "\n第一圈围点: "))
  4.    (command "pline" pt)
  5.    (while (= (logand (getvar "CmdActive") 1) 1) (command pause))
  6.    (setq ee (entlast))
  7.    (setq ;; (entsel "\n 选取红线多边形选择框: ")
  8.         obj (vlax-ename->vla-object ee)   ; obj
  9.    )
  10.    (vla-offset obj 1)
  11.    (setq aa1  (vla-get-area (vlax-ename->vla-object (setq ee1 (entlast)))))
  12.    (vla-offset obj -1)
  13.    (setq aa2  (vla-get-area (vlax-ename->vla-object (setq ee2 (entlast)))))
  14.    (if (< aa2 aa1)
  15.      (setq eee ee1)
  16.      (setq eee ee2)
  17.    )
  18.    (setq pts (acet-geom-pline-point-list eee nil))
  19.    (entdel ee1)
  20.    (entdel ee2)
  21.    
  22.    (SetVar 'OsMode 0)
  23.    (repeat 2
  24.      (command "trim" ee "" "f")
  25.      (mapcar 'command pts)
  26.      (command "" "")
  27.    )
  28. )

点评

能否就使用我贴子中给的绘制选择框的程序啊,请把代码加进去,谢谢  发表于 2013-1-9 22:16
回复

使用道具 举报

发表于 2013-1-9 21:48:00 | 显示全部楼层
给个图样
回复

使用道具 举报

发表于 2013-1-9 21:53:10 | 显示全部楼层
留个脚印,等答案!
回复

使用道具 举报

 楼主| 发表于 2013-1-9 22:30:31 | 显示全部楼层
本帖最后由 fhcd88 于 2013-1-9 22:31 编辑

试了一下,出错,再者能否就使用我贴子中给的绘制选择框的程序啊,请把代码加进去,谢谢
回复

使用道具 举报

发表于 2013-1-9 22:33:02 | 显示全部楼层
...出错...

得有 Acet-* 函数;
搜 ET / Express Tools
回复

使用道具 举报

 楼主| 发表于 2013-1-9 22:49:24 | 显示全部楼层
我再试试,能否还是请你完整用我给的绘选择框的代码绘选择框,因为我程序中其他部分在用
回复

使用道具 举报

发表于 2013-1-9 23:06:28 | 显示全部楼层
本帖最后由 Andyhon 于 2013-1-9 23:41 编辑


  1. (Defun test ()
  2.   (setq gpt (getpoint "\n 第一圈围点: ")
  3.         lst (list gpt)
  4.   )
  5.   (while gpt
  6.     (initget 32)
  7.     (princ "\n 指定直线的端点: ")
  8.     (if (setq gpt (getpoint gpt "\n 指定直线的端点: "))
  9.       (progn
  10.         (setq lst (cons gpt lst))
  11.         (redraw)
  12.         (mapcar '(lambda (p1 p2)
  13.                    (grvecs (list -7 p1 p2))
  14.                  )
  15.                 lst
  16.                 (append (cdr lst) (list (car lst)))
  17.         )
  18.       )
  19.     )
  20.   )
  21.   lst
  22. )

  23. (Defun c:test ()
  24.    ;; (setq pt (getpoint "\n第一圈围点: "))
  25.    (setq pts (test))
  26.    (command "pline")
  27.    (mapcar 'command pts)
  28.    (command "C")
  29.    (setq ee (entlast))
  30.    ;; 红线多边形选择框请先绘制
  31.    (setq ;; (entsel "\n 选取红线多边形选择框: ")
  32.         obj (vlax-ename->vla-object ee)   ; obj
  33.    )
  34.    (vla-offset obj 1)
  35.    (setq aa1  (vla-get-area (vlax-ename->vla-object (setq ee1 (entlast)))))
  36.    (vla-offset obj -1)
  37.    (setq aa2  (vla-get-area (vlax-ename->vla-object (setq ee2 (entlast)))))
  38.    (if (< aa2 aa1)
  39.      (setq eee ee1)
  40.      (setq eee ee2)
  41.    )
  42.    (setq pts (acet-geom-pline-point-list eee nil))
  43.    (entdel ee1)
  44.    (entdel ee2)
  45.    (SetVar 'OsMode 0)
  46.    (repeat 2
  47.      (command "trim" ee "" "f")
  48.      (mapcar 'command pts)
  49.      (command "" "")
  50.    )
  51.    (redraw)
  52.    (entdel ee)
  53.    (setq ss (ssget "WP" pts))
  54. )
回复

使用道具 举报

 楼主| 发表于 2013-1-9 23:14:08 | 显示全部楼层
能否再帮忙加两行代码,一是做一个选择集选择所绘框内所有图元,含框线经过的图元;二是,删除所绘框,谢谢
回复

使用道具 举报

 楼主| 发表于 2013-1-9 23:21:14 | 显示全部楼层
能加上后面的代码的话,可以就用你前面的程序直接绘框
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 11:18 , Processed in 0.212977 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表