乐筑天下

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

[编程交流] 用于将椭圆转换为的lisp

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:04:44 | 显示全部楼层 |阅读模式
是否有用于将椭圆转换为多段线的Lisp。我厌倦了不能生成包含椭圆的区域,或者不能将它们添加到预先存在的多段线中。
回复

使用道具 举报

48

主题

1073

帖子

1043

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2022-7-6 09:16:16 | 显示全部楼层
我不确定LISP是否正确,但首先可以将其绘制为普林斯。。。。
 
  1. PELLIPSE System Variable
  2. Type: IntegerSaved in: DrawingInitial value: 0
  3. Controls the ellipse type created with ELLIPSE.
  4. 0
  5. Creates a true ellipse object.
  6. 1
  7. Creates a polyline representation of an ellipse
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:23:32 | 显示全部楼层
我希望我不必这样做,因为我将不得不重画我的画很大一部分。但如果这是唯一的办法。有任何命令可以将椭圆转换为柱脚吗?
回复

使用道具 举报

18

主题

434

帖子

422

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
94
发表于 2022-7-6 09:34:31 | 显示全部楼层
也许这可以帮助你:
http://www.cadtutor.net/forum/showthread.php?t=1639
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 09:40:34 | 显示全部楼层
我的变体
 
  1. (defun C:E2P (/ adoc el ssnab en item lays lay lock pell ptcen osm)
  2. (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  3. (setq lays (vla-get-layers adoc))
  4. (vla-startundomark adoc)
  5. (setq ssnab (ssget '((0 . "ELLIPSE")))) ;_Выбор Region'ов в рисунке
  6. (setq pell (getvar "PELLIPSE"))
  7. (setq osm (getvar "OSMODE"))
  8. (setvar "PELLIPSE" 1)
  9. (while (and ssnab
  10.       (> (sslength ssnab) 0)
  11. )
  12.    (setq el (ssname ssnab 0))
  13.    (setq en (vlax-ename->vla-object el))
  14.    (setq lay (vla-item lays (vla-get-layer en)))
  15.    (if (= (vla-get-lock lay) :vlax-true)
  16.      (progn (vla-put-lock lay :vlax-false)
  17.      (setq lock (cons lay lock))
  18.      ))
  19.    (setq item (vla-get-ObjectName en))
  20.    (cond
  21.      ((= item "AcDbEllipse")
  22.       (setq ptcen (vlax-safearray->list
  23.       (vlax-variant-value (vla-get-center en))
  24.     )
  25.       )
  26.       (command "_ellipse"  "_C" ptcen
  27. (mapcar '+
  28.   ptcen
  29.   (vlax-safearray->list
  30.     (vlax-variant-value (vla-get-MajorAxis en))
  31.   ))
  32. (mapcar '+
  33.   ptcen
  34.   (vlax-safearray->list
  35.     (vlax-variant-value (vla-get-MinorAxis en))
  36.   )))
  37.       (mapcar
  38. '(lambda (x y)
  39.     (vlax-put-property (vlax-ename->vla-object (entlast)) x y)
  40.   )
  41. '(Linetype LineWeight Color Layer)
  42. (mapcar '(lambda (x)
  43.      (vlax-get-property en x)
  44.    )
  45.   '(Linetype LineWeight Color Layer)
  46. )
  47.       )
  48.       (vla-Delete en)
  49.      )
  50.      (t nil)
  51.    )
  52.    (ssdel el ssnab)
  53. )
  54. (setvar "PELLIPSE" pell)
  55. (setvar "OSMODE" osm)
  56. (if lock
  57.    (foreach x lock (vla-put-lock x :vlax-true))
  58. )
  59. (vla-endundomark adoc)
  60. (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
  61. (princ "\nПреобразование Ellipse завершено")
  62. (princ "\nTransformation Ellipse is completed")
  63. )
  64. (princ)
  65. )
  66. (if (= (getvar "DWGCODEPAGE") "ANSI_1251")
  67. (princ "\nНаберите в ком. строке E2P")
  68. (princ "\nType E2P to run command"))

 
样条曲线、圆、直线、椭圆、二维和三维多段线在二维多段线(直线段)中的变换
ConvTo2d-二维多段线中线性对象的变换
ConvTo3d-三维多段线中线性对象的变换
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 09:47:26 | 显示全部楼层
当复制文本并保存在记事本中时,unicode、unicode big-endian或UTF-8的格式会有所不同吗?我之所以这样问,是因为我正在保存并成功加载它们,但在键入defun c:e2p值时,在最后一种情况下是e2p,autocad显示一个错误。
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 09:54:21 | 显示全部楼层
无俄语文本
  1. (defun C:E2P (/ adoc el ssnab en item lays lay lock pell ptcen osm count)
  2. (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  3. (setq lays (vla-get-layers adoc) count 0)
  4. (vla-startundomark adoc)
  5. (princ "\nSelect Ellipse")
  6. (setq ssnab (ssget '((0 . "ELLIPSE"))))
  7. (setq pell (getvar "PELLIPSE"))
  8. (setq osm (getvar "OSMODE"))
  9. (setvar "OSMODE" 0)
  10. (setvar "PELLIPSE" 1)
  11. (while (and ssnab (> (sslength ssnab) 0))
  12.    (setq el (ssname ssnab 0))
  13.    (setq en (vlax-ename->vla-object el))
  14.    (setq lay (vla-item lays (vla-get-layer en)))
  15.    (if (= (vla-get-lock lay) :vlax-true)
  16.      (progn (vla-put-lock lay :vlax-false)
  17.      (setq lock (cons lay lock))))
  18.    (setq item (vla-get-ObjectName en))
  19.    (cond
  20.      ((= item "AcDbEllipse")(setq count (1+ count))
  21.       (setq ptcen (vlax-safearray->list(vlax-variant-value (vla-get-center en))))
  22.       (command "_.ellipse"  "_C" (trans ptcen 0 1)
  23.                (trans (mapcar '+ ptcen (vlax-safearray->list(vlax-variant-value (vla-get-MajorAxis en)))) 0 1)
  24.                (trans (mapcar '+ ptcen (vlax-safearray->list(vlax-variant-value (vla-get-MinorAxis en)))) 0 1))
  25.       (mapcar '(lambda (x y)(vlax-put-property (vlax-ename->vla-object (entlast)) x y))
  26.               '(Linetype LineWeight Color Layer)
  27.               (mapcar '(lambda (x)(vlax-get-property en x))
  28.                       '(Linetype LineWeight Color Layer))
  29.               )
  30.       (vla-Delete en)
  31.      )
  32.      (t nil)
  33.    )
  34.    (ssdel el ssnab)
  35. )
  36. (setvar "PELLIPSE" pell)
  37. (setvar "OSMODE" osm)
  38. (if lock (foreach x lock (vla-put-lock x :vlax-true)))
  39. (vla-endundomark adoc)
  40. (princ (strcat "\nTransformation " (itoa count) " Ellipse is completed"))
  41. (princ)
  42. )
  43. (princ "\nType E2P to run command")

 
PS.已更正
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 10:00:30 | 显示全部楼层
谢谢,成功了
回复

使用道具 举报

49

主题

1246

帖子

1210

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
254
发表于 2022-7-6 10:05:04 | 显示全部楼层
我喜欢这个网站的搜索功能。一篇4.5年前的帖子让我大吃一惊。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 08:27 , Processed in 0.332021 second(s), 70 queries .

© 2020-2025 乐筑天下

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