Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/15/2023 in all areas

  1. Have you tried an Internet search using the following search criteria (punctuation included)... "1d nesting software"+"free"
    1 point
  2. make a query annotation family with a global on / off its schedulable, easy to hide, works with rather than against the software the quicker you stop trying to compare Revit to Autocad or anything else, the better your experience will be
    1 point
  3. Struggling to make this one work well enough, still thinking about it though - could be useful for other things, so one I might keep plugging away at as and when work allows (Here I am thinking also some sort of conversion from 'exploded' texts imported from PDFs to real texts... if it can work well enough)
    1 point
  4. This is my old one, but I've found it... Try it, maybe it can help for what you need... (defun c:3doffset-3dpoly ( / ent entA entcoordlst pt3d pt2d entvertlst3d entvertlst2d pto d 2dplo 2dpln 2dplncoordlst 2dplnvertlst3d ptx pty ptz ptxlst ptylst ptzlst 3dplnvertlst3d ) (setq oscmd (getvar 'osmode)) (setvar 'osmode 0) (setq ent (car (entsel "\nSelect 3D Polyline - 3dpline must not have vertical segments"))) (vl-load-com) (setq entA (vlax-ename->vla-object ent)) (setq entcoordlst (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates entA)))) (repeat (/ (length entcoordlst) 3) (setq pt3d (list (car entcoordlst) (cadr entcoordlst) (caddr entcoordlst))) (setq pt2d (list (car entcoordlst) (cadr entcoordlst) 0 )) (repeat 3 (setq entcoordlst (cdr entcoordlst)) ) (setq entvertlst3d (cons pt3d entvertlst3d)) (setq entvertlst2d (cons pt2d entvertlst2d)) ) (setq entvertlst3d (reverse entvertlst3d)) (setq entvertlst2d (reverse entvertlst2d)) (command "pline") (foreach pt entvertlst2d (command pt)) (command "") (command "ucs" "w") (command "plan" "") (setq pto (getpoint "\nPick point for side for 3doffset (in/out) : ")) (setq pto (list (car pto) (cadr pto) 0)) (setq d (getdist "\nInput horizontal distance for 3doffset (2 points) : ")) (setq 2dplo (entlast)) (command "offset" d (entlast) pto "") (entdel 2dplo) (setq 2dpln (entlast)) (setq 2dplnA (vlax-ename->vla-object 2dpln)) (setq 2dplncoordlst (vlax-safearray->list (vlax-variant-value (vla-get-Coordinates 2dplnA)))) (repeat (/ (length 2dplncoordlst) 2) (setq pt3d (list (car 2dplncoordlst) (cadr 2dplncoordlst) 0 )) (repeat 2 (setq 2dplncoordlst (cdr 2dplncoordlst)) ) (setq 2dplnvertlst3d (cons pt3d 2dplnvertlst3d)) ) (setq 2dplnvertlst3d (reverse 2dplnvertlst3d)) (entdel 2dpln) (repeat (length 2dplnvertlst3d) (setq ptx (car (car 2dplnvertlst3d))) (setq pty (cadr (car 2dplnvertlst3d))) (setq 2dplnvertlst3d (cdr 2dplnvertlst3d)) (setq ptxlst (cons ptx ptxlst)) (setq ptylst (cons pty ptylst)) ) (setq ptxlst (reverse ptxlst)) (setq ptylst (reverse ptylst)) (repeat (length entvertlst3d) (setq ptz (caddr (car entvertlst3d))) (setq entvertlst3d (cdr entvertlst3d)) (setq ptzlst (cons ptz ptzlst)) ) (setq ptzlst (reverse ptzlst)) (repeat (length ptzlst) (setq ptn (list (car ptxlst) (car ptylst) (car ptzlst))) (setq ptxlst (cdr ptxlst)) (setq ptylst (cdr ptylst)) (setq ptzlst (cdr ptzlst)) (setq 3dplnvertlst3d (cons ptn 3dplnvertlst3d)) ) (setq 3dplnvertlst3d (reverse 3dplnvertlst3d)) (command "3dpoly") (foreach pt 3dplnvertlst3d (command pt)) (command "") (setvar 'osmode oscmd) (princ) ) After you copy+paste code into notepad, choose saveas and type 3doffset-3dpoly.lsp... Then start ACAD and type appload and choose 3doffset-3dpoly.lsp... After lisp was loaded just type 3doffset-3dpoly to start it... Alternatively, you don't have to use appload command, but click on lisp and press ctrl+c (copy), then go to CAD drawing interface and press ctrl+v (paste) => lisp will be loaded - there you can see last loaded (defun function ( args / vars )) - you'll see c:3doffset-3dpoly, that means that command function 3doffset-3dpoly was loaded... Then type 3doffset-3dpoly to start and follow procedure the routine asks during execution process... I hope I've explained well... The same procedure you can apply with GP's code... Only difference you'll have to start it with test and during copy+paste lisp into CAD interface you'll see last loaded defun (e_next) function, but in fact all previously written defuns were loaded at the same time, so you can then start it with test - first (defun c:test ( / vars ))... Of course then follow prompts asked by working routine that is in execution... HTH, M.R.
    1 point
×
×
  • Create New...