乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 13|回复: 11

[编程交流] lisp中的trim方法

[复制链接]

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 23:42:48 | 显示全部楼层 |阅读模式
你好
我正在寻找一些自动修剪对象的方法
目前我使用的是简单函数
  1. (defun trim_entity (ss en point / )
  2. (command "_trim" ss "" (list en point) "")
  3. )

但是有没有其他方法(我不想使用“command”)来修剪lisp代码中的对象?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 23:53:17 | 显示全部楼层
你需要发布一个你想要的图像等,特定的修剪Lisp通常只做1风格的修剪。外面有很多。
回复

使用道具 举报

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-5 23:56:43 | 显示全部楼层
我需要的只是关于修剪对象的任何其他方法的信息(例如vla方法),
我将编写一个例程,用于修剪图形上垂直(或水平)连接线上的所有对象
我不想基于(命令“_trim”…我正在寻找一些替代方案
回复

使用道具 举报

4

主题

194

帖子

192

银币

初来乍到

Rank: 1

铜币
25
发表于 2022-7-5 23:59:47 | 显示全部楼层
看看这里。。。
 
http://www.lee-mac.com/intersectionfunctions.html
回复

使用道具 举报

26

主题

1495

帖子

20

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
118
发表于 2022-7-6 00:05:54 | 显示全部楼层
你说的是2D还是WCS大卫
回复

使用道具 举报

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:12:27 | 显示全部楼层
2D,始终为WCS
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 00:18:47 | 显示全部楼层
 
从ExpressTools中查找lisp。。。
ET-(c:extrim)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 00:26:03 | 显示全部楼层
像marko_ribar extrim一样,它消除了所有的困难,唯一的问题是您必须首先加载express lisp才能使用,一个简单的示例是一个对象和一个点。另外请注意,命令ETRIM not extrim最初发现了我,但找到了帮助。
 
  1. (load "Extrim")
  2. (etrim obj pt1)
回复

使用道具 举报

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 00:27:48 | 显示全部楼层
expresstools是否仅适用于autocad?我同时使用acad和bricscad,不幸的是,a无法在bricscad中加载expresstools
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 00:35:29 | 显示全部楼层
这是不可能的。
 
 
试试这个,又快又脏。
 
  1. (defun c:test ( / xL p dir dirx Emax Emin d_off px xL2 px1 px2)
  2.    (if (and
  3.            (setq xL (car (entsel "\nPick a XLine for cutting edge... ")))
  4.            (setq p (getpoint "\nSpecify the side to trim on: "))
  5.            (setq dir (cdr (assoc 11 (entget xL))))
  6.            (setq dir (list (abs (car dir)) (abs (cadr dir)) (last dir)))
  7.            (or
  8.                (setq dirx (equal dir '(1.0 0.0 0.0) 1e-5))
  9.                (equal dir '(0.0 1.0 0.0) 1e-5)
  10.            )
  11.        )
  12.        (progn
  13.            (setq Emax (getvar 'extmax))
  14.            (setq Emin (getvar 'extmin))
  15.            (setq d_off (/ (distance Emax Emin) 4000)); <- change depending on the
  16.                                                      ;    size of the model you have.
  17.            (command "_offset" d_off xL "_non" p "")
  18.            (setq xL2 (entlast))
  19.            (setq px (cdr (assoc 10 (entget xL2))))
  20.            (if dirx
  21.                (setq px1 (list (car Emin) (cadr px))
  22.                      px2 (list (car Emax) (cadr px)))
  23.                (setq px1 (list (car px) (cadr Emin) )
  24.                      px2 (list (car px) (cadr Emax)))
  25.            )
  26.            (command "_zoom" "_w" "_non" px1 "_non" px2)
  27.            (command "_trim" xL "" "_f" "_non" px1 "_non" px2 "" "")
  28.            (entdel xL2)
  29.            (command "_zoom" "_p")
  30.        )
  31.    )
  32.    (princ)
  33. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 21:04 , Processed in 0.972716 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表