To all,
I finally found where and how YMG was handling the break lines.
But I have disturbing news about BricsCAD. Versions 22 thru 24 have produced identical conflicts with LISP and OLE construction.
1) They will not process DXF methods that relate to self made TIN constructs, and they don't post any error messages about them either.
2) You cannot name your code TIN, because their TIN construct has that name, and they ignore your LISP code.
3) I had to resort to version 21 in order to precede these conflicts.
4) I have also found BricsCAD support to be rude toward anyone that does their own LISP and OLE coding, instead of using their tools or those of an endorsed programmer. So their "maintenance contract" is useless, because they consider that their software has a malfunction.
Nevertheless, they used to produce better work, and version 21 seems to be OK. I just hate that I wasted my money by upgrading to the newer versions.
In contrast, YMG's work has been very high quality ... so we can rely on what he has given us. Moreover, we can customize his code if we want something to operate differently.
However, his code for breaklines still had a problem. He was doing the breaks correctly, but it wasn't deleting the TINs that were crossing the breaklines. So I added some code that deleted all of the TINs, and then rebuilt the TINs per his corrections. The following is what I did...
;; Insertion of Constraints ;
(if cdtl ;; cdtl, List of Points (3d) Forming Constraints
(progn
(setq ti (time))
(acet-ui-progress "Inserting Constraint:" (length cdtl)) ;; starts acet-ui-progress bar
(mk_layer (list ".SRF-NET" 9)) ;; color 9: ashes
(rw_disablesnap)
(foreach k cdtl
(rw_FlipEdge (car k) (cadr k)) ;; sends x & y only
(progress-step nil) ;; rw_FlipEdge is a rename for ADDEDGE
) ;; I was avoiding a possible naming conflict
(rw_RebuildNet) ;; THIS IS HOW I REBUILT THE TIN NETWORK ... I ADMIT IT IS A HACK!
(rw_enablesnap)
(acet-ui-progress) ;; ends acet-ui-progress bar
(if *bounden* (erase-outside *bounden*))
(defun rw_RebuildNet () ;; I USED COMMAND METHOD TO AVOID THE DXF ISSUE WITH BRICSCAD
(C:JNK)
(foreach tr tl
(cond
((= (length tr) 3) ;; triangle *** CONSTRUCT TIN ***
(setq p1 (nth (car tr) pl))
(setq p2 (nth (cadr tr) pl))
(setq p3 (nth (caddr tr) pl))
(command "3dface" p1 p2 p3 "" "")
(setq 3DFL (cons (cadddr tr) 3DFL)) ;; update 3dfl
)
((= (length tr) 4) ;; rectangle *** CONCTRUCT SHEET *** NOT USED ***
(setq p1 (nth (car tr) pl))
(setq p2 (nth (cadr tr) pl))
(setq p3 (nth (caddr tr) pl))
(setq cutlist (cdr tr))
(setq p4 (nth (caddr cutlist) pl))
(command "3dface" p1 p2 p3 p4 "")
(setq 3DFL (cons (cadddr tr) 3DFL)) ;; update 3dfl
)
)
)
)
(defun C:JNK ( / Target_Lyr) ;; Junk: deletes TIN group ;; IMP: rebuilds the TIN group
(setq *osm* (getvar 'osmode))
(defun *error* (errmsg)
(if *osm* (setvar 'osmode *osm*))
(if (not (member msg '("Function cancelled" "quit / exit abort")))
(princ (strcat "\nError: " msg))
)
(princ)
)
;;
(setq LstLyr (getvar 'clayer))
(setq Target_Lyr ".SRF-NET")
(Delete_Lyr_Items Target_Lyr)
(setvar 'clayer LstLyr)
)
Rick