乐筑天下

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

[编程交流] 将点转换为对象

[复制链接]

1

主题

1

帖子

0

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 17:13:07 | 显示全部楼层 |阅读模式
嗨,我在画地质图。我有386个点,我希望用菱形多边形来代替。有什么办法我可以很快做到吗?
 
我画了一个菱形的多边形,我现在想知道是否有任何可用的自动替换命令。我应该把多边形转换成块吗?
 
非常感谢您的帮助,因为我不太喜欢手动操作
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 17:47:52 | 显示全部楼层
试试这个。首先选择点,然后拾取多边形。
 
  1. (defun c:frt(/ actDoc copObj errCount extLst
  2.               extSet fromCen layCol maxPt curLay
  3.               minPt ObjLay okCount oLayst answ
  4.               scLay toCen toObj vlaObj *error*)
  5. (vl-load-com)
  6. (defun *error*(msg)
  7.    (if olaySt
  8.      (progn
  9.        (vla-put-Lock objLay olaySt)
  10.        (vla-EndUndoMark actDoc)
  11.      ); end progn
  12.      ); end if
  13.    (princ)
  14.    ); end of *ERROR*
  15. (defun GetBoundingCenter(vlaObj / blPt trPt cnPt)
  16. (vla-GetBoundingBox vlaObj 'minPt 'maxPt)
  17.      (setq blPt(vlax-safearray->list minPt)
  18.            trPt(vlax-safearray->list maxPt)
  19.            cnPt(vlax-3D-point
  20.      (list
  21.            (+(car blPt)(/(-(car trPt)(car blPt))2))
  22.            (+(cadr blPt)(/(-(cadr trPt)(cadr blPt))2))
  23.         0.0
  24.            ); end list
  25.     ); end vlax-3D-point
  26.    ); end setq
  27. ); end of GetBoundingCenter
  28. (if(not(setq extSet(ssget "_I")))
  29.    (progn
  30.      (princ "\n>>> Select replaced objects <<< ")
  31.      (setq extSet(ssget))
  32.      ); end progn
  33.    ); end if
  34. (if(not extSet)
  35.    (princ "\nReplaced objects isn't selected!")
  36.    ); end if
  37. (if
  38.    (and extSet
  39.    (setq toObj(entsel "\n>>> Pick replacing object -> "))
  40.    ); and and
  41.    (progn
  42.      (initget 1 "Yes No")
  43.      (setq answ(getkword "\nErase replaced objects [Yes/No]: ")
  44.     actDoc(vla-get-ActiveDocument
  45.                    (vlax-get-Acad-object))
  46.            layCol(vla-get-Layers actDoc)
  47.            extLst(mapcar 'vlax-ename->vla-object
  48.                    (vl-remove-if 'listp
  49.                     (mapcar 'cadr(ssnamex extSet))))
  50.            vlaObj(vlax-ename->vla-object(car toObj))
  51.            objLay(vla-Item layCol
  52.                     (vla-get-Layer vlaObj))
  53.            olaySt(vla-get-Lock objLay)
  54.            fromCen(GetBoundingCenter vlaObj)
  55.            errCount 0
  56.            okCount 0
  57.         ); end setq
  58.      (vla-StartUndoMark actDoc)
  59.      (foreach obj extLst
  60.   (setq toCen(GetBoundingCenter obj)
  61.         scLay(vla-Item layCol
  62.                (vla-get-Layer obj))
  63.         );end setq
  64.   (if(/= :vlax-true(vla-get-Lock scLay))
  65.     (progn
  66.         (setq curLay(vla-get-Layer obj))
  67.         (vla-put-Lock objLay :vlax-false)
  68.         (setq copObj(vla-copy vlaObj))
  69.         (vla-Move copObj fromCen toCen)
  70.         (vla-put-Layer copObj curLay)
  71.         (vla-put-Lock objLay olaySt)
  72.         (if(= "Yes" answ)
  73.           (vla-Delete obj)
  74.         );end if
  75.         (setq okCount(1+ okCount))
  76.       ); end progn
  77.        (setq errCount(1+ errCount))
  78.     ); end if
  79. ); end foreach
  80.      (princ
  81. (strcat "\n" (itoa okCount) " were replaced. "
  82.    (if(/= 0 errCount)
  83.      (strcat (itoa errCount) " were on locked layer! ")
  84.      ""
  85.      ); end if
  86.    ); end strcat
  87. ); end princ
  88.      (vla-EndUndoMark actDoc)
  89.      ); end progn
  90.    (princ "\nReplacing object isn't selected! ")
  91.    ); end if
  92. (princ)
  93. ); end of c:frt
回复

使用道具 举报

1

主题

54

帖子

53

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 18:07:11 | 显示全部楼层
我们在谈论什么样的观点?autocad点?
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 18:25:04 | 显示全部楼层
只是为了子孙后代:这条线与这条线相连:http://www.cadtutor.net/forum/showthread.php?t=28876
我们不能因为多次发帖而责怪鲁斯蒂。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 16:22 , Processed in 0.357364 second(s), 60 queries .

© 2020-2025 乐筑天下

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