乐筑天下

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

[编程交流] Autocad lisp需要帮助!

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:50:02 | 显示全部楼层 |阅读模式
 
我正忙于这个项目,所以我没有时间自己写这个lisp,因为我在这方面没有任何经验,所以如果有人能帮我的话,那就太好了。无论如何,我有很多在autocad中绘制的地块,我需要做的是修剪所有多段线端点和交点,并在中间在中间。我手动这样做:
-首先,我在多段线的端点和交点上画圆(半径必须为0.5)
-然后我修剪圆内的所有线
-然后在圆心插入一个点,最后删除圆。
 
底部还有一张图片,显示了过程的第一个和最后一个阶段。
 
如果有人知道Lisp程序可以做到这一点,或者有时间写一个,这将对我有很大帮助。
回复

使用道具 举报

14

主题

719

帖子

706

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
70
发表于 2022-7-6 00:10:30 | 显示全部楼层
大家好,欢迎来到论坛!
 
我完全相信这里的Lisp程序大师,但直到他们醒来:
 
-break lisp-要用所有其他行打断所有行,请在此处找到它:http://www.theswamp.org/index.php?topic=10370.0(需要是会员才能使用链接)
-ptmanager-要在所有端点上插入一个圆和一个点,请在此处找到它:http://www.lee-mac.com/ptmanager.html
 
但我还没有想出如何修剪圆内的所有东西。。。
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 00:25:14 | 显示全部楼层
欢迎加入,
请上传带有“之前”和“之后”情况的样本图纸,
只有几个包裹
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-6 00:37:47 | 显示全部楼层
为什么不使用一个具有覆盖或实体图案填充的块,颜色为255255?
回复

使用道具 举报

10

主题

8258

帖子

8335

银币

初来乍到

Rank: 1

铜币
31
发表于 2022-7-6 00:44:51 | 显示全部楼层
你面临什么样的最后期限?
回复

使用道具 举报

0

主题

301

帖子

301

银币

初来乍到

Rank: 1

铜币
0
发表于 2022-7-6 01:01:03 | 显示全部楼层
假设它是多段线,下面将在每个顶点插入一个30边的多边形区域覆盖。然后在中心插入一个点。
 
例程通过调用作为Express工具一部分的tframes来关闭擦除帧。
 
ymg公司
 
  1. ;; Polygonal Wipeout  -  Lee Mac                                              ;
  2. ;; Creates an n-sided Polygonal Wipeout with the given center (UCS) & radius  ;
  3. ;;                                                                            ;
  4. ;; Modified by ymg                                                            ;
  5. (defun pwipeout ( cen rad n / ang inc lst )
  6.    (setq inc (/ pi n 0.5)
  7.          ang (* (/ pi 2) -1)
  8.    )
  9.    (repeat n
  10.        (setq lst (cons (list 14 (* 0.5 (cos ang)) (* 0.5 (sin ang))) lst)
  11.              ang (+ ang inc)
  12.        )
  13.    )
  14.    (entmakex
  15.        (append
  16.            (list
  17.                (cons 0 "WIPEOUT")
  18.                (cons 100 "AcDbEntity")
  19.                (cons 100 "AcDbWipeout")
  20.                (cons 10 (trans (mapcar '- cen (list rad rad)) 1 0))
  21.                (cons 11 (trans (list (+ rad rad) 0.0) 1 0 t))
  22.                (cons 12 (trans (list 0.0 (+ rad rad)) 1 0 t))
  23.                (cons 280 1)
  24.                (cons 71 2)
  25.         (cons 91 (1+ (length lst)))
  26.            )
  27.            (cons (last lst) lst)
  28.        )
  29.    )
  30. )
  31. ;;; listpol (gile)                                                            ;
  32. ;;; Returns the vertices list of any type of polyline (WCS coordinates)       ;
  33. ;;;                                                                           ;
  34. ;;; Argument                                                                  ;
  35. ;;; pl : a polyline (ename or vla-object)                                     ;
  36. (defun listpol        (pl / pa pt lst)
  37. (vl-load-com)
  38. (setq        pa (if (vlax-curve-IsClosed pl)
  39.       (vlax-curve-getEndParam pl)
  40.       (1+ (vlax-curve-getEndParam pl))
  41.    )
  42. )
  43. (while (setq pt (vlax-curve-getPointAtParam pl (setq pa (1- pa))))
  44.    (setq lst (cons (trans pt 0 1 ) lst))
  45. )
  46. )
  47. ;; By Jason Piercey                                              ;
  48. ;; Returns t if wipeouts frames are turned off                   ;
  49. (defun frameOff? ()
  50.   (and
  51.      (setq Data (dictsearch (namedobjdict) "ACAD_WIPEOUT_VARS"))
  52.      (zerop (cdr (assoc 70 Data)))
  53.   )
  54. )
  55. (defun c:test ()
  56.     ; Initializing wipeouts                     ;
  57.     (vl-cmdf "_WIPEOUT" '(0 0) '(5 5) '(8  "")
  58.     (if (not (frameoff?)) (c:tframes))
  59.     (entdel (entlast))
  60.       
  61.     (princ "\nSelect a Polyline: ")
  62.     (setq en (entsel))
  63.     (while  (not (wcmatch (cdr (assoc 0 (entget (car en)))) "*POLYLINE"))
  64.   (princ "\nThe entity selected must be a POLYLINE ...")
  65.   (setq en (entsel))
  66.     )
  67.     (setq ent (car en)
  68.     pl (listpol ent)
  69.     )
  70.     (foreach p pl
  71.        (pwipeout p 0.5 30)
  72.        (vl-cmdf "_POINT" p)
  73.     )
  74. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 21:15 , Processed in 0.430814 second(s), 64 queries .

© 2020-2025 乐筑天下

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