乐筑天下

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

[编程交流] 多段线、圆、多重和可转义

[复制链接]

20

主题

84

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
161
发表于 2022-7-25 20:22:47 | 显示全部楼层 |阅读模式
我真的想深入了解这个lisp做了什么..因为它真的使这种重复性工作。
ri barm先生是源头,他真的鼓励我学习!

  1. (defun c:cirpl ( / *error* ch ent dxf_ent pt_cen radius fst_pt opp_pt new_ep )
  2. ;; ribarm  http://www.theswamp.org/index.php?topic=54622.msg591127#msg591127
  3. (princ "\n Multi Circle Polylined..\n")
  4.   (defun *error* (msg / tmp) ;; kdub.. https://www.theswamp.org/index.php?topic=52933.msg577591#msg577591
  5.       ;;----- Cancel any Active Commands
  6.     (while ( (getvar 'cmdactive) 0) (vl-cmdf "\") ;)
  7.     (progn
  8.       (setq
  9.         ent (entlast)
  10.         dxf_ent (entget ent)
  11.         pt_cen (cdr (assoc 10 dxf_ent))
  12.         radius (cdr (assoc 40 dxf_ent))
  13.         fst_pt (polar pt_cen 0.0 radius)
  14.         opp_pt (polar pt_cen pi radius)
  15.       )
  16.       (entmake
  17.         (vl-remove nil
  18.           (list
  19.             '(0 . "LWPOLYLINE")
  20.             '(100 . "AcDbEntity")
  21.             (assoc 67 dxf_ent)
  22.             (assoc 410 dxf_ent)
  23.             (assoc 8 dxf_ent)
  24.             (if (assoc 6 dxf_ent) (assoc 6 dxf_ent) '(6 . "BYLAYER"))
  25.             (if (assoc 62 dxf_ent) (assoc 62 dxf_ent) '(62 . 256))
  26.             (if (assoc 420 dxf_ent) (assoc 420 dxf_ent))
  27.             (if (assoc 370 dxf_ent) (assoc 370 dxf_ent) '(370 . -3))
  28.             (if (assoc 48 dxf_ent) (assoc 48 dxf_ent) '(48 . 1.0))
  29.             '(100 . "AcDbPolyline")
  30.             '(90 . 2)
  31.             '(70 . 1)
  32.             (cons 43 (getvar "PLINEWID"))
  33.             (cons 38 (caddr pt_cen)) ;; shows error if..
  34.             (if (assoc 39 dxf_ent) (assoc 39 dxf_ent) '(39 . 0.0))
  35.             (cons 10 (list (car fst_pt) (cadr fst_pt)))
  36.             '(40 . 0.0)
  37.             '(41 . 0.0)
  38.             '(42 . 1.0)
  39.             (cons 10 (list (car opp_pt) (cadr opp_pt)))
  40.             '(40 . 0.0)
  41.             '(41 . 0.0)
  42.             '(42 . 1.0)
  43.             (assoc 210 dxf_ent)
  44.           )
  45.         )
  46.       )
  47.       ; (setvar 'cmdecho 0)
  48.       ; (vl-cmdf "_copybase" (caddr pt_cen) "_L" "" "_pasteclip" (caddr pt_cen)) ;; traps circle if escaped..
  49.       ; (setvar 'cmdecho 1)
  50.       (entdel ent)
  51.   )
  52. )
  53.   ;(prompt "\nMissed or picked wrong entity type or last entity in database not CIRCLE...")
  54.   )
  55.      (*error* nil)
  56. (princ)
  57. )

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 01:25 , Processed in 2.547537 second(s), 54 queries .

© 2020-2025 乐筑天下

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