乐筑天下

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

[编程交流] 三维UCS挤出组合乐趣

[复制链接]

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 22:19:05 | 显示全部楼层 |阅读模式
我正在尝试生成一个三维实体例程,其中结合了UCS 3点函数。前3个点控制ucs,以下点应由用户给定,必须进行挤出。最后一部分我无法完成。
 
 
defun C:extucs()
(setq spt1(getpoint“\n指定UCS第一点”))
(setq spt2(getpoint“\n指定UCS第二点”)
(setq spt3(getpoint“\n指定UCS第三点”)
(命令“ucs”“3”spt1 spt2 spt3)
 
;;; ?? 在这里我要得到x点的数量
;;; ?? 这里从这些点绘制一条闭合样线
 
(命令“pline”暂停)
 
(命令“extrude”“p”pause pause“”);挤出此pline
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 22:33:18 | 显示全部楼层
也许是这样的
  1. (defun c:extucs ( / pt pt_list spt1 spt2 spt3)
  2. (if (and (setq spt1 (getpoint "\nSpecify UCS 1st point"))
  3.           (setq spt2 (getpoint "\nSpecify UCS 2nd point"))
  4.           (setq spt3 (getpoint "\nSpecify UCS 3rd point"))
  5.      )
  6.    (progn
  7.    (command "ucs" "3" spt1 spt2 spt3)
  8.    (while
  9.      (setq pt (getpoint "\nPick point: "))
  10.      (setq pt_list (cons pt pt_list))
  11.      )
  12.    (if pt_list
  13.      (progn
  14.        (command "_.pline")
  15.        (foreach pt pt_list (command pt))
  16.        (command "_C")
  17.      )
  18.    )
  19.    (command "_.extrude" "_L" "" "\")
  20.    (command "ucs" "_P")
  21.    )
  22.    )
  23. (princ)
  24. )

 
希望有帮助
亨里克
回复

使用道具 举报

4

主题

2143

帖子

2197

银币

限制会员

铜币
-24
发表于 2022-7-5 22:35:03 | 显示全部楼层
请阅读代码发布指南并编辑您的帖子,将代码包含在代码标签中。
回复

使用道具 举报

26

主题

145

帖子

122

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
130
发表于 2022-7-5 22:41:48 | 显示全部楼层
 
美好的Henrique,当拾取点绘制pline时,我认为需要立即显示点与点之间的线!
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 22:51:57 | 显示全部楼层
非常感谢。阿尔贝托。
我只是这样写代码,来回答OP请求
 
 
';;; ?? 在这里我要得到x点的数量
;;; ?? 在这里,从这些点绘制闭合样线'
 
 
我们可以只存储最后一个,使用命令pline,测试是否有新的ent,如果关闭,则挤出。。。
 
 
亨里克
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 22:58:39 | 显示全部楼层
谢谢
我的问题是列表的形成
它应该是spt1,spt2,(pt-x量),与spt3闭合
然后拔出闭合线
 
  1. (defun c:extucs ( / pt pt_list spt1 spt2 spt3)
  2. (if (and (setq spt1 (getpoint "\nPick 1st point (UCS)"))
  3.    (setq spt2 (getpoint "\nPick 2nd point (UCS)"))
  4.           (setq spt3 (getpoint "\nPick 3rd point (UCS)"))          
  5.      )
  6.    (progn
  7.    (grdraw spt1 spt2 6 1)
  8.    (grdraw spt1 spt3 6 1)
  9.    (command "ucs" "3" spt1 spt2 spt3)
  10.    (while
  11.      (setq pt (getpoint "\nPick point: "))
  12.      (setq pt_list (cons pt pt_list))
  13.      )
  14.    (if pt_list
  15.      (progn
  16.        (command "_.pline")
  17.        (foreach pt pt_list (command pt))
  18.        (command "_C")
  19.      )
  20.    )
  21.    (command "_.extrude" "_L" "" "\")
  22.    (command "ucs" "_P")
  23.    )
  24.    )
  25. (princ)
  26. )
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:07:23 | 显示全部楼层
不客气,赫拉默茨。
如果我理解正确,可能是这样的:
  1. (defun c:demo (/ pt pt_list spt1 spt1w spt2 spt2w spt3 spt3w)
  2. (if (and (setq spt1 (getpoint "\nSpecify UCS 1st point"))
  3.           (setq spt2 (getpoint "\nSpecify UCS 2nd point"))
  4.           (setq spt3 (getpoint "\nSpecify UCS 3rd point"))
  5.      )
  6.    (progn
  7.      (setq spt1w (trans spt1 1 0)
  8.            spt2w (trans spt2 1 0)
  9.            spt3w (trans spt3 1 0)
  10.      )
  11.      (command "ucs" "3" spt1 spt2 spt3)
  12.      (command "_.pline" (trans spt3w 0 1) (trans spt1w 0 1) (trans spt2w 0 1))
  13.      (while (setq pt (getpoint "\nNext point: "))
  14.        (command pt)
  15.      )
  16.      (command "_C")
  17.      (command "_.extrude" "_L" "" "\")
  18.      (command "ucs" "_P")
  19.    )
  20. )
  21. (princ)
  22. )

 
希望有帮助
亨里克
回复

使用道具 举报

2

主题

9

帖子

7

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-5 23:18:13 | 显示全部楼层
这是一个很大的进步,亨里克。你让我工作做得更快了!
回复

使用道具 举报

1

主题

475

帖子

481

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 23:22:23 | 显示全部楼层
很高兴它对你有用。
 
 
亨里克
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-11 06:25 , Processed in 0.598550 second(s), 70 queries .

© 2020-2025 乐筑天下

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