本帖最后由 尘缘一生 于 2024-9-6 06:04 编辑
这两天,用户提出这个问题,
透过块操作的一些事,我基本不存在,我画图纸,从来见块就炸,因为这个块,实际就是人为的给自己罩了个紧箍咒,虽然三领有块集成,见图如下:
那么,块如何X,Y动态比例,把块可以任意的,左右,上下,随便调整?当然,三维还存在有Z,包括角度等
关于建筑设计的话,你大不了也就30张图,为什么你非得弄些块呢?如果没有块,你想怎么作,简单多了,然而,必定有人是喜欢块的^_^,
有喜欢的,你就得作这一套系统,实际,垃圾的很,包括门窗啊,楼梯啊,钢筋啊,这些玩意,在我来说,都不屑一开发的东西。对于一个工程师来说,你必定掌握好一套大型软件,达到专家级别,否则你怎么吃这碗饭的?建筑来说,现在是,PKPM,天正,哪边都开发了,你还开发的什么?
这是我刚画完的一套三层框架钢构,也就28张。
说个题外的:那个弯弯,竟然回复我说的那个布局空间画图的恶心问题,问我画过市政吗?道路吗?桥梁吗?我懒得搭理和回复,你知道我画过什么图?你所疑惑的奥,你疑惑什么?你以为一个设计师一辈子就干一个事吗?你怀疑我没画过,没干过?巧了,本人就是什么都设计,包括古建筑,机械,模具。我就是全部画过的,干过的,领工程队干过的,你一个台湾省的小弯弯,你懂得什么?
随便写写,贴上保存备案,以备集成。
注:实际上,这个玩意可以和动态填充比例角度,线型比例,综合一个集成就是了。
- ;;动态图块比例-----(一级)---------
- ;Modify by SLdesign QQ: 15290049
- (defun dyblk (blknam / plis dx0 dx dy0 dy p0 els pt loop ang f3 f8 bb p00)
- (command "_.undo" "be")
- (setq plis (ebox4 blknam) p0 (car plis) dx0 (distance p0 (cadr plis)) dy0 (distance p0 (cadddr plis)) els (entget blknam))
- ;(princ
- ; (slmsg "\n->[正交(F8)/扑捉(F3)](45度斜拉,左右键...>退出)"
- ; "\n->[タユ(F8)/汲(F3)](45弊┰オ龄...>癶)"
- ; "\ n ->[Orthogonal (F8)/Catch (F3)] (45 degree diagonal pull Left and Right keys...>Exit)"
- ; )
- ;)
- (princ "\n->[正交(F8)/扑捉(F3)](45度斜拉,左右键...>退出)")
- (setq loop t f8 (getvar "ORTHOMODE") f3 (getvar "OSMODE"))
- (while loop
- (setq bb (grread t 15 2) p00 (cadr bb))
- (cond
- ((equal bb '(2 6));F3切换捕捉开关
- (cond
- ((and (< f3 16384) (/= f3 0))
- (setq f3 (+ f3 16384))
- ;(prompt (slmsg "\n <对象捕捉 关>" "\n <癸禜 闽>" "\n <OSnap Off>"))
- (prompt "\n <对象捕捉 关>")
- )
- ((or (= f3 0) (>= f3 16384))
- (setq f3 16383)
- ;(prompt (slmsg "\n <对象捕捉 开>" "\n <癸禜 秨>" "\n <OSnap On>"))
- (prompt "\n <对象捕捉 开>")
- )
- )
- (setvar "OSMODE" f3)
- )
- ((equal bb '(2 15)) ;F8切换正交开关
- (if (= f8 0)
- ;(progn (setq f8 1) (prompt (slmsg "\n <正交 开>" "\n <タユ 秨>" "\n <Orth open>")))
- (progn (setq f8 1) (prompt "\n <正交 开>"))
- ;(progn (setq f8 0) (prompt (slmsg "\n <正交 关>" "\n <タユ 闽>" "\n <Orth off>")))
- (progn (setq f8 0) (prompt "\n <正交 关>"))
- )
- (setvar "ORTHOMODE" f8)
- )
- ((= (car bb) 5)
- (if (= f8 1)
- (progn
- (setq ang (angle p0 p00))
- (cond
- ((or (and (> ang pi4) (< ang 3pi4)) (and (> ang 5pi4) (< ang 7pi4)))
- (setq pt (list (car p0) (cadr p00)))
- )
- (t
- (setq pt (list (car p00) (cadr p0)))
- )
- )
- )
- (setq pt p00)
- )
- (if (and (<= f3 16384) (> f3 0) (/= f8 1))
- (setq pt (slosnappt nil pt))
- )
- (setq dx (* 3.0 (abs (- (car p0) (car pt)))) dy (* 3.0 (abs (- (cadr p0) (cadr pt)))))
- (entmod (emod (emod els 41 (/ dx dx0)) 42 (/ dy dy0))) ;左右,上下,动态调整了
- (entupd blknam)
- )
- ((or
- (member (car bb) '(11 25)) ;;右键
- (member bb '((2 13))) ;;左键
- (= (car bb) 3) ;;回车
- )
- (setq loop nil)
- )
- )
- )
- (command "_.undo" "e")
- (princ)
- )
- ;;测试
- (defun c:tt ()
- (setq blknam (car (entsel))) ;选块
- (dyblk blknam)
- )
|