乐筑天下

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

[编程交流] 绘制简单的窗竖梃

[复制链接]

6

主题

30

帖子

24

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 15:56:02 | 显示全部楼层 |阅读模式
我已经在绘图电路工作了一段时间,因为我一直在进行机架安全检查。前几天我又画了一些立面图,然后决定一定有更简单的方法来画这些该死的窗框。
 
现在,我已经查看了我的常用来源,但找不到任何我想要的东西。我确实看了这个例子,但这不是我所需要的,特别是考虑到我们的工作规模不同:
 
http://www.cadtutor.net/forum/showthread.php?11921-Easy lisp brain fart&highlight=窗口+竖梃
 
基本上,我需要能够选择一个窗口开口,为框架选择一个偏移距离,然后选择要容纳多少个框(行和列)以及它们之间的距离。然后,每个盒子(窗格玻璃)将偏移10mm以进行强调。
 
我承认自己不是很擅长lisp例程,但从我的短暂经验来看,我不认为这会太复杂?如果有人有我可以合作的东西,或者可以为我创造一些东西,我将不胜感激!
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 16:20:02 | 显示全部楼层
当你说“它们之间的距离”是指窗格之间的间距还是窗格之间的间距?如果在窗格之间,行和列之间的宽度是否不同?
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:32:03 | 显示全部楼层
只需考虑一些简单的约束即可实现。
从左下角开始,从上到右,这将确定您的水平和垂直尺寸
水平和垂直边缘距离的窗格数
大小相同或更复杂,最后输入大小只是填写近似外观
现在公式说水平是3(Hordist-(3+1)*egde)/3=水平窗格的大小
对垂直窗格重复此操作
好的,我们取左下角点x=x+edge y=edge+Verpane,使用(car pt1)这是x值,(cadr pt1)这是y,我们现在可以计算出一个新点Pt2
使用retang pt1绘制pt2窗格
使用双重重复绘制所有窗格。
 
会尽量找时间做点什么。
 
如果你有合适的软件,你可以这样做。
165606otkftew3x3av3tks.jpg
回复

使用道具 举报

6

主题

30

帖子

24

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 16:39:36 | 显示全部楼层
我感谢大家的意见!通常我考虑的窗户类型是典型的维多利亚式联排别墅,带有木窗扇。我会提供更多信息,但这将不得不等待,因为我今天和明天都被淹没了。
 
BKT,如果可能的话,我想选择单独选择行/列之间的距离,因为它们偶尔会不同。我指的是窗格之间的距离。
 
比格尔,这看起来是朝着正确的方向发展。不幸的是,我们只在2D中工作。此外,我们不处理建筑指示,如窗口上的箭头。。。我们基本上为99%的高程创建了一个线图高程,通常是通过三维扫描正射照片的“跟踪”。
 
再次感谢您的意见!
回复

使用道具 举报

BKT

1

主题

124

帖子

123

银币

初来乍到

Rank: 1

铜币
7
发表于 2022-7-5 16:54:15 | 显示全部楼层
我继续把这些放在一起,看看可能需要什么。没有错误检查,不好看,但试着看看这是否是一个开始。10.0的强调偏移是硬编码的。
 
  1. (defun c:test (/ frm xnum ynum xspace yspace xpane ypane pane pane2 ptc pt1 pt2 pt3 pt4 ptp1 ptp2 ptp3 ptp4)
  2. (setvar "CMDECHO" 0)
  3. (initget 7)
  4. (setq frm (getreal "\nEnter Frame Offset: "))
  5. (initget 7)
  6. (setq xnum (getint "\nEnter Number for Columns of Panes: "))
  7. (initget 7)
  8. (setq xspace (getreal "\nEnter Column Space Distance: "))
  9. (initget 7)
  10. (setq ynum (getint "\nEnter Number for Rows of Panes: "))
  11. (initget 7)
  12. (setq yspace (getreal "\nEnter Row Space Distance: "))
  13. (setq pt1 (getpoint "\nSelect Lower Left Window Corner: ")
  14.      pt3 (getpoint "\nSelect Upper Right Window Corner: ")
  15.      pt2 (list (car pt3)(cadr pt1))
  16.      pt4 (list (car pt1)(cadr pt3))
  17.      ptc (mapcar '(lambda (q p) (/ (+ q p) 2.0)) pt1 pt3)
  18.      xlen (- (distance pt1 pt2) (* 2 frm))
  19.      ylen (- (distance pt1 pt4) (* 2 frm))
  20.      xpane (/ (- xlen (* (1- xnum) xspace)) xnum)
  21.      ypane (/ (- ylen (* (1- ynum) yspace)) ynum)
  22.      ptp1 (list (+ (car pt1) frm)(+ (cadr pt1) frm))
  23.      ptp2 (list (+ (car ptp1) xpane)(cadr ptp1))
  24.      ptp3 (list (+ (car ptp1) xpane)(+ (cadr ptp1) ypane))
  25.      ptp4 (list (car ptp1)(+ (cadr ptp1) ypane))
  26. )
  27. (entmakex (append (list (cons 0 "LWPOLYLINE")
  28.                        (cons 100 "AcDbEntity")
  29.                        (cons 100 "AcDbPolyline")
  30.                        (cons 90 4)
  31.                        (cons 70 1)
  32.                        (cons 10 ptp1)
  33.                        (cons 10 ptp2)
  34.                        (cons 10 ptp3)
  35.                        (cons 10 ptp4))))
  36. (setq pane (entlast))
  37. (setq ptc (mapcar '(lambda (q p) (/ (+ q p) 2.0)) ptp1 ptp2))
  38. (command "_offset" "10.0" pane "_non" ptc "") ;; Hardcoded "10.0" offset for trim
  39. (setq pane2 (entlast))
  40. (cond
  41.    ((AND (= ynum 1)(= xnum 1)) T)
  42.    ((= ynum 1) (command "-array" pane pane2 "" "R" ynum xnum (+ xpane xspace)))
  43.    ((= xnum 1) (command "-array" pane pane2 "" "R" ynum xnum (+ ypane yspace)))
  44.    ((OR (> ynum 1)(> xnum 1)) (command "-array" pane pane2 "" "R" ynum xnum (+ ypane yspace) (+ xpane xspace)))
  45.    (t nil)
  46. )
  47. (princ)
  48. )
回复

使用道具 举报

6

主题

30

帖子

24

银币

初来乍到

Rank: 1

铜币
30
发表于 2022-7-5 16:57:05 | 显示全部楼层
BKT,这正是我想要的。我将不得不使用它几次,看看我能/不能用它做什么,但这是一个很好的开始!非常感谢。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-14 13:08 , Processed in 2.670584 second(s), 67 queries .

© 2020-2025 乐筑天下

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